Merge lp:~max-rabkin/ibid/perm-check-725240 into lp:~ibid-core/ibid/old-trunk-1.6

Proposed by Max Rabkin
Status: Merged
Approved by: Stefano Rivera
Approved revision: 1017
Merged at revision: 1025
Proposed branch: lp:~max-rabkin/ibid/perm-check-725240
Merge into: lp:~ibid-core/ibid/old-trunk-1.6
Diff against target: 44 lines (+15/-10)
1 file modified
ibid/plugins/identity.py (+15/-10)
To merge this branch: bzr merge lp:~max-rabkin/ibid/perm-check-725240
Reviewer Review Type Date Requested Status
Jonathan Hitchcock Approve
Stefano Rivera Approve
Review via email: mp+51383@code.launchpad.net

Commit message

Check granted/revoked permission against list of all permissions (and make retrieving permissions list take linear time)

To post a comment you must log in.
1017. By Max Rabkin

Check name, not permission

Revision history for this message
Stefano Rivera (stefanor) :
review: Approve
Revision history for this message
Jonathan Hitchcock (vhata) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'ibid/plugins/identity.py'
--- ibid/plugins/identity.py 2010-04-26 10:19:16 +0000
+++ ibid/plugins/identity.py 2011-02-27 16:07:18 +0000
@@ -582,6 +582,10 @@
582582
583 else:583 else:
584 if not permission:584 if not permission:
585 if name.lower() not in self.all_perms():
586 event.addresponse(u"I don't know about a permission "
587 u"called '%s'", name)
588 return
585 permission = Permission(name)589 permission = Permission(name)
586 account.permissions.append(permission)590 account.permissions.append(permission)
587591
@@ -629,18 +633,19 @@
629 permissions = sorted(u'%s%s' % (permission_values[perm.value], perm.name) for perm in account.permissions)633 permissions = sorted(u'%s%s' % (permission_values[perm.value], perm.name) for perm in account.permissions)
630 event.addresponse(u'Permissions: %s', human_join(permissions) or u'none')634 event.addresponse(u'Permissions: %s', human_join(permissions) or u'none')
631635
636 def all_perms(self):
637 permissions = set()
638 for processor in ibid.processors:
639 if hasattr(processor, 'permission'):
640 permissions.add(processor.permission)
641 if hasattr(processor, 'permissions'):
642 for permission in processor.permissions:
643 permissions.add(permission)
644 return permissions
645
632 @match(r'^list\s+permissions$')646 @match(r'^list\s+permissions$')
633 def list_permissions(self, event):647 def list_permissions(self, event):
634 permissions = []648 event.addresponse(u'Permissions: %s', human_join(sorted(self.all_perms())) or u'none')
635 for processor in ibid.processors:
636 if hasattr(processor, 'permission') and getattr(processor, 'permission') not in permissions:
637 permissions.append(getattr(processor, 'permission'))
638 if hasattr(processor, 'permissions'):
639 for permission in getattr(processor, 'permissions'):
640 if permission not in permissions:
641 permissions.append(permission)
642
643 event.addresponse(u'Permissions: %s', human_join(sorted(permissions)) or u'none')
644649
645class Auth(Processor):650class Auth(Processor):
646 usage = u'auth <credential>'651 usage = u'auth <credential>'

Subscribers

People subscribed via source and target branches