Changeset 62
- Timestamp:
- 2009年02月24日 10时03分17秒 (3 years ago)
- Location:
- trunk/pysvnmanager/controllers
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/pysvnmanager/controllers/authz.py
r50 r62 33 33 # Used as checked in user to rcs file. 34 34 self.authz.login_as = self.login_as 35 self. reposlist = set(self.authz.get_manageable_repos_list(self.login_as))35 self.own_reposlist = set(self.authz.get_manageable_repos_list(self.login_as)) 36 36 37 37 # self.reposlist_new is what in ReposRoot directory. 38 self.reposlist_real = set(_repos.Repos(cfg.repos_root).repos_list) 39 self.reposlist_real.add('/') 40 41 self.reposlist_set = self.reposlist & self.reposlist_real 42 self.reposlist_unexist = self.reposlist - self.reposlist_real 43 44 if self.authz.is_super_user(self.login_as): 45 self.reposlist_unset = self.reposlist_real - self.reposlist 38 self.all_reposlist = set(_repos.Repos(cfg.repos_root).repos_list) 39 self.all_reposlist.add('/') 40 41 self.reposlist_set = self.own_reposlist & self.all_reposlist 42 self.reposlist_unexist = self.own_reposlist - self.all_reposlist 43 44 self.is_super_user = self.authz.is_super_user(self.login_as) 45 if self.is_super_user: 46 self.reposlist_unset = self.all_reposlist - self.own_reposlist 46 47 else: 47 48 self.reposlist_unset = set() … … 49 50 def __before__(self, action): 50 51 super(AuthzController, self).__before__(action) 51 if not self. reposlist:52 if not self.own_reposlist and not self.is_super_user: 52 53 return redirect_to(h.url_for(controller='security', action='failed')) 53 54 … … 55 56 c.revision = self.authz.version 56 57 # used for functional test. 57 c.reposlist = self. reposlist58 c.reposlist = self.own_reposlist 58 59 59 60 all_avail_users = [] -
trunk/pysvnmanager/controllers/repos.py
r50 r62 34 34 # Used as checked in user to rcs file. 35 35 self.authz.login_as = self.login_as 36 37 self.repos_root = cfg.repos_root 38 self.repos = _repos.Repos(self.repos_root) 39 self.repos_list = self.repos.repos_list 40 36 37 self.own_reposlist = set(self.authz.get_manageable_repos_list(self.login_as)) 38 39 # self.all_reposlist is all available repositories in the ReposRoot directory. 40 self.repos = _repos.Repos(cfg.repos_root) 41 self.all_reposlist = set(self.repos.repos_list) 42 43 self.reposlist_set = self.own_reposlist & self.all_reposlist 44 self.reposlist_unexist = self.own_reposlist - self.all_reposlist 45 46 self.is_super_user = self.authz.is_super_user(self.login_as) 47 if self.is_super_user: 48 self.reposlist_unset = self.all_reposlist - self.own_reposlist 49 else: 50 self.reposlist_unset = set() 41 51 42 52 def __before__(self, action): 43 53 super(ReposController, self).__before__(action) 44 if not self. authz.is_super_user(self.login_as):54 if not self.own_reposlist and not self.is_super_user: 45 55 return redirect_to(h.url_for(controller='security', action='failed')) 46 56 47 57 def index(self): 48 58 return render('/repos/hooks.mako') 59 60 def validate_repos(self, reposname): 61 if reposname not in self.own_reposlist and not self.is_super_user: 62 raise Exception("Access denied.") 49 63 50 64 def init_repos_list(self): … … 57 71 msg += 'name[0]="%s";\n' % _("Please choose...") 58 72 total += 1; 59 for reposname in s elf.repos_list:73 for reposname in sorted(self.reposlist_set): 60 74 if filter=='blank' and not self.repos.is_blank_svn_repos(reposname): 61 75 continue … … 63 77 msg += 'name[%d]="%s";\n' % (total, reposname) 64 78 total += 1; 79 for reposname in sorted(self.reposlist_unset): 80 if filter=='blank' and not self.repos.is_blank_svn_repos(reposname): 81 continue 82 msg += 'id[%d]="%s";' % (total, reposname) 83 msg += 'name[%d]="%s";\n' % (total, reposname+' (!)') 84 total += 1; 65 85 msg += 'total=%d;\n' % total 66 86 return msg … … 68 88 def get_plugin_list(self): 69 89 reposname = request.params.get('select') 70 h = _hooks.Hooks(self.repos_root + '/' + reposname) 90 self.validate_repos(reposname) 91 h = _hooks.Hooks(cfg.repos_root + '/' + reposname) 71 92 total = 0; 72 93 msg = '' … … 86 107 def get_installed_hook_form(self): 87 108 reposname = request.params.get('select') 88 h = _hooks.Hooks(self.repos_root + '/' + reposname) 109 self.validate_repos(reposname) 110 h = _hooks.Hooks(cfg.repos_root + '/' + reposname) 89 111 msg = '' 90 112 if len(h.applied_plugins) > 0: … … 117 139 def get_hook_setting_form(self): 118 140 reposname = request.params.get('repos') 141 self.validate_repos(reposname) 119 142 pluginname = request.params.get('plugin') 120 h = _hooks.Hooks( self.repos_root + '/' + reposname)143 h = _hooks.Hooks(cfg.repos_root + '/' + reposname) 121 144 result = "<input type='hidden' name='_repos' value='%s'>" % reposname 122 145 result += "<input type='hidden' name='_plugin' value='%s'>" % pluginname … … 129 152 d = request.params 130 153 reposname = d.get("_repos") 154 self.validate_repos(reposname) 131 155 pluginname = d.get("_plugin") 132 h = _hooks.Hooks( self.repos_root + '/' + reposname)156 h = _hooks.Hooks(cfg.repos_root + '/' + reposname) 133 157 plugin = h.plugins[pluginname] 134 158 plugin.install(d) … … 145 169 d = request.params 146 170 reposname = d.get("_repos") 171 self.validate_repos(reposname) 147 172 for i in d.keys(): 148 173 if "pluginid_" in i: … … 152 177 log.debug("plugin_list:" + ','.join(plugin_list)) 153 178 try: 154 hookobj = _hooks.Hooks( self.repos_root + '/' + reposname)179 hookobj = _hooks.Hooks(cfg.repos_root + '/' + reposname) 155 180 for pluginname in plugin_list: 156 181 hookobj.plugins[pluginname].reload() … … 171 196 d = request.params 172 197 reposname = d.get("reposname") 198 self.validate_repos(reposname) 173 199 self.repos.create(reposname) 174 200 except Exception, e: … … 187 213 d = request.params 188 214 reposname = d.get("repos_list") 215 self.validate_repos(reposname) 189 216 self.repos.delete(reposname) 190 217 except Exception, e:
![(please configure the [header_logo] section in trac.ini)](/trac/pysvnmanager/chrome/common/trac_banner.png)