s3:lib/util_sid_passdb make use of pdb_is_responsible_for_* functions
authorChristian Ambach <ambi@samba.org>
Tue, 18 Jun 2013 08:39:10 +0000 (10:39 +0200)
committerMichael Adam <obnox@samba.org>
Fri, 21 Jun 2013 08:44:20 +0000 (10:44 +0200)
ask passdb to determine if sid/object should be handled by passdb or not

Pair-Programmed-With: Michael Adam <obnox@samba.org>

Signed-off-by: Christian Ambach <ambi@samba.org>
Signed-off-by: Michael Adam <obnox@samba.org>
source3/lib/util_sid_passdb.c

index 33fb5420d6394bb3535fa8462180b918f8438fb5..0138c7d5f367d002622ee6d053ca5c2fc08b6f51 100644 (file)
@@ -21,6 +21,7 @@
 #include "includes.h"
 #include "lib/util_sid_passdb.h"
 #include "passdb/machine_sid.h"
+#include "passdb.h"
 
 /**
  * check whether this is an object-sid that should
  */
 bool sid_check_object_is_for_passdb(const struct dom_sid *sid)
 {
-       if (sid_check_is_in_our_sam(sid)) {
+       if (sid_check_is_in_our_sam(sid) && pdb_is_responsible_for_our_sam()) {
                return true;
        }
 
-       if (sid_check_is_in_builtin(sid)) {
+       if (sid_check_is_in_builtin(sid) && pdb_is_responsible_for_builtin()) {
                return true;
        }
 
-       if (sid_check_is_in_wellknown_domain(sid)) {
+       if (sid_check_is_in_wellknown_domain(sid) &&
+           pdb_is_responsible_for_wellknown())
+       {
                return true;
        }
 
-       if (sid_check_is_in_unix_users(sid)) {
+       if (sid_check_is_in_unix_users(sid) &&
+           pdb_is_responsible_for_unix_users())
+       {
                return true;
        }
 
-       if (sid_check_is_in_unix_groups(sid)) {
+       if (sid_check_is_in_unix_groups(sid) &&
+           pdb_is_responsible_for_unix_groups())
+       {
                return true;
        }
 
@@ -56,43 +63,55 @@ bool sid_check_object_is_for_passdb(const struct dom_sid *sid)
  */
 bool sid_check_is_for_passdb(const struct dom_sid *sid)
 {
-       if (sid_check_is_our_sam(sid)) {
+       if (sid_check_is_our_sam(sid) && pdb_is_responsible_for_our_sam()) {
                return true;
        }
 
-       if (sid_check_is_in_our_sam(sid)) {
+       if (sid_check_is_in_our_sam(sid) && pdb_is_responsible_for_our_sam()) {
                return true;
        }
 
-       if (sid_check_is_builtin(sid)) {
+       if (sid_check_is_builtin(sid) && pdb_is_responsible_for_builtin()) {
                return true;
        }
 
-       if (sid_check_is_in_builtin(sid)) {
+       if (sid_check_is_in_builtin(sid) && pdb_is_responsible_for_builtin()) {
                return true;
        }
 
-       if (sid_check_is_wellknown_domain(sid, NULL)) {
+       if (sid_check_is_wellknown_domain(sid, NULL) &&
+           pdb_is_responsible_for_wellknown())
+       {
                return true;
        }
 
-       if (sid_check_is_in_wellknown_domain(sid)) {
+       if (sid_check_is_in_wellknown_domain(sid) &&
+           pdb_is_responsible_for_wellknown())
+       {
                return true;
        }
 
-       if (sid_check_is_unix_users(sid)) {
+       if (sid_check_is_unix_users(sid) &&
+           pdb_is_responsible_for_unix_users())
+       {
                return true;
        }
 
-       if (sid_check_is_in_unix_users(sid)) {
+       if (sid_check_is_in_unix_users(sid) &&
+           pdb_is_responsible_for_unix_users())
+       {
                return true;
        }
 
-       if (sid_check_is_unix_groups(sid)) {
+       if (sid_check_is_unix_groups(sid) &&
+           pdb_is_responsible_for_unix_groups())
+       {
                return true;
        }
 
-       if (sid_check_is_in_unix_groups(sid)) {
+       if (sid_check_is_in_unix_groups(sid) &&
+           pdb_is_responsible_for_unix_groups())
+       {
                return true;
        }