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

Merge pull request #140 from mike-perdide/regex_file_coherence

Regex file coherence
Guillaume Ayoub 12 лет назад
Родитель
Сommit
4b8308a3ec
1 измененных файлов с 9 добавлено и 8 удалено
  1. 9 8
      radicale/rights/regex.py

+ 9 - 8
radicale/rights/regex.py

@@ -57,11 +57,11 @@ DEFINED_RIGHTS = {
     "owner_only": "[rw]\nuser:.*\ncollection:^%(login)s/.+$\npermission:rw"}
     "owner_only": "[rw]\nuser:.*\ncollection:^%(login)s/.+$\npermission:rw"}
 
 
 
 
-def _read_from_sections(user, collection, permission):
+def _read_from_sections(user, collection_url, permission):
     """Get regex sections."""
     """Get regex sections."""
     filename = os.path.expanduser(config.get("rights", "file"))
     filename = os.path.expanduser(config.get("rights", "file"))
     rights_type = config.get("rights", "type").lower()
     rights_type = config.get("rights", "type").lower()
-    regex = ConfigParser({"login": user, "path": collection})
+    regex = ConfigParser({"login": user, "path": collection_url})
     if rights_type in DEFINED_RIGHTS:
     if rights_type in DEFINED_RIGHTS:
         log.LOGGER.debug("Rights type '%s'" % rights_type)
         log.LOGGER.debug("Rights type '%s'" % rights_type)
         regex.readfp(StringIO(DEFINED_RIGHTS[rights_type]))
         regex.readfp(StringIO(DEFINED_RIGHTS[rights_type]))
@@ -79,27 +79,28 @@ def _read_from_sections(user, collection, permission):
         re_collection = regex.get(section, "collection")
         re_collection = regex.get(section, "collection")
         log.LOGGER.debug(
         log.LOGGER.debug(
             "Test if '%s:%s' matches against '%s:%s' from section '%s'" % (
             "Test if '%s:%s' matches against '%s:%s' from section '%s'" % (
-                user, collection, re_user, re_collection, section))
+                user, collection_url, re_user, re_collection, section))
         user_match = re.match(re_user, user)
         user_match = re.match(re_user, user)
         if user_match:
         if user_match:
             re_collection = re_collection.format(*user_match.groups())
             re_collection = re_collection.format(*user_match.groups())
-            if re.match(re_collection, collection):
+            if re.match(re_collection, collection_url):
                 log.LOGGER.debug("Section '%s' matches" % section)
                 log.LOGGER.debug("Section '%s' matches" % section)
                 if permission in regex.get(section, "permission"):
                 if permission in regex.get(section, "permission"):
                     return True
                     return True
-        log.LOGGER.debug("Section '%s' does not match" % section)
+            else:
+                log.LOGGER.debug("Section '%s' does not match" % section)
     return False
     return False
 
 
 
 
-def authorized(user, collection, right):
+def authorized(user, collection, permission):
     """Check if the user is allowed to read or write the collection.
     """Check if the user is allowed to read or write the collection.
 
 
        If the user is empty it checks for anonymous rights
        If the user is empty it checks for anonymous rights
     """
     """
     collection_url = collection.url.rstrip("/") or "/"
     collection_url = collection.url.rstrip("/") or "/"
     if collection_url in (".well-known/carddav", ".well-known/caldav"):
     if collection_url in (".well-known/carddav", ".well-known/caldav"):
-        return right == "r"
+        return permission == "r"
     rights_type = config.get("rights", "type").lower()
     rights_type = config.get("rights", "type").lower()
     return (
     return (
         rights_type == "none" or
         rights_type == "none" or
-        _read_from_sections(user or "", collection_url, right))
+        _read_from_sections(user or "", collection_url, permission))