1 /* groupserv_common.h - group services common definitions 2 * Copyright (C) 2010 Atheme Development Group 3 */ 4 5 #ifndef GROUPSERV_COMMON_H 6 #define GROUPSERV_COMMON_H 7 8 #include "atheme.h" 9 10 typedef struct groupserv_config_ groupserv_config_t; 11 12 struct groupserv_config_ { 13 unsigned int maxgroups; 14 unsigned int maxgroupacs; 15 bool enable_open_groups; 16 char *join_flags; 17 }; 18 19 #define MG_REGNOLIMIT 0x00000001 20 #define MG_ACSNOLIMIT 0x00000002 21 #define MG_OPEN 0x00000004 22 #define MG_PUBLIC 0x00000008 23 24 typedef struct mygroup_ mygroup_t; 25 26 struct mygroup_ { 27 myentity_t ent; 28 29 mowgli_list_t acs; 30 time_t regtime; 31 32 unsigned int flags; 33 34 bool visited; 35 }; 36 37 #define GA_FOUNDER 0x00000001 38 #define GA_FLAGS 0x00000002 39 #define GA_CHANACS 0x00000004 40 #define GA_MEMOS 0x00000008 41 #define GA_SET 0x00000010 42 #define GA_VHOST 0x00000020 43 #define GA_BAN 0x00000040 44 #define GA_INVITE 0x00000080 45 #define GA_ACLVIEW 0x00000100 46 #define GA_ALL (GA_FLAGS | GA_CHANACS | GA_MEMOS | GA_SET | GA_VHOST | GA_INVITE | GA_ACLVIEW) 47 #define GA_ALL_OLD (GA_FLAGS | GA_CHANACS | GA_MEMOS | GA_SET | GA_VHOST | GA_INVITE) 48 49 #define PRIV_GROUP_ADMIN "group:admin" 50 #define PRIV_GROUP_AUSPEX "group:auspex" 51 52 typedef struct groupacs_ groupacs_t; 53 54 struct groupacs_ { 55 object_t parent; 56 57 mygroup_t *mg; 58 myentity_t *mt; 59 unsigned int flags; 60 61 mowgli_node_t gnode; 62 mowgli_node_t unode; 63 }; 64 65 #endif /* !GROUPSERV_H */ 66