Ejemplo n.º 1
0
 public function registerAction()
 {
     $request = $this->getRequest();
     if ($request->isPost()) {
         $userData = $request->getPost('user');
         $userData = Modules_Core_Services_User::validate($userData);
         /**
          * Check user exist 
          */
         if ($userData['username'] && Modules_Core_Services_User::getByUsername($userData['username'])) {
             $userData['messages_error'] = true;
             $userData['messages']['username'] = '******';
         }
         /**
          * Check user exist 
          */
         if ($userData['email'] && Modules_Core_Services_User::getByEmail($userData['email'])) {
             $userData['messages_error'] = true;
             $userData['messages']['email'] = 'user_email_exist';
         }
         if (isset($userData['messages_error']) && $userData['messages_error']) {
             $this->view->errorMessages = $userData['messages'];
             $this->view->userData = $userData;
             return;
         }
         $config = Gio_Core_Module::getConfig('core', true);
         if (!isset($config['user']['default_role_id']) || null == ($role = Modules_Core_Services_Role::getById($config['user']['default_role_id']))) {
             return;
         }
         $salt = md5(time());
         $user = array('username' => $userData['username'], 'password' => md5(md5($userData['password']) . $salt), 'email' => $this->view->STRING->escape($userData['email']), 'fullname' => $this->view->STRING->escape($userData['fullname']), 'salt' => $salt, 'status' => 'active', 'created_date' => date('Y-m-d H:i:s'), 'role_id' => $role['role_id']);
         $userId = Modules_Core_Services_User::add($user);
         /**
          * Send welcome mail
          */
         Modules_Core_Services_User::registerSuccess($user['username'], $user['email']);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('user_register_success'));
         $this->redirect($this->view->url('core_user_register'));
     }
 }
Ejemplo n.º 2
0
 public function editAction()
 {
     $request = $this->getRequest();
     $roleId = $request->getParam('role_id');
     $role = Modules_Core_Services_Role::getById($roleId);
     if (null == $role) {
         throw new Exception();
     }
     $this->view->roleData = $role;
     if ($request->isPost()) {
         $roleData = $request->getPost('role');
         $roleData = Modules_Core_Services_Role::validate($roleData);
         if (isset($roleData['messages_error']) && $roleData['messages_error']) {
             $this->view->errorMessages = $roleData['messages'];
             $roleData['role_id'] = $roleId;
             $this->view->roleData = $roleData;
             return;
         }
         $salt = $role['salt'];
         $role = array('role_id' => $roleId, 'name' => $this->view->STRING->escape($roleData['name']), 'description' => $this->view->STRING->escape($roleData['description']), 'status' => $this->view->STRING->escape($roleData['status']));
         Modules_Core_Services_Role::update($role);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('role_actions_edit_success'));
         $this->redirect($this->view->url('core_role_edit', $role));
     }
 }
Ejemplo n.º 3
0
 public function roleAction()
 {
     $request = $this->getRequest();
     $roleId = $request->getParam('role_id');
     $role = Modules_Core_Services_Role::getById($roleId);
     if (null == $role) {
         return;
     }
     $this->view->role = $role;
     $act = $request->getParam('act');
     if ($request->isPost()) {
         $this->setNoRender();
         $this->disableLayout();
         $mod = $request->getPost('mod');
         $this->view->mod = $mod;
         $controllers = Modules_Core_Services_Action::getDbActionsByModule($mod);
         switch ($act) {
             case 'save':
                 /**
                  *	Reset rule for user 
                  */
                 Modules_Core_Services_Rule::reset('role', $role['role_id'], $mod);
                 $actions = $request->getPost('actions');
                 if ($controllers) {
                     foreach ($controllers as $index => $controller) {
                         if ($controller['actions']) {
                             foreach ($controller['actions'] as $indexAction => $controllerAction) {
                                 $allow = 0;
                                 if ($actions) {
                                     foreach ($actions as $action) {
                                         if ($mod . '_' . $controller['controller_id'] . '_' . $controllerAction['action_id'] == $action) {
                                             $allow = 1;
                                         }
                                     }
                                 }
                                 $rule = array('module_id' => $mod, 'controller_id' => $controller['controller_id'], 'action_id' => $controllerAction['action_id'], 'object_type' => 'role', 'object_id' => $role['role_id'], 'allow' => $allow);
                                 $ruleId = Modules_Core_Services_Rule::add($rule);
                             }
                         }
                     }
                 }
                 $this->getResponse()->setBody('RESULT_OK');
                 return;
                 break;
             default:
                 $dbRoleRules = Modules_Core_Services_Rule::getRules('role', $role['role_id']);
                 $dbRules = $dbRoleRules;
                 $this->view->dbRules = $dbRules;
                 $this->view->controllers = $controllers;
                 $viewFile = ROOT_DIR . DS . 'templates' . DS . $this->view->APP_TEMPLATE . DS . 'modules' . DS . 'core' . DS . 'permission' . DS . 'role.ajax.phtml';
                 $response = $this->view->render($viewFile);
                 $this->getResponse()->setBody($response);
                 return;
                 break;
         }
     }
     $modules = Modules_Core_Services_Module::getModulesInstalled();
     /**
      * Add module core to the top array 
      */
     $modules = array_pad($modules, -count($modules) - 1, array('module_id' => 'core'));
     $this->view->modules = $modules;
 }