Show
Ignore:
Timestamp:
02/24/08 14:53:52 (4 years ago)
Author:
trivoallan
Message:

cleverbox : fixed permissions.ini handling. Fixes #21

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • cleverbox/trunk/cleverbox/model/project.py

    r260 r267  
    138138        _trac_initenv(environment, parameters) 
    139139 
     140        # -- Revoke all permissions in trac 
     141        _trac_revoke_all_perms(environment, parameters) 
     142 
    140143        # -- Trac initial permissions 
    141144        _trac_setperms(environment, parameters) 
     
    231234                                 infos['short_name'] ) 
    232235 
    233     # Perms for authenticated users 
    234     default_perms = ( 'BROWSER_VIEW', 
    235                       'CHANGESET_VIEW', 
    236                       'FILE_VIEW', 
    237                       'LOG_VIEW', 
    238                       'MILESTONE_VIEW', 
    239                       'REPORT_SQL_VIEW', 
    240                       'REPORT_VIEW', 
    241                       'ROADMAP_VIEW', 
    242                       'SEARCH_VIEW', 
    243                       'TICKET_CREATE', 
    244                       'TICKET_MODIFY', 
    245                       'TICKET_VIEW', 
    246                       'TIMELINE_VIEW', 
    247                       'WIKI_CREATE', 
    248                       'WIKI_MODIFY', 
    249                       'WIKI_VIEW' ) 
    250  
    251236    trac_perms_cmd = 'trac-admin %(env_path)s permission %(subcommand)s %(subject)s %(perms)s' 
    252  
    253     # Remove all anonymous permissions 
    254     # TODO : instead of using the default_perms array, we should list all anonymous using the permissions list cmd  
    255     os.system( trac_perms_cmd % {'env_path'   : trac_env_path, 
    256                                  'subcommand' : 'remove', 
    257                                  'subject'    : 'anonymous', 
    258                                  'perms'      : ' '.join(default_perms)} ) 
    259237 
    260238    # Grant default permissions 
    261239    perms_config = ConfigParser.SafeConfigParser() 
    262240    perms_config.read(os.path.join(environment.path, 'profiles', infos['profile'], 'permissions.ini')) 
     241     
     242    # Grant permissions as defined in permissions.ini 
    263243    for profile in perms_config.options('trac'): 
    264244        os.system( trac_perms_cmd % {'env_path'   : trac_env_path, 
     
    273253                                 'subject'    : admin_login, 
    274254                                 'perms'      : 'TRAC_ADMIN'} ) 
    275     print 
     255     
    276256    print "  Trac initial permissions set (admin rights given to '%s')\n" % admin_login 
     257 
     258def _trac_revoke_all_perms(environment, infos): 
     259    import trac.env 
     260     
     261    trac_env_path = os.path.join( environment.config.get('general', 'clients_root'), 
     262                                 infos['client'], 
     263                                 'var/trac', 
     264                                 infos['short_name'] ) 
     265     
     266    # Revoke all permissions 
     267    trac_env = trac.env.open_environment(trac_env_path) 
     268    trac_db = trac_env.get_db_cnx() 
     269    db_cursor = trac_db.cursor() 
     270    db_cursor.execute('DELETE FROM permission') 
     271    trac_db.commit() 
     272     
     273    print "  Revoked Trac default permissions\n" 
    277274 
    278275def _fix_perms(environment, infos):