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');
Esempio n. 3
0
 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);
 }