Changeset 634 for wikirbacpatch
- Timestamp:
- 04/09/06 14:08:54 (3 years ago)
- Files:
-
- wikirbacpatch/0.9/rbac.patch (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
wikirbacpatch/0.9/rbac.patch
r388 r634 1 Index: web_ui.py 2 =================================================================== 3 --- web_ui.py (revision 40) 4 +++ web_ui.py (working copy) 1 --- trac/wiki/web_ui.py.orig 2006-02-13 15:32:40.000000000 -0800 2 +++ trac/wiki/web_ui.py 2006-02-13 15:32:09.000000000 -0800 5 3 @@ -32,13 +32,15 @@ 6 4 from trac.web import IRequestHandler 7 5 from trac.wiki.model import WikiPage 8 6 from trac.wiki.formatter import wiki_to_html, wiki_to_oneliner 7 - 9 8 +from trac.wiki.rbac import WikiAuthorizer 10 9 11 -12 10 class WikiModule(Component): 13 11 … … 20 18 21 19 def get_active_navigation_item(self, req): 22 @@ -7 2,6 +74,7 @@20 @@ -74,6 +76,7 @@ 23 21 pagename = req.args.get('page', 'WikiStart') 24 22 version = req.args.get('version') … … 28 26 page = WikiPage(self.env, pagename, version, db) 29 27 30 @@ -11 6,6 +119,12@@28 @@ -118,6 +121,13 @@ 31 29 req.hdf['wiki.action'] = action 32 req.hdf['wiki.page_name'] = escape(page.name)33 req.hdf['wiki.current_href'] = escape(self.env.href.wiki(page.name))30 req.hdf['wiki.page_name'] = page.name 31 req.hdf['wiki.current_href'] = self.env.href.wiki(page.name) 34 32 + for permission in self.get_permission_actions(): 35 33 + if isinstance(permission, (list, tuple)): 36 + permission = permission[0]34 + permission = permission[0] 37 35 + self.log.debug("PERMISSION: %s", permission) 38 36 + req.hdf['trac.acl.' + permission] =\ 39 37 + self.authz.has_authorization(req.perm, req.authname, page.name, permission) 38 + 40 39 return 'wiki.cs', None 41 40 42 41 # ITimelineEventProvider methods 43 @@ -13 3,25 +142,30@@42 @@ -135,24 +145,29 @@ 44 43 "FROM wiki WHERE time>=%s AND time<=%s", 45 44 (start, stop)) 46 45 for t,name,comment,author in cursor: 47 - title = '<em>%s</em> edited by %s' % ( 48 - escape(name), escape(author)) 46 - title = Markup('<em>%s</em> edited by %s', name, author) 49 47 - if format == 'rss': 50 48 - href = self.env.abs_href.wiki(name) … … 57 55 - yield 'wiki', href, title, t, author, comment 58 56 + if self.authz.has_authorization(req.perm, req.authname, name, 'WIKI_VIEW'): 59 + title = '<em>%s</em> edited by %s' % ( 60 + escape(name), escape(author)) 57 + title = Markup('<em>%s</em> edited by %s', name, author) 61 58 + if format == 'rss': 62 59 + href = self.env.abs_href.wiki(name) … … 83 80 if req.args.has_key('cancel'): 84 81 req.redirect(self.env.href.wiki(page.name)) 85 @@ -17 3,8 +187,10 @@82 @@ -174,8 +189,10 @@ 86 83 req.perm.assert_permission('WIKI_ADMIN') 87 84 elif not page.exists: … … 94 91 page.text = req.args.get('text') 95 92 if req.perm.has_permission('WIKI_ADMIN'): 96 @@ -19 1,6 +207,7 @@93 @@ -192,6 +209,7 @@ 97 94 req.perm.assert_permission('WIKI_ADMIN') 98 95 else: … … 102 99 version = None 103 100 if req.args.has_key('delete_version'): 104 @@ -2 09,6 +226,7 @@101 @@ -210,6 +228,7 @@ 105 102 106 103 def _render_diff(self, req, db, page): … … 110 107 if not page.exists: 111 108 raise TracError, "Version %s of page %s does not exist" \ 112 @@ -277,6 +29 5,7 @@109 @@ -277,6 +296,7 @@ 113 110 114 111 def _render_editor(self, req, db, page, preview=False): … … 118 115 if req.args.has_key('text'): 119 116 page.text = req.args.get('text') 120 @@ -320,6 +3 39,7 @@117 @@ -320,6 +340,7 @@ 121 118 page. 122 119 """ … … 126 123 if not page.exists: 127 124 raise TracError, "Page %s does not exist" % page.name 128 @@ -344,6 +36 4,7 @@125 @@ -344,6 +365,7 @@ 129 126 130 127 def _render_view(self, req, db, page): … … 134 131 if page.name == 'WikiStart': 135 132 req.hdf['title'] = '' 136 @@ -365,7 +38 6,8 @@133 @@ -365,7 +387,8 @@ 137 134 history_href = self.env.href.wiki(page.name, action='history') 138 req.hdf['wiki.history_href'] = escape(history_href)135 req.hdf['wiki.history_href'] = history_href 139 136 else: 140 137 - if not req.perm.has_permission('WIKI_CREATE'): … … 142 139 + self.authz.has_authorization(req.perm, req.authname, page.name, 'WIKI_CREATE'): 143 140 raise TracError('Page %s not found' % page.name) 144 req.hdf['wiki.page_html'] = '<p>Describe "%s" here</p>' % page.name145 146 @@ -37 4,7 +396,8 @@141 req.hdf['wiki.page_html'] = Markup('<p>Describe "%s" here</p>', 142 page.name) 143 @@ -375,7 +398,8 @@ 147 144 for attachment in Attachment.select(self.env, 'wiki', page.name, db): 148 145 attachments.append(attachment_to_hdf(self.env, db, req, attachment)) … … 154 151 req.hdf['wiki.attach_href'] = attach_href 155 152 156 @@ -39 8,7 +421,8 @@153 @@ -399,7 +423,8 @@ 157 154 "AND " + sql_query, args) 158 155 159 156 for name, date, author, text in cursor: 160 157 - yield (self.env.href.wiki(name), 161 - '%s: %s' % (name, escape(shorten_line(text))),158 - '%s: %s' % (name, shorten_line(text)), 162 159 - date, author, 163 - escape(shorten_result(text, query.split())))164 + if self.authz.has_authorization(req.perm, name, 'WIKI_VIEW'):160 - shorten_result(text, query.split())) 161 + if self.authz.has_authorization(req.perm, req.authname, name, 'WIKI_VIEW'): 165 162 + yield (self.env.href.wiki(name), 166 + '%s: %s' % (name, escape(shorten_line(text))),163 + '%s: %s' % (name, shorten_line(text)), 167 164 + date, author, 168 + escape(shorten_result(text, query.split()))) 169 Index: rbac.py 170 =================================================================== 171 --- rbac.py (revision 0) 172 +++ rbac.py (revision 88) 165 + shorten_result(text, query.split())) 166 --- trac/wiki/rbac.py.orig 2006-02-13 15:32:45.000000000 -0800 167 +++ trac/wiki/rbac.py 2006-02-13 15:29:34.000000000 -0800 173 168 @@ -0,0 +1,82 @@ 174 169 +from trac.core import *
