X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fserver%2Fdispense.c;h=215e580cae16962242102945832fd5cc0b77c9bb;hb=f3e7bcadc603e1632c268d3a209d218123423bfa;hp=3fb565248567d106570f652f746a1c894944cc12;hpb=53da6362ecb3da3179de984fca9b9d026578e797;p=tpg%2Fopendispense2.git diff --git a/src/server/dispense.c b/src/server/dispense.c index 3fb5652..215e580 100644 --- a/src/server/dispense.c +++ b/src/server/dispense.c @@ -105,6 +105,39 @@ int DispenseGive(int ActualUser, int SrcUser, int DestUser, int Ammount, const c return 0; } +/** + * \brief Move money from one user to another (Admin Only) + */ +int DispenseTransfer(int ActualUser, int SrcUser, int DestUser, int Ammount, const char *ReasonGiven) +{ + int ret; + char *actualUsername; + char *srcName, *dstName; + + // Make sure the user is an admin + if( !(Bank_GetFlags(ActualUser) & USER_FLAG_ADMIN) ) + return 1; + + ret = _Transfer( SrcUser, DestUser, Ammount, ReasonGiven ); + if(ret) return 2; // No Balance + + + actualUsername = Bank_GetAcctName(ActualUser); + srcName = Bank_GetAcctName(SrcUser); + dstName = Bank_GetAcctName(DestUser); + + Log_Info("move %i to %s from %s by %s [balances %i, %i] - %s", + Ammount, dstName, srcName, actualUsername, + Bank_GetBalance(SrcUser), Bank_GetBalance(DestUser), + ReasonGiven + ); + + free(srcName); + free(dstName); + free(actualUsername); + + return 0; +} /** * \brief Add money to an account */