X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcokebank_basic%2Fmain.c;h=9892231a08e7069b0551fa64ebc6d67b926e642d;hb=ca788d1ed62b100c213fa9de432f969d85b136e9;hp=e635b916ed2b4e08fbfc00eef8c7ad50955e233e;hpb=41582cb84bded83614e11b1c115deea13e1914cc;p=tpg%2Fopendispense2.git diff --git a/src/cokebank_basic/main.c b/src/cokebank_basic/main.c index e635b91..9892231 100644 --- a/src/cokebank_basic/main.c +++ b/src/cokebank_basic/main.c @@ -9,22 +9,10 @@ */ #include #include -#include #include #include #include "common.h" -// === IMPORTS === -extern int Bank_GetMinAllowedBalance(int ID); -extern int Bank_GetUserBalance(int ID); -extern int Bank_AlterUserBalance(int ID, int Delta); -extern int Bank_GetUserByUnixID(int UnixID); -extern int Bank_GetUserUnixID(int ID); -extern int Bank_AddUser(int UnixID); -extern FILE *gBank_File; -extern tUser *gaBank_Users; -extern int giBank_NumUsers; - // === PROTOTYPES === void Init_Cokebank(const char *Argument); int Transfer(int SourceUser, int DestUser, int Ammount, const char *Reason); @@ -32,6 +20,7 @@ void Init_Cokebank(const char *Argument); char *GetUserName(int User); int GetUserID(const char *Username); int GetUserAuth(const char *Username, const char *Password); + int GetMaxID(void); // === GLOBALS === FILE *gBank_LogFile; @@ -72,6 +61,7 @@ int Transfer(int SourceUser, int DestUser, int Ammount, const char *Reason) { int srcBal = Bank_GetUserBalance(SourceUser); int dstBal = Bank_GetUserBalance(DestUser); + if( srcBal - Ammount < Bank_GetMinAllowedBalance(SourceUser) ) return 1; if( dstBal + Ammount < Bank_GetMinAllowedBalance(DestUser) ) @@ -83,6 +73,11 @@ int Transfer(int SourceUser, int DestUser, int Ammount, const char *Reason) return 0; } +int GetFlags(int User) +{ + return Bank_GetUserFlags(User); +} + /** * \brief Get the balance of the passed user */ @@ -96,19 +91,7 @@ int GetBalance(int User) */ char *GetUserName(int User) { - struct passwd *pwd; - int unixid = Bank_GetUserUnixID(User); - - if( unixid == -1 ) - return strdup(">sales"); - - if( unixid == -2 ) - return strdup(">liability"); - - pwd = getpwuid(unixid); - if( !pwd ) return NULL; - - return strdup(pwd->pw_name); + return Bank_GetUserName(User); } /** @@ -116,28 +99,19 @@ char *GetUserName(int User) */ int GetUserID(const char *Username) { - int ret, uid; - - if( strcmp(Username, ">sales") == 0 ) { // Pseudo account that sales are made into - uid = -1; - } - else if( strcmp(Username, ">liability") == 0 ) { // Pseudo acount that money is added from - uid = -2; - } - else { - struct passwd *pwd; - // Get user ID - pwd = getpwnam(Username); - if( !pwd ) return -1; - uid = pwd->pw_uid; - } + int ret; // Get internal ID (or create new user) - ret = Bank_GetUserByUnixID(uid); + ret = Bank_GetUserByName(Username); if( ret == -1 ) { - ret = Bank_AddUser(uid); + ret = Bank_AddUser(Username); } return ret; } +int GetMaxID(void) +{ + return giBank_NumUsers; +} +