Exemple #1
0
 /**
  * Performs the account linking for auth_link
  *
  * @param	array	$link_data		The same variable given to {@see \src\auth\provider\provider_interface::link_account}
  * @param	string	$service_name	The name of the service being used in
  *									linking.
  * @return	string|null	Returns a language constant (string) if an error is
  *						encountered, or null on success.
  */
 protected function link_account_auth_link(array $link_data, $service_name)
 {
     $storage = new \src\auth\provider\oauth\token_storage($this->db, $this->user, $this->auth_provider_oauth_token_storage_table);
     $query = 'i=ucp_auth_link&mode=auth_link&link=1&oauth_service=' . strtolower($link_data['oauth_service']);
     $service_credentials = $this->service_providers[$service_name]->get_service_credentials();
     $scopes = $this->service_providers[$service_name]->get_auth_scope();
     $service = $this->get_service(strtolower($link_data['oauth_service']), $storage, $service_credentials, $query, $scopes);
     if ($this->request->is_set('code', \src\request\request_interface::GET)) {
         $this->service_providers[$service_name]->set_external_service_provider($service);
         $unique_id = $this->service_providers[$service_name]->perform_auth_login();
         // Insert into table, they will be able to log in after this
         $data = array('user_id' => $this->user->data['user_id'], 'provider' => strtolower($link_data['oauth_service']), 'oauth_provider_id' => $unique_id);
         $this->link_account_perform_link($data);
     } else {
         $url = $service->getAuthorizationUri();
         header('Location: ' . $url);
     }
 }
Exemple #2
0
    /**
     * Parses parameters found in $request, which is an instance of
     * \src\request\request_interface.
     *
     * It is expected to have a key f whose value is id of the forum to be pruned.
     *
     * @param \src\request\request_interface $request Request object.
     *
     * @return null
     */
    public function parse_parameters(\src\request\request_interface $request)
    {
        $this->forum_data = null;
        if ($request->is_set('f')) {
            $forum_id = $request->variable('f', 0);
            $sql = 'SELECT forum_id, prune_next, enable_prune, prune_days, prune_viewed, forum_flags, prune_freq
				FROM ' . FORUMS_TABLE . "\n\t\t\t\tWHERE forum_id = {$forum_id}";
            $result = $this->db->sql_query($sql);
            $row = $this->db->sql_fetchrow($result);
            $this->db->sql_freeresult($result);
            if ($row) {
                $this->forum_data = $row;
            }
        }
    }