/* Public domain */ #define MC_USER_NBUCKETS 1024 #define MC_USER_NAME_MAX 64 #define MC_USER_PASS_MAX 64 #define MC_USER_REAL_NAME_MAX 64 #define MC_USER_EMAIL_MAX 128 #define MC_USER_LANG_MAX 12 #define MC_USER_COUNTRY_MAX 12 #define MC_USER_COMMENTS_MAX 128 typedef struct mc_user { struct ag_object _inherit; char name[MC_USER_NAME_MAX]; char pass[MC_USER_PASS_MAX]; char real_name[MC_USER_REAL_NAME_MAX]; char email[MC_USER_EMAIL_MAX]; char lang[MC_USER_LANG_MAX]; char country[MC_USER_COUNTRY_MAX]; char comments[MC_USER_COMMENTS_MAX]; Uint flags; /* Sync agar engine/net/net.h. */ #define MC_USER_WRITE 0x01 /* Write access on repository */ #define MC_USER_ADMIN 0x02 /* Administrative access */ #define MC_USER_EMAIL_NOTICES 0x04 /* Send email notices */ #define MC_USER_SETTABLE_FLAGS (MC_USER_EMAIL_NOTICES) TAILQ_ENTRY(mc_user) usert; /* Entry in hash table */ TAILQ_ENTRY(mc_user) userl; /* Entry in flat list */ } MC_User; extern AG_ObjectClass mcUserClass; extern AG_Object mcUserMgr; void MC_UserTblInit(void); void MC_UserTblRehash(void); void MC_UserTblDestroy(void); MC_User *MC_UserLookup(const char *); void MC_UserLink(struct mc_user *); void MC_UserUnlink(struct mc_user *); int user_get_infos(NS_Command *, void *); int user_set_infos(NS_Command *, void *); int user_activate(NS_Command *, void *); int user_show(NS_Command *, void *);