1 from Mailman.PsycopgConnector import PsycopgConnector
2 from Mailman.ForgeSecurityManager import ForgeSecurityManager
5 def extendMemberAdaptor(list):
6 sys.path.append('/etc/gforge')
9 #Config to connect to database
10 dbparam['dbhost'] = database.sys_dbhost
11 dbparam['dbuser']= database.sys_dbuser
12 dbparam['dbpassword'] = database.sys_dbpasswd
13 dbparam['database'] = database.sys_dbname
14 dbparam['refresh'] = 360
16 dbparam['mailman_table']= 'plugin_mailman'#table where mailman stores memeberships info
18 ######################
19 # Session Management #
20 ######################
21 #Forge default session
22 dbparam['cookiename']='session_ser'
23 dbparam['queryCookieMail']="SELECT email FROM user_session,users WHERE users.user_id=user_session.user_id AND session_hash = substring('%s','.*-%%2A-(.*)');"
24 dbparam['queryCookieId']="SELECT user_id FROM user_session WHERE session_hash = substring('%s','.*-%%2A-(.*)');"
26 dbparam['queryIsAdmin'] = "SELECT COUNT(*) FROM mail_group_list WHERE list_admin=%s AND list_name='%s';"
27 dbparam['queryIsMonitoring'] = "SELECT COUNT(*) FROM "+dbparam['mailman_table']+", users "+" WHERE users.email = "+dbparam['mailman_table']+".address"+" AND users.user_id=%s AND listname='%s';"
28 dbparam['queryIsSiteAdmin'] = "SELECT count(*) AS count FROM user_group WHERE user_id=%s AND group_id=1 AND admin_flags='A';"
31 #dbparam['cookiename']='zend_cookie_session'
32 #dbparam['queryCookieMail']="""select substring(session_data,'email";s:[0-9]*?:"(.*)";s') from plugin_zendsession where session_hash='%s';"""
33 #dbparam['queryCookieId']="""SELECT substring(session_data,'user_id";i:([0-9]{1,})') FROM plugin_zendsession WHERE session_hash='%s';"""
35 ######################
36 # Type of connection #
37 ######################
38 db = PsycopgConnector(list,dbparam)
39 list._memberadaptor = db
41 def extendSecurityManager(list):
42 sm = ForgeSecurityManager(list)
43 list._securitymanager = sm