projects
/
invirt/packages/python-afs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add showPermissions functionality.
[invirt/packages/python-afs.git]
/
afs
/
acl.py
diff --git
a/afs/acl.py
b/afs/acl.py
index
b5da255
..
d9a6df4
100644
(file)
--- a/
afs/acl.py
+++ b/
afs/acl.py
@@
-10,25
+10,27
@@
_canonical = {
"mail": "lik",
"none": "",
}
"mail": "lik",
"none": "",
}
-_char2bit = {
- 'r': READ,
- 'w': WRITE,
- 'i': INSERT,
- 'l': LOOKUP,
- 'd': DELETE,
- 'k': LOCK,
- 'a': ADMINISTER,
- 'A': USR0,
- 'B': USR1,
- 'C': USR2,
- 'D': USR3,
- 'E': USR4,
- 'F': USR5,
- 'G': USR6,
- 'H': USR7,
-}
-_bit2char = dict([(v,k) for k,v in _char2bit.items()])
+_charBitAssoc = [
+ ('r', READ),
+ ('w', WRITE),
+ ('i', INSERT),
+ ('l', LOOKUP),
+ ('d', DELETE),
+ ('k', LOCK),
+ ('a', ADMINISTER),
+ ('A', USR0),
+ ('B', USR1),
+ ('C', USR2),
+ ('D', USR3),
+ ('E', USR4),
+ ('F', USR5),
+ ('G', USR6),
+ ('H', USR7),
+]
+
+_char2bit = dict(_charBitAssoc)
+
def crights(s):
"""Canonicalizes string rights to bitmask"""
def crights(s):
"""Canonicalizes string rights to bitmask"""
@@
-51,6
+53,13
@@
class ACL(object):
pos, neg = _parseAcl(_acl.getAcl(dir))
return ACL(pos, neg)
pos, neg = _parseAcl(_acl.getAcl(dir))
return ACL(pos, neg)
+def showRights(r):
+ """Takes a bitmask and returns a rwlidka string"""
+ s = ""
+ for char,mask in _charBitAssoc:
+ if r & mask == mask: s += char
+ return s
+
def _parseRights(s):
"""Parses a rwlid... rights tring to bitmask"""
r = 0
def _parseRights(s):
"""Parses a rwlid... rights tring to bitmask"""
r = 0