function processInput($fieldValues, $expectedValues) { global $eppnRealm; $skv = array(); foreach ($expectedValues as $db => $field) { switch ($db) { case "cn": $hookfile = SimpleSAML_Module::getModuleDir('selfregister') . '/hooks/hook_attributes.php'; include_once $hookfile; $skv[$db] = get_cn_hook($fieldValues); break; case "userPassword": $skv[$db] = sspmod_selfregister_Util::validatePassword($fieldValues); break; // case "eduPersonPrincipalName": // $skv[$db] = $fieldValues['uid'].'@'.$eppnRealm; // break; // case "eduPersonPrincipalName": // $skv[$db] = $fieldValues['uid'].'@'.$eppnRealm; // break; case "mail": if (array_key_exists('token', $_POST)) { global $tokenLifetime; $tg = new SimpleSAML_Auth_TimeLimitedToken($tokenLifetime); $email = $_POST['emailconfirmed']; $tg->addVerificationData($email); $token = $_POST['token']; if (!$tg->validate_token($token)) { throw new sspmod_selfregister_Error_UserException('invalid_token'); } $skv[$db] = $email; } break; default: $skv[$db] = $fieldValues[$field]; } } return $skv; }
} catch (sspmod_selfregister_Error_UserException $e) { $et = new SimpleSAML_XHTML_Template($config, 'selfregister:step1_email.tpl.php', 'selfregister:selfregister'); $et->data['email'] = $_POST['emailreg']; $et->data['systemName'] = $systemName; $error = $et->t($e->getMesgId(), $e->getTrVars()); $et->data['error'] = htmlspecialchars($error); $et->show(); } } elseif (array_key_exists('token', $_GET)) { // Stage 3: User access page from url in e-mail try { $email = filter_input(INPUT_GET, 'email', FILTER_VALIDATE_EMAIL); if (!$email) { throw new SimpleSAML_Error_Exception('E-mail parameter in request is lost'); } $tg = new SimpleSAML_Auth_TimeLimitedToken($tokenLifetime); $tg->addVerificationData($email); $token = $_REQUEST['token']; if (!$tg->validate_token($token)) { throw new sspmod_selfregister_Error_UserException('invalid_token'); } $formGen = new sspmod_selfregister_XHTML_Form($formFields, 'newUser.php'); $showFields = sspmod_selfregister_Util::genFieldView($viewAttr); $formGen->fieldsToShow($showFields); $formGen->setReadOnly('mail'); $hidden = array('emailconfirmed' => $email, 'token' => $token); $formGen->addHiddenData($hidden); $formGen->setValues(array('mail' => $email)); $formGen->setSubmitter('submit_change'); $formHtml = $formGen->genFormHtml(); $html = new SimpleSAML_XHTML_Template($config, 'selfregister:step3_register.tpl.php', 'selfregister:selfregister');
public static function validateInvitationToken($groupid, $token) { $config = SimpleSAML_Configuration::getInstance('foodle'); $tlt = new SimpleSAML_Auth_TimeLimitedToken(604800, $config->getString('secret')); $tlt->addVerificationData('group:' . $groupid); return $tlt->validate_token($token); }