return $module->handleError(eZError::KERNEL_NOT_AVAILABLE, 'kernel'); } if (!$parentNode->canCreate()) { eZDebug::writeError("Cannot upload file as child of parent node {$parentNodeID}, no permissions" . $module->currentAction(), 'content/action:' . $module->currentAction()); return $module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel'); } } $parameters['parent_nodes'] = $parentNodes; } // Check for redirection to current page if ($module->hasActionParameter('UploadRedirectBack')) { if ($module->actionParameter('UploadRedirectBack') == 1) { $parameters['result_uri'] = eZRedirectManager::redirectURI($module, 'content/view/full/2', true); } else { if ($module->actionParameter('UploadRedirectBack') == 2) { $parameters['result_uri'] = eZRedirectManager::redirectURI($module, 'content/view/full/2', false); } } } // Check for redirection to specific page if ($module->hasActionParameter('UploadRedirectURI')) { $parameters['result_uri'] = $module->actionParameter('UploadRedirectURI'); } eZContentUpload::upload($parameters, $module); return; } else { if (!isset($result)) { return $module->handleError(eZError::KERNEL_NOT_AVAILABLE, 'kernel'); } } }
$newPassword = ""; $confirmPassword = ""; $newPasswordNotMatch = 1; $message = true; } } else { $oldPassword = ""; $oldPasswordNotValid = 1; $message = true; } } if ($http->hasPostVariable("CancelButton")) { if ($http->hasPostVariable("RedirectOnCancel")) { return $Module->redirectTo($http->postVariable("RedirectOnCancel")); } eZRedirectManager::redirectTo($Module, $redirectionURI); return; } $Module->setTitle("Edit user information"); // Template handling $tpl = eZTemplate::factory(); $tpl->setVariable("module", $Module); $tpl->setVariable("http", $http); $tpl->setVariable("userID", $UserID); $tpl->setVariable("userAccount", $user); $tpl->setVariable("oldPassword", $oldPassword); $tpl->setVariable("newPassword", $newPassword); $tpl->setVariable("confirmPassword", $confirmPassword); $tpl->setVariable("oldPasswordNotValid", $oldPasswordNotValid); $tpl->setVariable("newPasswordNotMatch", $newPasswordNotMatch); $tpl->setVariable("newPasswordTooShort", $newPasswordTooShort);
function checkContentActions($module, $class, $object, $version, $contentObjectAttributes, $EditVersion, $EditLanguage) { if ($module->isCurrentAction('Cancel')) { $http = eZHTTPTool::instance(); if ($http->hasPostVariable('RedirectIfDiscarded')) { eZRedirectManager::redirectTo($module, $http->postVariable('RedirectIfDiscarded')); } else { eZRedirectManager::redirectTo($module, '/'); } $version->removeThis(); $http = eZHTTPTool::instance(); $http->removeSessionVariable("RegisterUserID"); $http->removeSessionVariable('StartedRegistration'); return eZModule::HOOK_STATUS_CANCEL_RUN; } if ($module->isCurrentAction('Publish')) { $userID = $object->attribute('id'); $operationResult = eZOperationHandler::execute('user', 'register', array('user_id' => $userID)); // send feedback $ini = eZINI::instance(); $tpl = eZTemplate::factory(); $hostname = eZSys::hostname(); $user = eZUser::fetch($userID); $feedbackTypes = $ini->variableArray('UserSettings', 'RegistrationFeedback'); foreach ($feedbackTypes as $feedbackType) { switch ($feedbackType) { case 'email': // send feedback with the default email type $mail = new eZMail(); $tpl->resetVariables(); $tpl->setVariable('user', $user); $tpl->setVariable('object', $object); $tpl->setVariable('hostname', $hostname); $templateResult = $tpl->fetch('design:user/registrationfeedback.tpl'); if ($tpl->hasVariable('content_type')) { $mail->setContentType($tpl->variable('content_type')); } $emailSender = $ini->variable('MailSettings', 'EmailSender'); if ($tpl->hasVariable('email_sender')) { $emailSender = $tpl->variable('email_sender'); } else { if (!$emailSender) { $emailSender = $ini->variable('MailSettings', 'AdminEmail'); } } $feedbackReceiver = $ini->variable('UserSettings', 'RegistrationEmail'); if ($tpl->hasVariable('email_receiver')) { $feedbackReceiver = $tpl->variable('email_receiver'); } else { if (!$feedbackReceiver) { $feedbackReceiver = $ini->variable('MailSettings', 'AdminEmail'); } } if ($tpl->hasVariable('subject')) { $subject = $tpl->variable('subject'); } else { $subject = ezpI18n::tr('kernel/user/register', 'New user registered'); } $mail->setSender($emailSender); $mail->setReceiver($feedbackReceiver); $mail->setSubject($subject); $mail->setBody($templateResult); $mailResult = eZMailTransport::send($mail); break; default: $registrationFeedbackClass = false; // load custom registration feedback settings if ($ini->hasGroup('RegistrationFeedback_' . $feedbackType)) { if ($ini->hasVariable('RegistrationFeedback_' . $feedbackType, 'File')) { include_once $ini->variable('RegistrationFeedback_' . $feedbackType, 'File'); } $registrationFeedbackClass = $ini->variable('RegistrationFeedback_' . $feedbackType, 'Class'); } // try to call the registration feedback class with function registrationFeedback if ($registrationFeedbackClass && method_exists($registrationFeedbackClass, 'registrationFeedback')) { call_user_func(array($registrationFeedbackClass, 'registrationFeedback'), $user, $tpl, $object, $hostname); } else { eZDebug::writeWarning("Unknown feedback type '{$feedbackType}'", 'user/register'); } } } $http = eZHTTPTool::instance(); $http->removeSessionVariable("GeneratedPassword"); $http->removeSessionVariable("RegisterUserID"); $http->removeSessionVariable('StartedRegistration'); // if everything is passed, login the user if ($operationResult['status'] === eZModuleOperationInfo::STATUS_CONTINUE) { $user->loginCurrent(); } // check for redirectionvariable if ($operationResult['status'] === eZModuleOperationInfo::STATUS_CONTINUE || $operationResult['status'] === eZModuleOperationInfo::STATUS_HALTED) { if ($http->hasSessionVariable('RedirectAfterUserRegister')) { $module->redirectTo($http->sessionVariable('RedirectAfterUserRegister')); $http->removeSessionVariable('RedirectAfterUserRegister'); } else { if ($http->hasPostVariable('RedirectAfterUserRegister')) { $module->redirectTo($http->postVariable('RedirectAfterUserRegister')); } else { $module->redirectTo('/user/success/'); } } } else { eZDebug::writeError('Unexpected operation status: ' . $operationResult['status'], 'user/register'); // @todo: finish the failure code $module->redirectTo('/user/register/5'); } } }
/** * @copyright Copyright (C) eZ Systems AS. All rights reserved. * @license For full copyright and license information view LICENSE file distributed with this source code. * @version //autogentag// * @package kernel */ $Module = $Params['Module']; $NodeID = $Params['NodeID']; $curNode = eZContentObjectTreeNode::fetch($NodeID); if (!$curNode) { return $Module->handleError(eZError::KERNEL_NOT_AVAILABLE, 'kernel'); } if (!$curNode->attribute('can_hide')) { return $Module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel'); } if (eZOperationHandler::operationIsAvailable('content_hide')) { $operationResult = eZOperationHandler::execute('content', 'hide', array('node_id' => $NodeID), null, true); } else { eZContentOperationCollection::changeHideStatus($NodeID); } $hasRedirect = eZRedirectManager::redirectTo($Module, false); if (!$hasRedirect) { // redirect to the parent node if (($parentNodeID = $curNode->attribute('parent_node_id')) == 1) { $redirectNodeID = $NodeID; } else { $redirectNodeID = $parentNodeID; } return $Module->redirectToView('view', array('full', $redirectNodeID)); }
<?php /** * @copyright Copyright (C) 1999-2012 eZ Systems AS. All rights reserved. * @license http://ez.no/Resources/Software/Licenses/eZ-Business-Use-License-Agreement-eZ-BUL-Version-2.1 eZ Business Use License Agreement eZ BUL Version 2.1 * @version 4.7.0 * @package kernel */ $module = $Params['Module']; $preferredCurrency = $Params['Currency']; if ( $module->isCurrentAction( 'Set' ) ) { if ( $module->hasActionParameter( 'Currency' ) ) $preferredCurrency = $module->actionParameter( 'Currency' ); } if ( $preferredCurrency ) eZShopFunctions::setPreferredCurrencyCode( $preferredCurrency ); eZRedirectManager::redirectTo( $module, false ); ?>
static function redirectTo($module, $default, $view = true, $disallowed = false, $preferredURI = false) { $uri = eZRedirectManager::redirectURI($module, $default, $view, $disallowed, $preferredURI); if ($uri === false) { return false; } $module->redirectTo($uri); return true; }
if ($http->hasSessionVariable('ParentObject') && $http->sessionVariable('NewObjectID') == $objectID) { $parentArray = $http->sessionVariable('ParentObject'); $parentURL = $Module->redirectionURI('content', 'edit', $parentArray); $Module->redirectTo($parentURL); $hasRedirected = true; } $http->removeSessionVariable('RedirectURIAfterPublish'); $http->removeSessionVariable('ParentObject'); $http->removeSessionVariable('NewObjectID'); if ($hasRedirected) { return; } else { if (isset($nodeID) && $nodeID) { return $Module->redirectTo('/content/view/full/' . $nodeID . '/'); } else { return eZRedirectManager::redirectTo($Module, '/', true, array('content/edit')); } } } if ($http->hasPostVariable("CancelButton")) { $Module->redirectTo('/content/edit/' . $objectID . '/' . $version . '/'); } $Module->setTitle("Remove Editing Version"); $tpl = eZTemplate::factory(); $tpl->setVariable("Module", $Module); $tpl->setVariable("object_id", $objectID); $tpl->setVariable("object_version", $version); $tpl->setVariable("object_language", $editLanguage); $Result = array(); $Result['content'] = $tpl->fetch("design:content/removeeditversion.tpl"); $Result['path'] = array(array('url' => '/content/removeeditversion/', 'text' => ezpI18n::tr('kernel/content', 'Remove editing version')));
foreach (array_keys($Params['UserParameters']) as $key) { if ($key == 'offset') { continue; } $url .= '/(' . $key . ')/' . $Params['UserParameters'][$key]; } $module->redirectTo('/' . $url); } else { if (isset($_SERVER['HTTP_REFERER'])) { $preferredRedirectionURI = eZURI::decodeURL($_SERVER['HTTP_REFERER']); // We should exclude OFFSET from $preferredRedirectionURI $exploded = explode('/', $preferredRedirectionURI); foreach (array_keys($exploded) as $itemKey) { $item = $exploded[$itemKey]; if ($item == '(offset)') { array_splice($exploded, $itemKey, 2); break; } } $redirectURI = implode('/', $exploded); // Protect against redirect loop if (strpos($redirectURI, '/user/preferences/set') !== false) { $module->redirectTo('/'); } else { eZRedirectManager::redirectTo($module, false, true, false, $redirectURI); } return; } else { $module->redirectTo($http->postVariable('RedirectURI', $http->sessionVariable('LastAccessesURI', '/'))); } }
else if ( isset( $_SERVER['HTTP_REFERER'] ) ) { $preferredRedirectionURI = eZURI::decodeURL( $_SERVER['HTTP_REFERER'] ); // We should exclude OFFSET from $preferredRedirectionURI $exploded = explode( '/', $preferredRedirectionURI ); foreach ( array_keys( $exploded ) as $itemKey ) { $item = $exploded[$itemKey]; if ( $item == '(offset)' ) { array_splice( $exploded, $itemKey, 2 ); break; } } $redirectURI = implode( '/', $exploded ); // Protect against redirect loop if ( strpos( $redirectURI, '/user/preferences/set' ) !== false ) $module->redirectTo( '/' ); else eZRedirectManager::redirectTo( $module, /* $default = */ false, /* $view = */ true, /* $disallowed = */ false, $redirectURI ); return; } else { $module->redirectTo( $http->postVariable( 'RedirectURI', $http->sessionVariable( 'LastAccessesURI', '/' ) ) ); } ?>
function checkContentActions($module, $class, $object, $version, $contentObjectAttributes, $EditVersion, $EditLanguage) { if ($module->isCurrentAction('Cancel')) { $http = eZHTTPTool::instance(); if ($http->hasPostVariable('RedirectIfDiscarded')) { eZRedirectManager::redirectTo($module, $http->postVariable('RedirectIfDiscarded')); } else { eZRedirectManager::redirectTo($module, '/'); } $version->removeThis(); $http = eZHTTPTool::instance(); $http->removeSessionVariable("RegisterUserID"); $http->removeSessionVariable('StartedRegistration'); return eZModule::HOOK_STATUS_CANCEL_RUN; } if ($module->isCurrentAction('Publish')) { $http = eZHTTPTool::instance(); $user = eZUser::currentUser(); $operationResult = eZOperationHandler::execute('content', 'publish', array('object_id' => $object->attribute('id'), 'version' => $version->attribute('version'))); // Break here if the publishing failed if ($operationResult['status'] !== eZModuleOperationInfo::STATUS_CONTINUE) { eZDebug::writeError('User object(' . $object->attribute('id') . ') could not be published.', 'user/register'); $module->redirectTo('/user/register/3'); return; } $object = eZContentObject::fetch($object->attribute('id')); // Check if user should be enabled and logged in unset($user); $user = eZUser::fetch($object->attribute('id')); $user->loginCurrent(); $receiver = $user->attribute('email'); $mail = new eZMail(); if (!$mail->validate($receiver)) { } $ini = eZINI::instance(); $tpl = eZTemplate::factory(); $tpl->setVariable('user', $user); $tpl->setVariable('object', $object); $hostname = eZSys::hostname(); $tpl->setVariable('hostname', $hostname); $password = $http->sessionVariable("GeneratedPassword"); $tpl->setVariable('password', $password); // Check whether account activation is required. $verifyUserType = $ini->variable('UserSettings', 'VerifyUserType'); $sendUserMail = !!$verifyUserType; // For compatibility with old setting if ($verifyUserType === 'email' && $ini->hasVariable('UserSettings', 'VerifyUserEmail') && $ini->variable('UserSettings', 'VerifyUserEmail') !== 'enabled') { $verifyUserType = false; } if ($verifyUserType === 'email') { // Disable user account and send verification mail to the user $userID = $object->attribute('id'); // Create enable account hash and send it to the newly registered user $hash = md5(mt_rand() . time() . $userID); if (eZOperationHandler::operationIsAvailable('user_activation')) { $operationResult = eZOperationHandler::execute('user', 'activation', array('user_id' => $userID, 'user_hash' => $hash, 'is_enabled' => false)); } else { eZUserOperationCollection::activation($userID, $hash, false); } // Log out current user eZUser::logoutCurrent(); $tpl->setVariable('hash', $hash); $sendUserMail = true; } else { if ($verifyUserType) { $verifyUserTypeClass = false; // load custom verify user settings if ($ini->hasGroup('VerifyUserType_' . $verifyUserType)) { if ($ini->hasVariable('VerifyUserType_' . $verifyUserType, 'File')) { include_once $ini->variable('VerifyUserType_' . $verifyUserType, 'File'); } $verifyUserTypeClass = $ini->variable('VerifyUserType_' . $verifyUserType, 'Class'); } // try to call the verify user class with function verifyUser if ($verifyUserTypeClass && method_exists($verifyUserTypeClass, 'verifyUser')) { $sendUserMail = call_user_func(array($verifyUserTypeClass, 'verifyUser'), $user, $tpl); } else { eZDebug::writeWarning("Unknown VerifyUserType '{$verifyUserType}'", 'user/register'); } } } // send verification mail to user if email type or custum verify user type returned true if ($sendUserMail) { $templateResult = $tpl->fetch('design:user/registrationinfo.tpl'); if ($tpl->hasVariable('content_type')) { $mail->setContentType($tpl->variable('content_type')); } $emailSender = $ini->variable('MailSettings', 'EmailSender'); if ($tpl->hasVariable('email_sender')) { $emailSender = $tpl->variable('email_sender'); } else { if (!$emailSender) { $emailSender = $ini->variable('MailSettings', 'AdminEmail'); } } if ($tpl->hasVariable('subject')) { $subject = $tpl->variable('subject'); } else { $subject = ezpI18n::tr('kernel/user/register', 'Registration info'); } $mail->setSender($emailSender); $mail->setReceiver($receiver); $mail->setSubject($subject); $mail->setBody($templateResult); $mailResult = eZMailTransport::send($mail); } $feedbackTypes = $ini->variableArray('UserSettings', 'RegistrationFeedback'); foreach ($feedbackTypes as $feedbackType) { switch ($feedbackType) { case 'email': // send feedback with the default email type $mail = new eZMail(); $tpl->resetVariables(); $tpl->setVariable('user', $user); $tpl->setVariable('object', $object); $tpl->setVariable('hostname', $hostname); $templateResult = $tpl->fetch('design:user/registrationfeedback.tpl'); if ($tpl->hasVariable('content_type')) { $mail->setContentType($tpl->variable('content_type')); } $emailSender = $ini->variable('MailSettings', 'EmailSender'); if ($tpl->hasVariable('email_sender')) { $emailSender = $tpl->variable('email_sender'); } else { if (!$emailSender) { $emailSender = $ini->variable('MailSettings', 'AdminEmail'); } } $feedbackReceiver = $ini->variable('UserSettings', 'RegistrationEmail'); if ($tpl->hasVariable('email_receiver')) { $feedbackReceiver = $tpl->variable('email_receiver'); } else { if (!$feedbackReceiver) { $feedbackReceiver = $ini->variable('MailSettings', 'AdminEmail'); } } if ($tpl->hasVariable('subject')) { $subject = $tpl->variable('subject'); } else { $subject = ezpI18n::tr('kernel/user/register', 'New user registered'); } $mail->setSender($emailSender); $mail->setReceiver($feedbackReceiver); $mail->setSubject($subject); $mail->setBody($templateResult); $mailResult = eZMailTransport::send($mail); break; default: $registrationFeedbackClass = false; // load custom registration feedback settings if ($ini->hasGroup('RegistrationFeedback_' . $feedbackType)) { if ($ini->hasVariable('RegistrationFeedback_' . $feedbackType, 'File')) { include_once $ini->variable('RegistrationFeedback_' . $feedbackType, 'File'); } $registrationFeedbackClass = $ini->variable('RegistrationFeedback_' . $feedbackType, 'Class'); } // try to call the registration feedback class with function registrationFeedback if ($registrationFeedbackClass && method_exists($registrationFeedbackClass, 'registrationFeedback')) { call_user_func(array($registrationFeedbackClass, 'registrationFeedback'), $user, $tpl, $object, $hostname); } else { eZDebug::writeWarning("Unknown feedback type '{$feedbackType}'", 'user/register'); } } } $http->removeSessionVariable("GeneratedPassword"); $http->removeSessionVariable("RegisterUserID"); $http->removeSessionVariable('StartedRegistration'); // check for redirectionvariable if ($http->hasSessionVariable('RedirectAfterUserRegister')) { $module->redirectTo($http->sessionVariable('RedirectAfterUserRegister')); $http->removeSessionVariable('RedirectAfterUserRegister'); } else { if ($http->hasPostVariable('RedirectAfterUserRegister')) { $module->redirectTo($http->postVariable('RedirectAfterUserRegister')); } else { $module->redirectTo('/user/success/'); } } } }