Changeset 267

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

cleverbox : fixed permissions.ini handling. Fixes #21

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • cleverbox/branches/0.4/assets/permissions.ini

    r125 r267  
    11[trac] 
     2anonymous = SEARCH_VIEW TICKET_VIEW REPORT_VIEW TIMELINE_VIEW BROWSER_VIEW FILE_VIEW CHANGESET_VIEW LOG_VIEW WIKI_VIEW ROADMAP_VIEW MILESTONE_VIEW 
    23authenticated = BROWSER_VIEW CHANGESET_VIEW FILE_VIEW LOG_VIEW MILESTONE_VIEW REPORT_SQL_VIEW REPORT_VIEW ROADMAP_VIEW SEARCH_VIEW TICKET_CREATE TICKET_MODIFY TICKET_VIEW TIMELINE_VIEW WIKI_CREATE WIKI_MODIFY WIKI_VIEW 
    3 privileged = TRAC_ADMIN 
  • cleverbox/branches/0.4/cleverbox/scripts/admin.py

    r262 r267  
    784784                self._project_trac_initenv( collected_infos ) 
    785785 
     786                # -- Revoke all permissions in trac 
     787                self._project_trac_revoke_all_perms( collected_infos ) 
     788         
    786789                # -- Trac initial permissions 
    787790                self._project_trac_setperms( collected_infos ) 
     
    883886                                     infos['short_name'] ) 
    884887 
    885         # Perms for authenticated users 
    886         default_perms = ( 'BROWSER_VIEW', 
    887                           'CHANGESET_VIEW', 
    888                           'FILE_VIEW', 
    889                           'LOG_VIEW', 
    890                           'MILESTONE_VIEW', 
    891                           'REPORT_SQL_VIEW', 
    892                           'REPORT_VIEW', 
    893                           'ROADMAP_VIEW', 
    894                           'SEARCH_VIEW', 
    895                           'TICKET_CREATE', 
    896                           'TICKET_MODIFY', 
    897                           'TICKET_VIEW', 
    898                           'TIMELINE_VIEW', 
    899                           'WIKI_CREATE', 
    900                           'WIKI_MODIFY', 
    901                           'WIKI_VIEW' ) 
    902  
    903888        trac_perms_cmd = 'trac-admin %(env_path)s permission %(subcommand)s %(subject)s %(perms)s' 
    904  
    905         # Remove all anonymous permissions 
    906         os.system( trac_perms_cmd % {'env_path'   : trac_env_path, 
    907                                      'subcommand' : 'remove', 
    908                                      'subject'    : 'anonymous', 
    909                                      'perms'      : ' '.join(default_perms)} ) 
    910889 
    911890        # Grant default permissions 
     
    932911        print 
    933912        print "  Trac initial permissions set (admin rights given to '%s')\n" % admin_login 
     913 
     914    def _project_trac_revoke_all_perms(self, infos): 
     915        import trac.env 
     916         
     917        trac_env_path = os.path.join( self.getConfig('clients_root', 'general'), 
     918                                     infos['client'], 
     919                                     'var/trac', 
     920                                     infos['short_name'] ) 
     921         
     922        # Revoke all permissions 
     923        trac_env = trac.env.open_environment(trac_env_path) 
     924        trac_db = trac_env.get_db_cnx() 
     925        db_cursor = trac_db.cursor() 
     926        db_cursor.execute('DELETE FROM permission') 
     927        trac_db.commit() 
     928         
     929        print 
     930        print "  Revoked Trac default permissions\n" 
    934931 
    935932    def _project_fix_perms(self, infos): 
  • cleverbox/trunk/assets/permissions.ini

    r125 r267  
    11[trac] 
     2anonymous = SEARCH_VIEW TICKET_VIEW REPORT_VIEW TIMELINE_VIEW BROWSER_VIEW FILE_VIEW CHANGESET_VIEW LOG_VIEW WIKI_VIEW ROADMAP_VIEW MILESTONE_VIEW 
    23authenticated = BROWSER_VIEW CHANGESET_VIEW FILE_VIEW LOG_VIEW MILESTONE_VIEW REPORT_SQL_VIEW REPORT_VIEW ROADMAP_VIEW SEARCH_VIEW TICKET_CREATE TICKET_MODIFY TICKET_VIEW TIMELINE_VIEW WIKI_CREATE WIKI_MODIFY WIKI_VIEW 
    3 privileged = TRAC_ADMIN 
  • 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):