void Server_Cmd_USERFLAGS(tClient *Client, char *Args) { char *username, *flags, *reason=NULL; int mask=0, value=0; int uid; // Parse arguments if( Server_int_ParseArgs(1, Args, &username, &flags, &reason, NULL) ) { if( !flags ) { sendf(Client->Socket, "407 USER_FLAGS takes at least 2 arguments\n"); return ; } reason = ""; } // Check authentication if( !Client->bIsAuthed ) { sendf(Client->Socket, "401 Not Authenticated\n"); return ; } // Check permissions if( !(Bank_GetFlags(Client->UID) & USER_FLAG_ADMIN) ) { sendf(Client->Socket, "403 Not a coke admin\n"); return ; } // Get UID uid = Bank_GetAcctByName(username, 0); if( uid == -1 ) { sendf(Client->Socket, "404 User '%s' not found\n", username); return ; } // Parse flags if( Server_int_ParseFlags(Client, flags, &mask, &value) ) return ; if( giDebugLevel ) Debug(Client, "Set %i(%s) flags to %x (masked %x)\n", uid, username, mask, value); // Apply flags Bank_SetFlags(uid, mask, value); // Log the change Log_Info("Updated '%s' with flag set '%s' by '%s' - Reason: %s", username, flags, Client->Username, reason); // Return OK sendf(Client->Socket, "200 User Updated\n"); }
void Server_Cmd_USERADD(tClient *Client, char *Args) { char *username; // Parse arguments if( Server_int_ParseArgs(0, Args, &username, NULL) ) { sendf(Client->Socket, "407 USER_ADD takes 1 argument\n"); return ; } // Check authentication if( !Client->bIsAuthed ) { sendf(Client->Socket, "401 Not Authenticated\n"); return ; } // Check permissions if( !(Bank_GetFlags(Client->UID) & USER_FLAG_ADMIN) ) { sendf(Client->Socket, "403 Not a coke admin\n"); return ; } // Try to create user if( Bank_CreateAcct(username) == -1 ) { sendf(Client->Socket, "404 User exists\n"); return ; } { char *thisName = Bank_GetAcctName(Client->UID); Log_Info("Account '%s' created by '%s'", username, thisName); free(thisName); } sendf(Client->Socket, "200 User Added\n"); }
void Log_ScopeDomains_Helper2() { Log_SetDomain( "H2FILE", Scope::Filename ) Log_SetDomain( "H2METHOD", Scope::Method ) Log_Info(""); }
void HelloALox() { Log_Info ( "Hello ALox!" ); }