s4-dsdb: added dsdb_module_am_system()
[ira/wip.git] / source4 / dsdb / samdb / ldb_modules / util.c
index b4f81978d3a9100c525989cefe66354494e7fe9f..46252cb279989c96444beeb5649fd7b05e84bb66 100644 (file)
@@ -26,6 +26,7 @@
 #include "dsdb/samdb/ldb_modules/util.h"
 #include "dsdb/samdb/samdb.h"
 #include "util.h"
+#include "libcli/security/security.h"
 
 /*
   add a set of controls to a ldb_request structure based on a set of
@@ -629,3 +630,11 @@ int dsdb_module_set_integer(struct ldb_module *module, struct ldb_dn *dn,
        talloc_free(msg);
        return ret;
 }
+
+bool dsdb_module_am_system(struct ldb_module *module)
+{
+       struct ldb_context *ldb = ldb_module_get_ctx(module);
+       struct auth_session_info *session_info
+               = (struct auth_session_info *)ldb_get_opaque(ldb, "sessionInfo");
+       return security_session_user_level(session_info) == SECURITY_SYSTEM;
+}