Exemplo n.º 1
0
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");
}
Exemplo n.º 2
0
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!" );
}