aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/auth/provider/interface.php
diff options
context:
space:
mode:
authorNathan Guse <nathaniel.guse@gmail.com>2013-09-12 11:56:36 -0500
committerNathan Guse <nathaniel.guse@gmail.com>2013-09-12 11:56:36 -0500
commitd9fdf41ad8638df5ff565ad097982f13f004e5d0 (patch)
tree7b2c14d7b5db7482886180060e260db61ab9cf3c /phpBB/phpbb/auth/provider/interface.php
parent4c00c77739cc20db26d5f87bf26a9a953bc92d3a (diff)
parentf74a04c976c96864947bb91304abb3b92161f161 (diff)
downloadforums-d9fdf41ad8638df5ff565ad097982f13f004e5d0.tar
forums-d9fdf41ad8638df5ff565ad097982f13f004e5d0.tar.gz
forums-d9fdf41ad8638df5ff565ad097982f13f004e5d0.tar.bz2
forums-d9fdf41ad8638df5ff565ad097982f13f004e5d0.tar.xz
forums-d9fdf41ad8638df5ff565ad097982f13f004e5d0.zip
Merge branch 'develop' of github.com:phpbb/phpbb3 into ticket/11832
# By Joseph Warner (187) and others # Via Andreas Fischer (2) and others * 'develop' of github.com:phpbb/phpbb3: (189 commits) [ticket/11835] Fix ucp_auth_link adding in migration [prep-release-3.0.12] Remove changelog entry for ticket that was not resolved. [feature/oauth] Fix tabindex [feature/oauth] Fix bug on ucp_auth_link related to error display [feature/oauth] More small fixes [feature/oauth] More minor changes from review [feature/oauth] Fix small bug introduced by update in OAuth library [feature/oauth] Fix small issues on ucp pages [feature/oauth] Fix typo in OAuth logout method [feature/oauth] Make token storage service ignorant [feature/oauth] Update oauth::logout() to use clearAllTokens() [feature/oauth] Update storage implementation due to inteface change [feature/oauth] Update lusitanian/oauth to stable branch [feature/oauth] Update comment on oauth service exception [feature/oauth] Forgot to remove placeholder comment [feature/oauth] OAuth service exception [feature/oauth] A few more minor changes [feature/oauth] Changes due to code review [feature/oauth] Fix redirects [feature/oauth] Fix issues on ucp_login_link from review ...
Diffstat (limited to 'phpBB/phpbb/auth/provider/interface.php')
-rw-r--r--phpBB/phpbb/auth/provider/interface.php92
1 files changed, 92 insertions, 0 deletions
diff --git a/phpBB/phpbb/auth/provider/interface.php b/phpBB/phpbb/auth/provider/interface.php
index 47043bc107..eadd5f01d1 100644
--- a/phpBB/phpbb/auth/provider/interface.php
+++ b/phpBB/phpbb/auth/provider/interface.php
@@ -45,6 +45,11 @@ interface phpbb_auth_provider_interface
* 'error_msg' => string
* 'user_row' => array
* )
+ * A fourth key of the array may be present:
+ * 'redirect_data' This key is only used when 'status' is
+ * equal to LOGIN_SUCCESS_LINK_PROFILE and its value is an
+ * associative array that is turned into GET variables on
+ * the redirect url.
*/
public function login($username, $password);
@@ -80,10 +85,49 @@ interface phpbb_auth_provider_interface
* 'TEMPLATE_FILE' => string,
* 'TEMPLATE_VARS' => array(...),
* )
+ * An optional third element may be added to this
+ * array: 'BLOCK_VAR_NAME'. If this is present,
+ * then its value should be a string that is used
+ * to designate the name of the loop used in the
+ * ACP template file. When this is present, an
+ * additional key named 'BLOCK_VARS' is required.
+ * This must be an array containing at least one
+ * array of variables that will be assigned during
+ * the loop in the template. An example of this is
+ * presented below:
+ * array(
+ * 'BLOCK_VAR_NAME' => string,
+ * 'BLOCK_VARS' => array(
+ * 'KEY IS UNIMPORTANT' => array(...),
+ * ),
+ * 'TEMPLATE_FILE' => string,
+ * 'TEMPLATE_VARS' => array(...),
+ * )
*/
public function get_acp_template($new_config);
/**
+ * Returns an array of data necessary to build custom elements on the login
+ * form.
+ *
+ * @return array|null If this function is not implemented on an auth
+ * provider then it returns null. If it is implemented
+ * it will return an array of up to four elements of
+ * which only 'TEMPLATE_FILE'. If 'BLOCK_VAR_NAME' is
+ * present then 'BLOCK_VARS' must also be present in
+ * the array. The fourth element 'VARS' is also
+ * optional. The array, with all four elements present
+ * looks like the following:
+ * array(
+ * 'TEMPLATE_FILE' => string,
+ * 'BLOCK_VAR_NAME' => string,
+ * 'BLOCK_VARS' => array(...),
+ * 'VARS' => array(...),
+ * )
+ */
+ public function get_login_data();
+
+ /**
* Performs additional actions during logout.
*
* @param array $data An array corresponding to
@@ -102,4 +146,52 @@ interface phpbb_auth_provider_interface
* session should be closed, or null if not implemented.
*/
public function validate_session($user);
+
+ /**
+ * Checks to see if $login_link_data contains all information except for the
+ * user_id of an account needed to successfully link an external account to
+ * a forum account.
+ *
+ * @param array $link_data Any data needed to link a phpBB account to
+ * an external account.
+ * @return string|null Returns a string with a language constant if there
+ * is data missing or null if there is no error.
+ */
+ public function login_link_has_necessary_data($login_link_data);
+
+ /**
+ * Links an external account to a phpBB account.
+ *
+ * @param array $link_data Any data needed to link a phpBB account to
+ * an external account.
+ */
+ public function link_account(array $link_data);
+
+ /**
+ * Returns an array of data necessary to build the ucp_auth_link page
+ *
+ * @return array|null If this function is not implemented on an auth
+ * provider then it returns null. If it is implemented
+ * it will return an array of up to four elements of
+ * which only 'TEMPLATE_FILE'. If 'BLOCK_VAR_NAME' is
+ * present then 'BLOCK_VARS' must also be present in
+ * the array. The fourth element 'VARS' is also
+ * optional. The array, with all four elements present
+ * looks like the following:
+ * array(
+ * 'TEMPLATE_FILE' => string,
+ * 'BLOCK_VAR_NAME' => string,
+ * 'BLOCK_VARS' => array(...),
+ * 'VARS' => array(...),
+ * )
+ */
+ public function get_auth_link_data();
+
+ /**
+ * Unlinks an external account from a phpBB account.
+ *
+ * @param array $link_data Any data needed to unlink a phpBB account
+ * from a phpbb account.
+ */
+ public function unlink_account(array $link_data);
}