]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Merged admin access override hook with ignore access system override hook.
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Thu, 15 Oct 2009 22:48:01 +0000 (22:48 +0000)
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Thu, 15 Oct 2009 22:48:01 +0000 (22:48 +0000)
get_sql_access_prefix() now correctly uses elgg_check_access_overrides() instead of elgg_get_ignore_access().

git-svn-id: http://code.elgg.org/elgg/trunk@3552 36083f99-b078-4883-b0ff-0f9b5a30f544

engine/lib/access.php
engine/lib/admin.php

index 0942c2e61803de453bb54b52b61cefc281b1b878..5bc14fe46c8b4e307af51d1d3d258e7ee974742f 100644 (file)
@@ -272,7 +272,7 @@ function get_access_sql_suffix($table_prefix = "", $owner = null) {
                $owner = -1;
        }
 
-       $ignore_access = elgg_get_ignore_access($owner);
+       $ignore_access = elgg_check_access_overrides($owner);
        $access = get_access_list($owner);
 
        if ($ignore_access) {
@@ -836,5 +836,31 @@ function access_init() {
        $init_finished = true;
 }
 
+/**
+ * Override permissions system
+ *
+ * @return true|null
+ */
+function elgg_override_permissions_hook($hook, $type, $returnval, $params) {
+       $user_guid = get_loggedin_userid();
+
+       // check for admin
+       if ($user_guid && elgg_is_admin_user($user_guid)) {
+               return true;
+       }
+
+       // check access overrides
+       if ((elgg_check_access_overrides($user_guid))) {
+               return true;
+       }
+
+       // consult other hooks
+       return NULL;
+}
+
 // This function will let us know when 'init' has finished
-register_elgg_event_handler('init', 'system', 'access_init', 9999);
\ No newline at end of file
+register_elgg_event_handler('init', 'system', 'access_init', 9999);
+
+// For overrided permissions
+register_plugin_hook('permissions_check', 'all', 'elgg_override_permissions_hook');
+register_plugin_hook('container_permissions_check', 'all', 'elgg_override_permissions_hook');
\ No newline at end of file
index 1ba971347bc385e085b44309e9ff3ccdbcb84516..c680f0a7f2c66d3d81a520c754536f5c161ce0c6 100644 (file)
@@ -104,21 +104,6 @@ function admin_settings_page_handler($page) {
        include($path);
 }
 
-
-/**
- * Admin permissions system
- *
- * @return true|null True if the current user is an admin.
- */
-function admin_permissions($hook, $type, $returnval, $params) {
-       if (elgg_check_access_overrides()) {
-               return true;
-       }
-
-       // consult other hooks
-       return NULL;
-}
-
 /**
  * Write a persistent message to the administrator's notification window.
  *
@@ -165,7 +150,3 @@ function clear_admin_message($guid) {
 /// Register init functions
 register_elgg_event_handler('init', 'system', 'admin_init');
 register_elgg_event_handler('pagesetup', 'system', 'admin_pagesetup');
-
-// Register a plugin hook for permissions
-register_plugin_hook('permissions_check', 'all', 'admin_permissions');
-register_plugin_hook('container_permissions_check', 'all', 'admin_permissions');
\ No newline at end of file