aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Senko <jakubsenko@gmail.com>2016-10-17 13:15:57 +0200
committerJakub Senko <jakubsenko@gmail.com>2016-11-13 18:19:21 +0100
commitdf0388ccc5b24cfb67078dd2fa8cb2fc4f607dac (patch)
treec9715e802893dec981ddb0e20482912344c1897a
parent1dd0ceabf6e3cdc49ea6a2abe3ad8fcece4cca31 (diff)
downloadforums-df0388ccc5b24cfb67078dd2fa8cb2fc4f607dac.tar
forums-df0388ccc5b24cfb67078dd2fa8cb2fc4f607dac.tar.gz
forums-df0388ccc5b24cfb67078dd2fa8cb2fc4f607dac.tar.bz2
forums-df0388ccc5b24cfb67078dd2fa8cb2fc4f607dac.tar.xz
forums-df0388ccc5b24cfb67078dd2fa8cb2fc4f607dac.zip
[ticket/14825] Add core.auth_oauth_(login/link)_after
PHPBB3-14825
-rw-r--r--phpBB/config/auth.yml1
-rw-r--r--phpBB/phpbb/auth/provider/oauth/oauth.php35
-rw-r--r--tests/functions/user_delete_test.php1
3 files changed, 36 insertions, 1 deletions
diff --git a/phpBB/config/auth.yml b/phpBB/config/auth.yml
index 88a90ca2d6..ef06080d38 100644
--- a/phpBB/config/auth.yml
+++ b/phpBB/config/auth.yml
@@ -62,6 +62,7 @@ services:
- @auth.provider.oauth.service_collection
- %tables.users%
- @service_container
+ - @dispatcher
- %core.root_path%
- %core.php_ext%
tags:
diff --git a/phpBB/phpbb/auth/provider/oauth/oauth.php b/phpBB/phpbb/auth/provider/oauth/oauth.php
index 9f6345fbba..bd2a414033 100644
--- a/phpBB/phpbb/auth/provider/oauth/oauth.php
+++ b/phpBB/phpbb/auth/provider/oauth/oauth.php
@@ -98,6 +98,13 @@ class oauth extends \phpbb\auth\provider\base
protected $phpbb_container;
/**
+ * phpBB event dispatcher
+ *
+ * @var \phpbb\event\dispatcher_interface
+ */
+ protected $dispatcher;
+
+ /**
* phpBB root path
*
* @var string
@@ -124,10 +131,11 @@ class oauth extends \phpbb\auth\provider\base
* @param \phpbb\di\service_collection $service_providers Contains \phpbb\auth\provider\oauth\service_interface
* @param string $users_table
* @param \Symfony\Component\DependencyInjection\ContainerInterface $phpbb_container DI container
+ * @param \phpbb\event\dispatcher_interface $dispatcher phpBB event dispatcher
* @param string $phpbb_root_path
* @param string $php_ext
*/
- public function __construct(\phpbb\db\driver\driver_interface $db, \phpbb\config\config $config, \phpbb\passwords\manager $passwords_manager, \phpbb\request\request_interface $request, \phpbb\user $user, $auth_provider_oauth_token_storage_table, $auth_provider_oauth_token_account_assoc, \phpbb\di\service_collection $service_providers, $users_table, \Symfony\Component\DependencyInjection\ContainerInterface $phpbb_container, $phpbb_root_path, $php_ext)
+ public function __construct(\phpbb\db\driver\driver_interface $db, \phpbb\config\config $config, \phpbb\passwords\manager $passwords_manager, \phpbb\request\request_interface $request, \phpbb\user $user, $auth_provider_oauth_token_storage_table, $auth_provider_oauth_token_account_assoc, \phpbb\di\service_collection $service_providers, $users_table, \Symfony\Component\DependencyInjection\ContainerInterface $phpbb_container, \phpbb\event\dispatcher_interface $dispatcher, $phpbb_root_path, $php_ext)
{
$this->db = $db;
$this->config = $config;
@@ -139,6 +147,7 @@ class oauth extends \phpbb\auth\provider\base
$this->service_providers = $service_providers;
$this->users_table = $users_table;
$this->phpbb_container = $phpbb_container;
+ $this->dispatcher = $dispatcher;
$this->phpbb_root_path = $phpbb_root_path;
$this->php_ext = $php_ext;
}
@@ -238,6 +247,18 @@ class oauth extends \phpbb\auth\provider\base
// Update token storage to store the user_id
$storage->set_user_id($row['user_id']);
+ /**
+ * Event is triggered after user is successfuly logged in via OAuth.
+ *
+ * @event core.auth_oauth_login_after
+ * @var array row User row
+ * @since 3.1.11-RC1
+ */
+ $vars = array(
+ 'row',
+ );
+ extract($this->dispatcher->trigger_event('core.auth_oauth_login_after', compact($vars)));
+
// The user is now authenticated and can be logged in
return array(
'status' => LOGIN_SUCCESS,
@@ -542,6 +563,18 @@ class oauth extends \phpbb\auth\provider\base
$sql = 'INSERT INTO ' . $this->auth_provider_oauth_token_account_assoc . '
' . $this->db->sql_build_array('INSERT', $data);
$this->db->sql_query($sql);
+
+ /**
+ * Event is triggered after user links account.
+ *
+ * @event core.auth_oauth_link_after
+ * @var array data User row
+ * @since 3.1.11-RC1
+ */
+ $vars = array(
+ 'data',
+ );
+ extract($this->dispatcher->trigger_event('core.auth_oauth_link_after', compact($vars)));
}
/**
diff --git a/tests/functions/user_delete_test.php b/tests/functions/user_delete_test.php
index db52dcded7..c224323273 100644
--- a/tests/functions/user_delete_test.php
+++ b/tests/functions/user_delete_test.php
@@ -71,6 +71,7 @@ class phpbb_functions_user_delete_test extends phpbb_database_test_case
$oauth_provider_collection,
'phpbb_users',
$phpbb_container,
+ $phpbb_dispatcher,
$this->phpbb_root_path,
$this->php_ext
);