Просмотр исходного кода

Fix privilege set for read only collection

igogold 10 лет назад
Родитель
Сommit
aa04aa04b7
1 измененных файлов с 7 добавлено и 5 удалено
  1. 7 5
      radicale/xmlutils.py

+ 7 - 5
radicale/xmlutils.py

@@ -45,7 +45,7 @@ except ImportError:
 import re
 import xml.etree.ElementTree as ET
 
-from . import client, config, ical
+from . import client, config, ical, rights
 
 
 NAMESPACES = {
@@ -300,11 +300,13 @@ def _propfind_response(path, item, props, user):
             element.append(tag)
         elif tag == _tag("D", "current-user-privilege-set"):
             privilege = ET.Element(_tag("D", "privilege"))
-            privilege.append(ET.Element(_tag("D", "all")))
+            if rights.authorized(user, item, "w"):
+                privilege.append(ET.Element(_tag("D", "all")))
             privilege.append(ET.Element(_tag("D", "read")))
-            privilege.append(ET.Element(_tag("D", "write")))
-            privilege.append(ET.Element(_tag("D", "write-properties")))
-            privilege.append(ET.Element(_tag("D", "write-content")))
+            if rights.authorized(user, item, "w"):
+                privilege.append(ET.Element(_tag("D", "write")))
+                privilege.append(ET.Element(_tag("D", "write-properties")))
+                privilege.append(ET.Element(_tag("D", "write-content")))
             element.append(privilege)
         elif tag == _tag("D", "supported-report-set"):
             for report_name in (