--- a/busui/owa/modules/base/usersAdd.php +++ b/busui/owa/modules/base/usersAdd.php @@ -1,1 +1,106 @@ - + + * @copyright Copyright © 2006 Peter Adams + * @license http://www.gnu.org/copyleft/gpl.html GPL v2.0 + * @category owa + * @package owa + * @version $Revision$ + * @since owa 1.0.0 + */ + +class owa_usersAddController extends owa_adminController { + + function __construct($params) { + + parent::__construct($params); + + $this->setRequiredCapability('edit_users'); + $this->setNonceRequired(); + + // Check for user with the same email address + // this is needed or else the change password feature will not know which account + // to chane the password for. + $v1 = owa_coreAPI::validationFactory('entityDoesNotExist'); + $v1->setConfig('entity', 'base.user'); + $v1->setConfig('column', 'email_address'); + $v1->setValues(trim($this->getParam('email_address'))); + $v1->setErrorMessage($this->getMsg(3009)); + $this->setValidation('email_address', $v1); + + // Check user name. + $v2 = owa_coreAPI::validationFactory('entityDoesNotExist'); + $v2->setConfig('entity', 'base.user'); + $v2->setConfig('column', 'user_id'); + $v2->setValues(trim($this->getParam('user_id'))); + $v2->setErrorMessage($this->getMsg(3001)); + $this->setValidation('user_id', $v2); + + return; + } + + function action() { + + $userManager = owa_coreApi::supportClassFactory('base', 'userManager'); + + + $user_params = array( 'user_id' => trim($this->params['user_id']), + 'real_name' => $this->params['real_name'], + 'role' => $this->params['role'], + 'email_address' => trim($this->params['email_address'])); + + $temp_passkey = $userManager->createNewUser($user_params); + + // log account creation event to event queue + $eq = &eventQueue::get_instance(); + $eq->log(array( 'user_id' => $this->params['user_id'], + 'real_name' => $this->params['real_name'], + 'role' => $this->params['role'], + 'email_address' => $this->params['email_address'], + 'temp_passkey' => $temp_passkey), + 'base.new_user_account'); + + + $this->setRedirectAction('base.users'); + $this->set('status_code', 3000); + + return; + } + + function errorAction() { + $this->setView('base.options'); + $this->setSubview('base.usersProfile'); + $this->set('error_code', 3009); + //assign original form data so the user does not have to re-enter the data + $this->set('profile', $this->params); + + return; + + } + +} + + +?>