]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/dird/ua_acl.c
- Add index file to JobId field of File records for PostgreSQL.
[bacula/bacula] / bacula / src / dird / ua_acl.c
index 11a90536046b80bcdc84b6acd22273000acc4c31..cb184a0a88253506bc44f4be814e0bf602230afc 100644 (file)
@@ -41,14 +41,24 @@ bool acl_access_ok(UAContext *ua, int acl, char *item)
 
 bool acl_access_ok(UAContext *ua, int acl, char *item, int len)
 {
+
+   /* If no console resource => default console and all is permitted */
    if (!ua->cons) {
       Dmsg0(400, "Root cons access OK.\n");
       return true;                   /* No cons resource -> root console OK for everything */
    }
+
    alist *list = ua->cons->ACL_lists[acl];
    if (!list) {
-      return false;                  /* List empty, reject */
+      return false;                  /* List empty, reject everything */
    }
+
+   /* Special case *all* gives full access */
+   if (list->size() == 1 && strcasecmp("*all*", (char *)list->get(0)) == 0) {
+      return true;
+   }
+
+   /* Search list for item */
    for (int i=0; i<list->size(); i++) {
       if (strncasecmp(item, (char *)list->get(i), len) == 0) {
          Dmsg3(400, "Found %s in %d %s\n", item, acl, (char *)list->get(i));