Changeset 49505
- Timestamp:
- 10/10/06 18:14:20 (3 years ago)
- Files:
-
- CPS3/products/CPSUserFolder/trunk/CHANGES (modified) (1 diff)
- CPS3/products/CPSUserFolder/trunk/CPSUserFolder.py (modified) (3 diffs)
- CPS3/products/CPSUserFolder/trunk/tests/testCPSUserFolder.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
CPS3/products/CPSUserFolder/trunk/CHANGES
r49342 r49505 4 4 New features 5 5 ~~~~~~~~~~~~ 6 - 6 - #1704 (related to): added two new properties to make special groups 7 role:Authenticated and role:Anonymous optionaly behave as if they contain all 8 the members of the portal instead of being empty by default. 7 9 Bug fixes 8 10 ~~~~~~~~~ CPS3/products/CPSUserFolder/trunk/CPSUserFolder.py
r46327 r49505 109 109 {'id': 'roles_members_field', 'type': 'string', 'mode': 'w', 110 110 'label': "Roles directory: members field"}, 111 {'id': 'is_role_authenticated_empty', 'type': 'boolean', 'mode': 'w', 112 'label': "Consider role:Authenticated as an empty group"}, 113 {'id': 'is_role_anonymous_empty', 'type': 'boolean', 'mode': 'w', 114 'label': "Consider role:Anonymous as an empty group"}, 111 115 {'id': 'cache_timeout', 'type': 'int', 'mode': 'w', 112 116 'label': "Cache timeout"}, … … 121 125 groups_members_field = 'members' 122 126 roles_members_field = 'members' 127 is_role_authenticated_empty = True 128 is_role_anonymous_empty = True 123 129 cache_timeout = 300 124 130 … … 542 548 raise KeyError, groupname 543 549 544 group_members = group_entry.get(self.groups_members_field, 545 ()) 546 return Group(groupname, group_members) 550 group_members = group_entry.get(self.groups_members_field, ()) 551 547 552 else: 548 # Backward compatibility with UserFolderWithGroups for 549 # CPSSubscriptions.RecipientsRules (see ticket:890) 550 return Group(groupname, ()) 553 # Special groups must be group instance so that CPSSubscriptions 554 # work properly (cf ticket #890). This groups are considered 555 # empty by default to avoid spamming a uge quantity of members 556 # by error 557 558 emptyness = { 559 "role:Authenticated": self.is_role_authenticated_empty, 560 "role:Anonymous": self.is_role_anonymous_empty, 561 } 562 if emptyness.get(groupname, True): 563 group_members = () 564 else: 565 group_members = self.getUserNames() 566 567 568 return Group(groupname, group_members) 569 551 570 else: 552 571 raise ValueError, "The directory %s doesn't exist" % self.groups_dir CPS3/products/CPSUserFolder/trunk/tests/testCPSUserFolder.py
r48832 r49505 355 355 portal = self.portal 356 356 aclu = portal.aclu 357 mdir = portal.portal_directories.members 357 358 gdir = portal.portal_directories.groups 359 360 # Create some members 361 mdir.createEntry({'uid': 'mickey'}) 362 mdir.createEntry({'uid': 'pluto'}) 358 363 359 364 # Create a new group using the directory. … … 373 378 374 379 # Backward compatibility with UserFolderWithGroups 380 self.failUnless(aclu.is_role_authenticated_empty) 375 381 group = aclu.getGroupById('role:Authenticated') 376 382 self.assertEquals(group.getUsers(), ()) 383 384 # now make role:Authenticated as a special group containing everybody 385 aclu.is_role_authenticated_empty = False 386 group = aclu.getGroupById('role:Authenticated') 387 self.assertEquals(group.getUsers(), ['mickey', 'pluto']) 388 389 # same behavior for role:Anonymous 390 self.failUnless(aclu.is_role_anonymous_empty) 391 group = aclu.getGroupById('role:Anonymous') 392 self.assertEquals(group.getUsers(), ()) 393 394 # now make role:Anonymous as a special group containing everybody 395 aclu.is_role_anonymous_empty = False 396 group = aclu.getGroupById('role:Anonymous') 397 self.assertEquals(group.getUsers(), ['mickey', 'pluto']) 377 398 378 399 def test_group_API_security(self):
