add authentication plugin hooks
This commit is contained in:
		| @@ -132,17 +132,38 @@ else { | ||||
| 	} | ||||
| 	if((x($_POST,'auth-params')) && $_POST['auth-params'] === 'login') { | ||||
|  | ||||
| 		// process login request | ||||
|  | ||||
| 		$r = q("SELECT * FROM `user`  | ||||
| 			WHERE ( `email` = '%s' OR `nickname` = '%s' ) AND `password` = '%s' AND `blocked` = 0 AND `verified` = 1 LIMIT 1", | ||||
| 			dbesc(trim($_POST['openid_url'])), | ||||
| 			dbesc(trim($_POST['openid_url'])), | ||||
| 			dbesc($encrypted)); | ||||
| 		if(($r === false) || (! count($r))) { | ||||
| 			notice( t('Login failed.') . EOL ); | ||||
| 			goaway($a->get_baseurl()); | ||||
|   		} | ||||
| 		$addon_auth = array( | ||||
| 			'name' => trim($_POST['openid_url']),  | ||||
| 			'password' => trim($_POST['password']), | ||||
| 			'authenticated' => 0 | ||||
| 		); | ||||
|  | ||||
| 		/** | ||||
| 		 * | ||||
| 		 * A plugin indicates successful login by setting 'authenticated' to non-zero value | ||||
| 		 * Plugins should never set 'authenticated' except to indicate success - as hooks may be chained | ||||
| 		 * and later plugins should not interfere with an earlier one that succeeded. | ||||
| 		 * | ||||
| 		 */ | ||||
|  | ||||
| 		call_hooks('authenticate', $addon_auth); | ||||
|  | ||||
| 		if(! $addon_auth['authenticated']) { | ||||
| 			// process login request | ||||
|  | ||||
| 			$r = q("SELECT * FROM `user` WHERE ( `email` = '%s' OR `nickname` = '%s' )  | ||||
| 				AND `password` = '%s' AND `blocked` = 0 AND `verified` = 1 LIMIT 1", | ||||
| 				dbesc(trim($_POST['openid_url'])), | ||||
| 				dbesc(trim($_POST['openid_url'])), | ||||
| 				dbesc($encrypted) | ||||
| 			); | ||||
| 			if(($r === false) || (! count($r))) { | ||||
| 				notice( t('Login failed.') . EOL ); | ||||
| 				goaway($a->get_baseurl()); | ||||
|   			} | ||||
| 		} | ||||
|  | ||||
| 		$_SESSION['uid'] = $r[0]['uid']; | ||||
| 		$_SESSION['theme'] = $r[0]['theme']; | ||||
| 		$_SESSION['authenticated'] = 1; | ||||
| @@ -167,6 +188,8 @@ else { | ||||
| 			intval($_SESSION['uid']) | ||||
| 		); | ||||
|  | ||||
| 		call_hooks('logged_in', $a->user); | ||||
|  | ||||
| 		header('X-Account-Management-Status: active; name="' . $a->user['username'] . '"; id="' . $a->user['nickname'] .'"'); | ||||
| 		if(($a->module !== 'home') && isset($_SESSION['return_url'])) | ||||
| 			goaway($a->get_baseurl() . '/' . $_SESSION['return_url']); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user