Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
Zope
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
Zope
Commits
2faaa5ec
Commit
2faaa5ec
authored
Apr 28, 1999
by
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed a bug in local roles that caused Rolemanagers to share local roles :(
parent
9374afaa
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
12 additions
and
9 deletions
+12
-9
lib/python/AccessControl/Role.py
lib/python/AccessControl/Role.py
+9
-7
lib/python/AccessControl/User.py
lib/python/AccessControl/User.py
+3
-2
No files found.
lib/python/AccessControl/Role.py
View file @
2faaa5ec
...
...
@@ -84,7 +84,7 @@
##############################################################################
"""Access control support"""
__version__
=
'$Revision: 1.2
6
$'
[
11
:
-
2
]
__version__
=
'$Revision: 1.2
7
$'
[
11
:
-
2
]
from
Globals
import
HTMLFile
,
MessageDialog
,
Dictionary
...
...
@@ -291,16 +291,17 @@ class RoleManager(ExtensionClass.Base):
# extra roles in a particular object, an entry for that user is made
# in the __ac_local_roles__ dict containing the extra roles.
__ac_local_roles__
=
{}
__ac_local_roles__
=
None
manage_listLocalRoles
=
HTMLFile
(
'listLocalRoles'
,
globals
())
manage_editLocalRoles
=
HTMLFile
(
'editLocalRoles'
,
globals
())
def
has_local_roles
(
self
):
return
len
(
self
.
__ac_local_roles__
)
dict
=
self
.
__ac_local_roles__
or
{}
return
len
(
dict
)
def
get_local_roles
(
self
):
dict
=
self
.
__ac_local_roles__
dict
=
self
.
__ac_local_roles__
or
{}
keys
=
dict
.
keys
()
keys
.
sort
()
info
=
[]
...
...
@@ -324,7 +325,8 @@ class RoleManager(ExtensionClass.Base):
return
keys
def
get_local_roles_for_userid
(
self
,
userid
):
return
self
.
__ac_local_roles__
.
get
(
userid
,
[])
dict
=
self
.
__ac_local_roles__
or
{}
return
dict
.
get
(
userid
,
[])
def
manage_setLocalRoles
(
self
,
userid
,
roles
,
REQUEST
=
None
):
"""Set local roles for a user."""
...
...
@@ -332,7 +334,7 @@ class RoleManager(ExtensionClass.Base):
raise
ValueError
,
'One or more roles must be given!'
if
not
self
.
validate_roles
(
roles
):
raise
ValueError
,
'Invalid role given.'
dict
=
self
.
__ac_local_roles__
dict
=
self
.
__ac_local_roles__
or
{}
dict
[
userid
]
=
roles
self
.
__ac_local_roles__
=
dict
if
REQUEST
is
not
None
:
...
...
@@ -341,7 +343,7 @@ class RoleManager(ExtensionClass.Base):
def
manage_delLocalRoles
(
self
,
userids
,
REQUEST
=
None
):
"""Remove all local roles for a user."""
dict
=
self
.
__ac_local_roles__
dict
=
self
.
__ac_local_roles__
or
{}
for
userid
in
userids
:
if
dict
.
has_key
(
userid
):
del
dict
[
userid
]
...
...
lib/python/AccessControl/User.py
View file @
2faaa5ec
...
...
@@ -84,7 +84,7 @@
##############################################################################
"""Access control package"""
__version__
=
'$Revision: 1.7
2
$'
[
11
:
-
2
]
__version__
=
'$Revision: 1.7
3
$'
[
11
:
-
2
]
import
Globals
,
App
.
Undo
,
socket
,
regex
from
Globals
import
HTMLFile
,
MessageDialog
,
Persistent
,
PersistentMapping
...
...
@@ -138,7 +138,8 @@ class BasicUser(Implicit):
local
=
{}
while
1
:
if
hasattr
(
object
,
'__ac_local_roles__'
):
for
r
in
object
.
__ac_local_roles__
.
get
(
name
,
[]):
dict
=
object
.
__ac_local_roles__
or
{}
for
r
in
dict
.
get
(
name
,
[]):
local
[
r
]
=
1
if
not
hasattr
(
object
,
'aq_parent'
):
break
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment