--- a/busui/owa/modules/base/usersAdd.php +++ b/busui/owa/modules/base/usersAdd.php @@ -1,1 +1,106 @@ - +<?php + +// +// Open Web Analytics - An Open Source Web Analytics Framework +// +// Copyright 2006 Peter Adams. All rights reserved. +// +// Licensed under GPL v2.0 http://www.gnu.org/copyleft/gpl.html +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// $Id$ +// + +require_once(OWA_BASE_DIR.'/owa_adminController.php'); +require_once(OWA_BASE_DIR.'/eventQueue.php'); + +/** + * Add User Controller + * + * @author Peter Adams <peter@openwebanalytics.com> + * @copyright Copyright © 2006 Peter Adams <peter@openwebanalytics.com> + * @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; + + } + +} + + +?>