getObjectUserByUsername($user); if ($userinfo == NULL) { $tplVars['error'] = sprintf(T_('User with username %s was not found'), $user); $templateservice->loadTemplate('error.404.tpl', $tplVars); exit(); } else { $userid = $userinfo->getId(); } } } else { $tplVars['error'] = T_('Username was not specified'); $templateservice->loadTemplate('error.404.tpl', $tplVars); exit(); } $tplVars['privateKeyIsEnabled'] = ''; if ($userservice->isLoggedOn() && $user == $currentUser->getUsername()) { $title = T_('My Profile'); $tplVars['privateKey'] = $currentUser->getPrivateKey(true); if ($userservice->isPrivateKeyValid($currentUser->getPrivateKey())) { $tplVars['privateKeyIsEnabled'] = 'checked="checked"'; } else { $tplVars['privateKeyIsEnabled'] = ''; } } else { $title = T_('Profile') .': '. $user; $tplVars['privateKey'] = ''; } $tplVars['pagetitle'] = $title; $tplVars['subtitle'] = $title; $tplVars['user'] = $user; $tplVars['userid'] = $userid; /* Update Private Key */ if (POST_SUBMITTEDPK!='' && $currentUser->getId() == $userid) { $userinfo = $userservice->getObjectUserByUsername($user); $tplVars['privateKey'] = $userservice->getNewPrivateKey(); } if (POST_SUBMITTED!='' && $currentUser->getId() == $userid) { $error = false; $detPass = trim(POST_PASS); $detPassConf = trim(POST_PASSCONF); $detName = trim(POST_NAME); $detPrivateKey = trim(POST_PRIVATEKEY); $detEnablePrivateKey = trim(POST_ENABLEPRIVATEKEY); $detMail = trim(POST_MAIL); $detPage = trim(POST_PAGE); $detDesc = filter(POST_DESC); // manage token preventing from CSRF vulnaribilities if ( SESSION_TOKEN == '' || time() - SESSION_TOKENSTAMP > 600 //limit token lifetime, optionnal || SESSION_TOKEN != POST_TOKEN) { $error = true; $tplVars['error'] = T_('Invalid Token'); } if ($detPass != $detPassConf) { $error = true; $tplVars['error'] = T_('Password and confirmation do not match.'); } if ($detPass != "" && strlen($detPass) < 6) { $error = true; $tplVars['error'] = T_('Password must be at least 6 characters long.'); } if (!$userservice->isValidEmail($detMail)) { $error = true; $tplVars['error'] = T_('E-mail address is not valid.'); } if (!$error) { if (!$userservice->updateUser($userid, $detPass, $detName, $detMail, $detPage, $detDesc, $detPrivateKey, $detEnablePrivateKey)) { $tplVars['error'] = T_('An error occurred while saving your changes.'); } else { $tplVars['msg'] = T_('Changes saved.'); } } $userinfo = $userservice->getObjectUserByUsername($user); $tplVars['privateKey'] = $userinfo->getPrivateKey(true); if ($userservice->isPrivateKeyValid($userinfo->getPrivateKey())) { $tplVars['privateKeyIsEnabled'] = 'checked="checked"'; } else { $tplVars['privateKeyIsEnabled'] = ''; } } if (!$userservice->isLoggedOn() || $currentUser->getId() != $userid) { $templatename = 'profile.tpl.php'; } else { $scert = SemanticScuttle_Service_Factory::get('User_SslClientCert'); if (isset($_POST['action']) && $_POST['action'] == 'registerCurrentCert') { if (!$scert->hasValidCert()) { $tplVars['error'] = T_('You do not have a valid SSL client certificate'); } else if (false !== $scert->getUserIdFromCert()) { $tplVars['error'] = T_('This certificate is already registered'); } else if (false === $scert->registerCurrentCertificate($currentUser->getId())) { $tplVars['error'] = T_('Failed to register SSL client certificate.'); } else { $tplVars['msg'] = T_('SSL client certificate registered.'); } } else if (isset($_POST['action']) && $_POST['action'] == 'deleteClientCert' && isset($_POST['certId']) ) { $certId = (int)$_POST['certId']; $cert = $scert->getCert($certId); if ($cert === null) { $tplVars['error'] = T_('Certificate not found.'); } else if ($cert->uId != $currentUser->getId()) { $tplVars['error'] = T_('The certificate does not belong to you.'); } else if (false === $scert->delete($certId)) { $tplVars['error'] = T_('Failed to delete SSL client certificate.'); } else { $tplVars['msg'] = T_('SSL client certificate deleted.'); } } //Token Init $_SESSION['token'] = md5(uniqid(rand(), true)); $_SESSION['token_stamp'] = time(); $templatename = 'editprofile.tpl.php'; $tplVars['formaction'] = createURL('profile', $user); $tplVars['token'] = $_SESSION['token']; $tplVars['sslClientCerts'] = $scert->getUserCerts($currentUser->getId()); $tplVars['currentCert'] = null; if ($scert->hasValidCert()) { $tplVars['currentCert'] = SemanticScuttle_Model_User_SslClientCert::fromCurrentCert(); } } $tplVars['objectUser'] = $userinfo; $templateservice->loadTemplate($templatename, $tplVars); ?>