X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Ffastcgi.h;h=85dab5737e358592f64d1febebff739501d8cf12;hb=fc0dc3b827eeff91373db42a78a098200cbf8fa6;hp=269bb94a5d00f972207e78d42de89f1e54f5430d;hpb=826791abc3a3bb383c2908d7d39618b99ad7665c;p=matches%2FMCTX3420.git diff --git a/server/fastcgi.h b/server/fastcgi.h index 269bb94..85dab57 100644 --- a/server/fastcgi.h +++ b/server/fastcgi.h @@ -39,17 +39,21 @@ typedef struct FCGIValue { unsigned flags; } FCGIValue; +typedef enum {USER_UNAUTH, USER_NORMAL, USER_ADMIN} UserType; + /**Contextual information related to FCGI requests*/ typedef struct { /**The time of last valid user access possessing the control key**/ time_t control_timestamp; /**A SHA-1 hash that is the control key, determining who is logged in**/ - char control_key[41]; + char control_key[41]; /**The IPv4 address of the logged-in user**/ char control_ip[16]; - /**A friendly name for the logged-in user. Max length 30**/ - char friendly_name[31]; + /**Determines if the user is an admin or not**/ + UserType user_type; + /**Name of the logged in user**/ + char user_name[31]; /**The name of the current module**/ const char *current_module; /**For debugging purposes?**/ @@ -58,7 +62,7 @@ typedef struct typedef void (*ModuleHandler) (FCGIContext *context, char *params); -extern bool FCGI_LockControl(FCGIContext *context, bool force); +extern bool FCGI_LockControl(FCGIContext *context, const char * user_name, UserType user_type); extern void FCGI_ReleaseControl(FCGIContext *context); extern bool FCGI_HasControl(FCGIContext *context, const char *key); extern char *FCGI_KeyPair(char *in, const char **key, const char **value);