diff options
| author | Sem <sembrestels@riseup.net> | 2014-01-22 04:05:47 +0100 | 
|---|---|---|
| committer | Sem <sembrestels@riseup.net> | 2014-01-22 04:05:47 +0100 | 
| commit | 68614b769f4ae4f28c3f395f47b68baba7c48c64 (patch) | |
| tree | 2c5a744a3859d27883f92b72aef9cf81f1a947d0 /mod/pages/start.php | |
| parent | 69e2d8c5d8732042c9319aef1fdea45a82b63e42 (diff) | |
| parent | c0295c275d6edbca6c6c8bb51dc199150d0d5fc3 (diff) | |
| download | elgg-68614b769f4ae4f28c3f395f47b68baba7c48c64.tar.gz elgg-68614b769f4ae4f28c3f395f47b68baba7c48c64.tar.bz2  | |
Merge branch 'release/1.8.1'
Diffstat (limited to 'mod/pages/start.php')
| -rw-r--r-- | mod/pages/start.php | 48 | 
1 files changed, 33 insertions, 15 deletions
diff --git a/mod/pages/start.php b/mod/pages/start.php index 6d974f122..f9c34cd85 100644 --- a/mod/pages/start.php +++ b/mod/pages/start.php @@ -28,9 +28,10 @@ function pages_init() {  	elgg_register_annotation_url_handler('page', 'pages_revision_url');  	// Register some actions -	$action_base = elgg_get_plugins_path() . 'pages/actions/pages'; -	elgg_register_action("pages/edit", "$action_base/edit.php"); -	elgg_register_action("pages/delete", "$action_base/delete.php"); +	$action_base = elgg_get_plugins_path() . 'pages/actions'; +	elgg_register_action("pages/edit", "$action_base/pages/edit.php"); +	elgg_register_action("pages/delete", "$action_base/pages/delete.php"); +	elgg_register_action("annotations/page/delete", "$action_base/annotations/page/delete.php");  	// Extend the main css view  	elgg_extend_view('css/elgg', 'pages/css'); @@ -80,8 +81,13 @@ function pages_init() {  	// entity menu  	elgg_register_plugin_hook_handler('register', 'menu:entity', 'pages_entity_menu_setup'); +	// hook into annotation menu +	elgg_register_plugin_hook_handler('register', 'menu:annotation', 'pages_annotation_menu_setup'); +  	// register ecml views to parse  	elgg_register_plugin_hook_handler('get_views', 'ecml', 'pages_ecml_views_hook'); +	 +	elgg_register_event_handler('upgrade', 'system', 'pages_run_upgrades');  }  /** @@ -281,25 +287,37 @@ function page_notify_message($hook, $entity_type, $returnvalue, $params) {  /**   * Extend permissions checking to extend can-edit for write users.   * - * @param unknown_type $hook - * @param unknown_type $entity_type - * @param unknown_type $returnvalue - * @param unknown_type $params + * @param string $hook + * @param string $entity_type + * @param bool   $returnvalue + * @param array  $params   */ -function pages_write_permission_check($hook, $entity_type, $returnvalue, $params) -{ +function pages_write_permission_check($hook, $entity_type, $returnvalue, $params) {  	if ($params['entity']->getSubtype() == 'page'  		|| $params['entity']->getSubtype() == 'page_top') {  		$write_permission = $params['entity']->write_access_id;  		$user = $params['user']; -		if (($write_permission) && ($user)) { -			// $list = get_write_access_array($user->guid); -			$list = get_access_array($user->guid); // get_access_list($user->guid); - -			if (($write_permission!=0) && (in_array($write_permission,$list))) { -				return true; +		if ($write_permission && $user) { +			switch ($write_permission) { +				case ACCESS_PRIVATE: +					// Elgg's default decision is what we want +					return; +					break; +				case ACCESS_FRIENDS: +					$owner = $params['entity']->getOwnerEntity(); +					if ($owner && $owner->isFriendsWith($user->guid)) { +						return true; +					} +					break; +				default: +					$list = get_access_array($user->guid); +					if (in_array($write_permission, $list)) { +						// user in the access collection +						return true; +					} +					break;  			}  		}  	}  | 
