X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fserver%2Fserver.c;h=dbcc94b7a4e3cb4303acd9640af65f75b8ed9d6c;hb=af75d76fa94d5ff7fe1ff5e0b7c2a0a17740e93b;hp=974efca34166c503ca7927852a6560389c963320;hpb=70f78ddbda249023519f5978c633574b10f1fcd2;p=tpg%2Fopendispense2.git diff --git a/src/server/server.c b/src/server/server.c index 974efca..dbcc94b 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -508,17 +508,20 @@ void Server_Cmd_SETEUSER(tClient *Client, char *Args) } // You can't be an internal account - eUserFlags = Bank_GetFlags(Client->EffectiveUID); - if( eUserFlags & USER_FLAG_INTERNAL ) { - Client->EffectiveUID = -1; - sendf(Client->Socket, "404 User not found\n"); - return ; - } - // Disabled only avaliable to admins - if( (eUserFlags & USER_FLAG_DISABLED) && !(userFlags & USER_FLAG_ADMIN) ) { - Client->EffectiveUID = -1; - sendf(Client->Socket, "403 Account disabled\n"); - return ; + if( !(userFlags & USER_FLAG_ADMIN) ) + { + eUserFlags = Bank_GetFlags(Client->EffectiveUID); + if( eUserFlags & USER_FLAG_INTERNAL ) { + Client->EffectiveUID = -1; + sendf(Client->Socket, "404 User not found\n"); + return ; + } + // Disabled only avaliable to admins + if( eUserFlags & USER_FLAG_DISABLED ) { + Client->EffectiveUID = -1; + sendf(Client->Socket, "403 Account disabled\n"); + return ; + } } sendf(Client->Socket, "200 User set\n"); @@ -815,9 +818,13 @@ void Server_Cmd_ADD(tClient *Client, char *Args) } // You can't alter an internal account - if( Bank_GetFlags(uid) & USER_FLAG_INTERNAL ) { - sendf(Client->Socket, "404 Invalid user\n"); - return ; + if( !(Bank_GetFlags(Client->UID) & USER_FLAG_ADMIN) ) + { + if( Bank_GetFlags(uid) & USER_FLAG_INTERNAL ) { + sendf(Client->Socket, "404 Invalid user\n"); + return ; + } + // TODO: Maybe disallow changes to disabled? } // Parse ammount @@ -870,12 +877,6 @@ void Server_Cmd_SET(tClient *Client, char *Args) sendf(Client->Socket, "404 Invalid user\n"); return ; } - - // You can't alter an internal account - if( Bank_GetFlags(uid) & USER_FLAG_INTERNAL ) { - sendf(Client->Socket, "404 Invalid user\n"); - return ; - } // Parse ammount iAmmount = atoi(ammount);