aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/access.php
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-10-15 22:48:01 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-10-15 22:48:01 +0000
commit721763663962364485e5a9958854a6311f32298b (patch)
treee37f278fb0698d4be6bf78fca9bbe506d3a07772 /engine/lib/access.php
parent35ecb0f617d5a24eb7ed3e767cf323ef959a188f (diff)
downloadelgg-721763663962364485e5a9958854a6311f32298b.tar.gz
elgg-721763663962364485e5a9958854a6311f32298b.tar.bz2
Merged admin access override hook with ignore access system override hook.
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
Diffstat (limited to 'engine/lib/access.php')
-rw-r--r--engine/lib/access.php30
1 files changed, 28 insertions, 2 deletions
diff --git a/engine/lib/access.php b/engine/lib/access.php
index 0942c2e61..5bc14fe46 100644
--- a/engine/lib/access.php
+++ b/engine/lib/access.php
@@ -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