diff options
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/classes/ElggMetadata.php | 6 | ||||
| -rw-r--r-- | engine/classes/ElggPluginPackage.php | 4 | ||||
| -rw-r--r-- | engine/classes/ElggSite.php | 7 | ||||
| -rw-r--r-- | engine/lib/access.php | 10 | ||||
| -rw-r--r-- | engine/lib/elgglib.php | 2 | ||||
| -rw-r--r-- | engine/lib/entities.php | 13 | ||||
| -rw-r--r-- | engine/lib/filestore.php | 8 | ||||
| -rw-r--r-- | engine/lib/input.php | 72 | ||||
| -rw-r--r-- | engine/lib/plugins.php | 6 | ||||
| -rw-r--r-- | engine/lib/users.php | 12 | ||||
| -rw-r--r-- | engine/start.php | 3 | 
11 files changed, 109 insertions, 34 deletions
diff --git a/engine/classes/ElggMetadata.php b/engine/classes/ElggMetadata.php index ed3f8614f..32e7b32f1 100644 --- a/engine/classes/ElggMetadata.php +++ b/engine/classes/ElggMetadata.php @@ -45,11 +45,13 @@ class ElggMetadata extends ElggExtender {  	/**  	 * Determines whether or not the user can edit this piece of metadata  	 * +	 * @param int $user_guid The GUID of the user (defaults to currently logged in user) +	 *  	 * @return true|false Depending on permissions  	 */ -	function canEdit() { +	function canEdit($user_guid = 0) {  		if ($entity = get_entity($this->get('entity_guid'))) { -			return $entity->canEditMetadata($this); +			return $entity->canEditMetadata($this, $user_guid);  		}  		return false;  	} diff --git a/engine/classes/ElggPluginPackage.php b/engine/classes/ElggPluginPackage.php index 145f71fcd..d240af477 100644 --- a/engine/classes/ElggPluginPackage.php +++ b/engine/classes/ElggPluginPackage.php @@ -33,7 +33,9 @@ class ElggPluginPackage {  	 */  	private $textFiles = array(  		'README.txt', 'CHANGES.txt',  -		'INSTALL.txt', 'COPYRIGHT.txt', 'LICENSE.txt' +		'INSTALL.txt', 'COPYRIGHT.txt', 'LICENSE.txt', + +		'README', 'README.md', 'README.markdown'  	);  	/** diff --git a/engine/classes/ElggSite.php b/engine/classes/ElggSite.php index 8708800cf..16b80b9d3 100644 --- a/engine/classes/ElggSite.php +++ b/engine/classes/ElggSite.php @@ -190,18 +190,19 @@ class ElggSite extends ElggEntity {  	 * @note You cannot disable the current site.  	 *  	 * @param string $reason Optional reason for disabling +	 * @param bool   $recursive Recursively disable all contained entities?  	 *  	 * @return bool  	 * @throws SecurityException  	 */ -	public function disable($reason = "") { +	public function disable($reason = "", $recursive = true) {  		global $CONFIG;  		if ($CONFIG->site->getGUID() == $this->guid) {  			throw new SecurityException('SecurityException:deletedisablecurrentsite');  		} -		return parent::disable($reason); +		return parent::disable($reason, $recursive);  	}  	/** @@ -225,7 +226,7 @@ class ElggSite extends ElggEntity {  				'offset' => $offset,  			);  		} -		 +  		$defaults = array(  			'relationship' => 'member_of_site',  			'relationship_guid' => $this->getGUID(), diff --git a/engine/lib/access.php b/engine/lib/access.php index ae64f832a..002413baa 100644 --- a/engine/lib/access.php +++ b/engine/lib/access.php @@ -981,17 +981,17 @@ function access_init() {   */  function elgg_override_permissions($hook, $type, $value, $params) {  	$user = elgg_extract('user', $params); -	if (!$user) { -		$user = elgg_get_logged_in_user_entity(); +	if ($user) { +		$user_guid = $user->getGUID(); +	} else { +		$user_guid = elgg_get_logged_in_user_guid();  	} -	// don't do this so ignore access still works. +	// don't do this so ignore access still works with no one logged in  //	if (!$user instanceof ElggUser) {  //		return false;  //	} -	$user_guid = $user->guid; -  	// check for admin  	if ($user_guid && elgg_is_admin_user($user_guid)) {  		return true; diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index 1469067ca..66268cc96 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -2042,9 +2042,11 @@ function elgg_init() {  	elgg_register_page_handler('ajax', 'elgg_ajax_page_handler');  	elgg_register_js('elgg.autocomplete', 'js/lib/autocomplete.js'); +	elgg_register_js('jquery.ui.autocomplete.html', 'vendors/jquery/jquery.ui.autocomplete.html.js');  	elgg_register_js('elgg.userpicker', 'js/lib/userpicker.js');  	elgg_register_js('elgg.friendspicker', 'js/lib/friends_picker.js');  	elgg_register_js('jquery.easing', 'vendors/jquery/jquery.easing.1.3.packed.js'); +	elgg_register_js('elgg.avatar_cropper', 'js/lib/avatar_cropper.js');  	elgg_register_js('jquery.imgareaselect', 'vendors/jquery/jquery.imgareaselect-0.9.8/scripts/jquery.imgareaselect.min.js');  	elgg_register_css('jquery.imgareaselect', 'vendors/jquery/jquery.imgareaselect-0.9.8/css/imgareaselect-deprecated.css'); diff --git a/engine/lib/entities.php b/engine/lib/entities.php index f1352ba8d..fcd4544bf 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -530,12 +530,12 @@ $container_guid = 0) {  		$container_guid = $owner_guid;  	} -	$user = elgg_get_logged_in_user_entity(); -	if (!can_write_to_container($user->guid, $owner_guid, $type, $subtype)) { +	$user_guid = elgg_get_logged_in_user_guid(); +	if (!can_write_to_container($user_guid, $owner_guid, $type, $subtype)) {  		return false;  	}  	if ($owner_guid != $container_guid) { -		if (!can_write_to_container($user->guid, $container_guid, $type, $subtype)) { +		if (!can_write_to_container($user_guid, $container_guid, $type, $subtype)) {  			return false;  		}  	} @@ -1837,7 +1837,12 @@ function can_edit_entity_metadata($entity_guid, $user_guid = 0, $metadata = null  			$return = can_edit_entity($entity_guid, $user_guid);  		} -		$user = get_entity($user_guid); +		if ($user_guid) { +			$user = get_entity($user_guid); +		} else { +			$user = elgg_get_logged_in_user_entity(); +		} +  		$params = array('entity' => $entity, 'user' => $user, 'metadata' => $metadata);  		$return = elgg_trigger_plugin_hook('permissions_check:metadata', $entity->type, $params, $return);  		return $return; diff --git a/engine/lib/filestore.php b/engine/lib/filestore.php index 70b8bfb4c..a13d8aa27 100644 --- a/engine/lib/filestore.php +++ b/engine/lib/filestore.php @@ -474,7 +474,7 @@ function filestore_run_once() {  /**   * Initialise the file modules. - * Listens to system boot and registers any appropriate file types and classes + * Listens to system init and configures the default filestore   *   * @return void   * @access private @@ -483,8 +483,10 @@ function filestore_init() {  	global $CONFIG;  	// Now register a default filestore -	set_default_filestore(new ElggDiskFilestore($CONFIG->dataroot)); - +	if (isset($CONFIG->dataroot)) { +		set_default_filestore(new ElggDiskFilestore($CONFIG->dataroot)); +	} +	  	// Now run this stuff, but only once  	run_function_once("filestore_run_once");  } diff --git a/engine/lib/input.php b/engine/lib/input.php index 5c1a6299c..4900817a5 100644 --- a/engine/lib/input.php +++ b/engine/lib/input.php @@ -289,13 +289,35 @@ function input_livesearch_page_handler($page) {  				if ($entities = get_data($query)) {  					foreach ($entities as $entity) { +						$entity = get_entity($entity->guid); +						if (!$entity) { +							continue; +						} + +						if (in_array('groups', $match_on)) { +							$value = $entity->guid; +						} else { +							$value = $entity->username; +						} + +						$output = elgg_view_list_item($entity, array( +							'hover' => false, +							'class' => 'elgg-autocomplete-item', +						)); + +						$icon = elgg_view_entity_icon($entity, 'tiny', array( +							'hover' => false, +						)); +  						$result = array(  							'type' => 'user',  							'name' => $entity->name,  							'desc' => $entity->username, -							'icon' => '<img class="elgg-livesearch-icon" src="' . -								get_entity($entity->guid)->getIconURL('tiny') . '" />', -							'guid' => $entity->guid +							'guid' => $entity->guid, +							'label' => $output, +							'value' => $value, +							'icon' => $icon, +							'url' => $entity->getURL(),  						);  						$results[$entity->name . rand(1, 100)] = $result;  					} @@ -316,13 +338,29 @@ function input_livesearch_page_handler($page) {  				";  				if ($entities = get_data($query)) {  					foreach ($entities as $entity) { +						$entity = get_entity($entity->guid); +						if (!$entity) { +							continue; +						} + +						$output = elgg_view_list_item($entity, array( +							'hover' => false, +							'class' => 'elgg-autocomplete-item', +						)); + +						$icon = elgg_view_entity_icon($entity, 'tiny', array( +							'hover' => false, +						)); +  						$result = array(  							'type' => 'group',  							'name' => $entity->name,  							'desc' => strip_tags($entity->description), -							'icon' => '<img class="elgg-livesearch-icon" src="' -								. get_entity($entity->guid)->getIconURL('tiny') . '" />', -							'guid' => $entity->guid +							'guid' => $entity->guid, +							'label' => $output, +							'value' => $entity->guid, +							'icon' => $icon, +							'url' => $entity->getURL(),  						);  						$results[$entity->name . rand(1, 100)] = $result; @@ -347,13 +385,29 @@ function input_livesearch_page_handler($page) {  				if ($entities = get_data($query)) {  					foreach ($entities as $entity) { +						$entity = get_entity($entity->guid); +						if (!$entity) { +							continue; +						} + +						$output = elgg_view_list_item($entity, array( +							'hover' => false, +							'class' => 'elgg-autocomplete-item', +						)); + +						$icon = elgg_view_entity_icon($entity, 'tiny', array( +							'hover' => false, +						)); +  						$result = array(  							'type' => 'user',  							'name' => $entity->name,  							'desc' => $entity->username, -							'icon' => '<img class="elgg-livesearch-icon" src="' -								. get_entity($entity->guid)->getIconURL('tiny') . '" />', -							'guid' => $entity->guid +							'guid' => $entity->guid, +							'label' => $output, +							'value' => $entity->username, +							'icon' => $icon, +							'url' => $entity->getURL(),  						);  						$results[$entity->name . rand(1, 100)] = $result;  					} diff --git a/engine/lib/plugins.php b/engine/lib/plugins.php index a9e8b21bc..86070a2aa 100644 --- a/engine/lib/plugins.php +++ b/engine/lib/plugins.php @@ -577,7 +577,7 @@ function elgg_get_plugins_provides($type = null, $name = null) {  				foreach ($plugin_provides as $provided) {  					$provides[$provided['type']][$provided['name']] = array(  						'version' => $provided['version'], -						'provided_by' => $plugin_id +						'provided_by' => $plugin->getID()  					);  				}  			} @@ -1080,8 +1080,8 @@ function plugins_test($hook, $type, $value, $params) {  }  /** - * Initialise the file modules. - * Listens to system boot and registers any appropriate file types and classes + * Initialize the plugin system + * Listens to system init and registers actions   *   * @return void   * @access private diff --git a/engine/lib/users.php b/engine/lib/users.php index 55ebddd3a..843b897e9 100644 --- a/engine/lib/users.php +++ b/engine/lib/users.php @@ -742,7 +742,9 @@ function execute_new_password_request($user_guid, $conf_code) {  			if (force_user_password_reset($user_guid, $password)) {  				remove_private_setting($user_guid, 'passwd_conf_code'); - +				// clean the logins failures +				reset_login_failure_count($user_guid); +				  				$email = elgg_echo('email:resetpassword:body', array($user->name, $password));  				return notify_user($user->guid, $CONFIG->site->guid, @@ -1139,10 +1141,13 @@ function elgg_user_account_page_handler($page_elements, $handler) {   * dropdown login link.   *   * @return void - * @todo finish   * @access private   */  function elgg_user_login_page_handler() { +	if (elgg_is_logged_in()) { +		forward(); +	} +  	$login_box = elgg_view('core/account/login_box');  	$content = elgg_view_layout('one_column', array('content' => $login_box));  	echo elgg_view_page(elgg_echo('login'), $content); @@ -1361,11 +1366,10 @@ function elgg_profile_fields_setup() {  		'twitter' => 'text'  	); -	$loaded_default = array(); +	$loaded_defaults = array();  	if ($fieldlist = elgg_get_config('profile_custom_fields')) {  		if (!empty($fieldlist)) {  			$fieldlistarray = explode(',', $fieldlist); -			$loaded_defaults = array();  			foreach ($fieldlistarray as $listitem) {  				if ($translation = elgg_get_config("admin_defined_profile_{$listitem}")) {  					$type = elgg_get_config("admin_defined_profile_type_{$listitem}"); diff --git a/engine/start.php b/engine/start.php index 132c060b4..fc3aa004e 100644 --- a/engine/start.php +++ b/engine/start.php @@ -114,6 +114,9 @@ foreach ($lib_files as $file) {  	}  } +// connect to db +setup_db_connections(); +  // confirm that the installation completed successfully  verify_installation();  | 
