|
[phpws-comm-commits] modules/openid/class OpenID_MyPage.php, NONE,
1.1 OpenID_User.php, 1.1.1.1, 1.2
From: Greg M. <bli...@us...> - 2008-02-06 04:40:51
|
Update of /cvsroot/phpwebsite-comm/modules/openid/class In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27869/class Modified Files: OpenID_User.php Added Files: OpenID_MyPage.php Log Message: Made progress on MyPage support. Index: OpenID_User.php =================================================================== RCS file: /cvsroot/phpwebsite-comm/modules/openid/class/OpenID_User.php,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** OpenID_User.php 4 Feb 2008 04:54:31 -0000 1.1.1.1 --- OpenID_User.php 6 Feb 2008 04:40:24 -0000 1.2 *************** *** 43,48 **** break; ! case 'complete_login': ! OpenID_User::completeLogin(); break; } --- 43,53 ---- break; ! case 'completeLogin': ! $tags['TITLE'] = dgettext('openid', 'First Log In'); ! $tags['CONTENT'] = OpenID_User::completeLogin(); ! break; ! ! case 'removeMapping': ! OpenID_User::removeMapping(); break; } *************** *** 113,117 **** if (!$root_only) { ! $retval .= PHPWS_Text::linkAddress('openid', array('user'=>'complete_login')); } --- 118,122 ---- if (!$root_only) { ! $retval .= PHPWS_Text::linkAddress('openid', array('user'=>'completeLogin')); } *************** *** 193,196 **** --- 198,202 ---- if (!empty($result)) { + // Log in user $user = new PHPWS_User($result); $user->login(); *************** *** 198,210 **** PHPWS_Core::returnToBookmark(); } else if (PHPWS_Settings::get('users', 'new_user_method') != 0) { $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response); $sreg = $sreg_resp->contents(); ! //@$sreg['email'] ! //@$sreg['nickname'] ! //@$sreg['fullname'] } } } --- 204,236 ---- PHPWS_Core::returnToBookmark(); } + else if (Current_User::isLogged()) + { + // Link this OpenID to user + $db->reset(); + $values['user_id'] = Current_User::getId(); + $values['openid_identifier'] = $openid; + $db->addValue($values); + if (!PHPWS_Error::logIfError($db->insert())) + { + $_SESSION['openid_message'] = dgettext('openid', 'OpenID added to your account.'); + } + + OpenID_ReturnToBookmark(); + } else if (PHPWS_Settings::get('users', 'new_user_method') != 0) { + // Create new site user (or link) for this OpenID $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response); $sreg = $sreg_resp->contents(); ! $session_key = rand(); ! $_SESSION['openid_identifier'][$session_key] = $openid; ! ! return OpenID_User::createUserForm($session_key, $sreg['email'], ! $sreg['nickname'], $sreg['fullname']); } + + $_SESSION['openid_message'] = dgettext('openid', 'OpenID not registered in database.'); + OpenID_ReturnToBookmark(); } } *************** *** 214,217 **** --- 240,255 ---- } + function createUserForm($session_key, $email, $nickname, $fullname) + { + return 'TODO'; + } + + function removeMapping() + { + // TODO + + OpenID_ReturnToBookmark(); + } + }// END CLASS OpenID_User --- NEW FILE: OpenID_MyPage.php --- <?php /** * OpenID module for phpWebSite * * See docs/CREDITS for copyright information * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * @author Greg Meiste <bli...@NO...> * @version $Id: OpenID_MyPage.php,v 1.1 2008/02/06 04:40:24 blindman1344 Exp $ */ class OpenID_MyPage { function show() { if (PHPWS_Settings::get('openid', 'allow_openid')) { OpenID_Bookmark(); PHPWS_Core::initCoreClass('DBPager.php'); $form = new PHPWS_Form; $form->addHidden('module', 'openid'); $form->addHidden('user', 'login'); $form->addText('openid_identifier'); $form->setSize('openid_identifier', 40, 200); $form->setClass('openid_identifier', (FORCE_MOD_TEMPLATES ? 'openid openid_mod' : 'openid')); $form->addSubmit('submit', dgettext('openid', 'Add')); $form->addTplTag('MESSAGE', OpenID_GetMsg()); $tags = $form->getTemplate(); $tags['TITLE'] = dgettext('openid', 'OpenID Identifiers'); $tags['OPENID'] = dgettext('openid', 'OpenID'); $tags['ACTION'] = dgettext('openid', 'Action'); $pager = new DBPager('openid_mapping'); $pager->setModule('openid'); $pager->setTemplate('my_page.tpl'); $pager->addToggle(PHPWS_LIST_TOGGLE_CLASS); $pager->addPageTags($tags); $pager->addRowFunction(array('OpenID_MyPage', 'getRowTpl')); $pager->setDefaultOrder('openid_identifier', 'desc'); $pager->setEmptyMessage(dgettext('openid', 'No OpenID identifiers linked to this account.')); $pager->addWhere('user_id', Current_User::getId()); $content = $pager->get(); } else { $content = dgettext('openid', 'OpenID login is not enabled at this time.'); } return $content; } function getRowTpl($row) { static $num_openid = 0; $template['OPENID_IDENTIFIER'] = $row['openid_identifier']; $template['ACTION'] = NULL; if ($num_openid == 0) { $db = new PHPWS_DB('openid_mapping'); $db->addWhere('user_id', Current_User::getId()); $result = $db->count(); if (!PHPWS_Error::logIfError($result)) { $num_openid = $result; } } if (($num_openid > 1) /* || TODO: password set */) { $vars['user'] = 'removeMapping'; $vars['mapping_id'] = $row['id']; $confirm_vars['QUESTION'] = dgettext('openid', 'Are you sure you want to remove this OpenID?'); $confirm_vars['ADDRESS'] = PHPWS_Text::linkAddress('openid', $vars, TRUE); $confirm_vars['LINK'] = dgettext('openid', 'Remove'); $template['ACTION'] = javascript('confirm', $confirm_vars); } return $template; } } ?> |