X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Flogin.c;h=a2a11e9a903cb4de91b5508b819c4ed6efc8595b;hb=1780973fb10ed5ef2a69d861b14e8f58cdc4369f;hp=4ec89dd19b2be3768a4c1663d013254a449bff7c;hpb=6a5de8e3b2870ca950f2116aeb9561ad7d707427;p=matches%2FMCTX3420.git diff --git a/server/login.c b/server/login.c index 4ec89dd..a2a11e9 100644 --- a/server/login.c +++ b/server/login.c @@ -210,16 +210,19 @@ void Login_Handler(FCGIContext * context, char * params) char dn[BUFSIZ]; // On a simple LDAP server: - int len = sprintf(dn, "uid=%s,%s", user, g_options.ldap_base_dn); + //int len = sprintf(dn, "uid=%s,%s", user, g_options.ldap_base_dn); // At UWA (hooray) - //char * user_type = (user[0] != '0') : "Students" ? "Staff"; - //int len = sprintf(dn, "cn=%s,ou=%s", user, user_type, g_options.ldap_dn_base); + char * user_type = "Students"; + if (user[0] == '0') + user_type = "Staff"; + int len = sprintf(dn, "cn=%s,ou=%s,%s", user, user_type, g_options.ldap_base_dn); if (len >= BUFSIZ) { FCGI_RejectJSON(context, "DN too long! Recompile with increased BUFSIZ"); + return; } authenticated = (Login_LDAP_Bind(g_options.auth_uri, dn, pass) == LDAP_SUCCESS); @@ -247,6 +250,10 @@ void Login_Handler(FCGIContext * context, char * params) { if (FCGI_LockControl(context, false)) { + //Todo: change this to something better than the username if using LDAP. + snprintf(context->friendly_name, 31, "%s", user); + FCGI_EscapeText(context->friendly_name); //Don't break javascript pls + // Give the user a cookie FCGI_AcceptJSON(context, "Logged in", context->control_key); }