summaryrefslogtreecommitdiff
path: root/addons/document/nodes.py
diff options
context:
space:
mode:
authorP. Christeas <p_christ@hol.gr>2010-11-03 13:26:04 +0200
committerP. Christeas <p_christ@hol.gr>2010-11-03 13:26:04 +0200
commit5d6eb5dea1d9a9c912b71ba14680f89d39b1cc38 (patch)
treedcae8086f71bed869ebf088c017ab6ba3687373e /addons/document/nodes.py
parent21847b3864632e5e2f99f33b9ea516fa93d00134 (diff)
document: more reasonable Unix permission bits
For display purposes only, but helps us understand group-write logic. bzr revid: p_christ@hol.gr-20101103112604-vi0wy1duifni2clv
Diffstat (limited to 'addons/document/nodes.py')
-rw-r--r--addons/document/nodes.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/addons/document/nodes.py b/addons/document/nodes.py
index a1ed691cc6f..f025b56698e 100644
--- a/addons/document/nodes.py
+++ b/addons/document/nodes.py
@@ -491,9 +491,15 @@ def _uid2unixperms(perms, has_owner):
""" Convert the uidperms and the owner flag to full unix bits
"""
res = 0
- res |= (perms & 0x07) << 6
- res |= (perms & 0x05) << 3
- if not has_owner:
+ if has_owner:
+ res |= (perms & 0x07) << 6
+ res |= (perms & 0x05) << 3
+ elif perms & 0x02:
+ res |= (perms & 0x07) << 6
+ res |= (perms & 0x07) << 3
+ else:
+ res |= (perms & 0x07) << 6
+ res |= (perms & 0x05) << 3
res |= 0x05
return res