public function createAction()
 {
     if ($this->request->isPost()) {
         $profile = new Profiles();
         $profile->assign(array('pid' => 0, 'crdate' => time(), 'tstamp' => time(), 'cruser_id' => $this->session->get('auth')['uid'], 'deleted' => 0, 'hidden' => 0, 'title' => $this->request->getPost('title')));
         if (!$profile->save()) {
             $this->flash->error($profile->getMessages());
         } else {
             $this->flash->success($profile->getMessages());
         }
         $this->response->redirect('backend/' . $this->view->language . '/profiles/update/' . $profile->uid . '/');
         $this->view->disable();
     }
 }
 public function initialize($entity = null, $options = null)
 {
     // In edition the id is hidden
     if (isset($options['edit']) && $options['edit']) {
         $uid = new Hidden('uid');
     } else {
         $uid = new Text('uid');
     }
     $this->add($uid);
     $username = new Text('username', array());
     $username->addValidators(array(new PresenceOf(array('message' => 'The name is required'))));
     $this->add($username);
     $password = new Password('password', array());
     $password->addValidators(array(new PresenceOf(array('message' => 'Password is required'))));
     $this->add($password);
     $last_name = new Text('last_name', array());
     $last_name->addValidators(array(new PresenceOf(array('message' => 'The lastname is required'))));
     $this->add($last_name);
     $first_name = new Text('first_name', array());
     $first_name->addValidators(array(new PresenceOf(array('message' => 'The firstname is required'))));
     $this->add($first_name);
     $title = new Text('title', array());
     $title->addValidators(array(new PresenceOf(array('message' => 'The title is required'))));
     $this->add($title);
     $email = new Text('email', array());
     $email->addValidators(array(new PresenceOf(array('message' => 'The email is required')), new Email(array('message' => 'The email is not valid'))));
     $this->add($email);
     $phone = new Text('phone', array());
     $this->add($phone);
     $address = new Text('address', array());
     $this->add($address);
     $city = new Text('city', array());
     $this->add($city);
     $zip = new Text('zip', array());
     $this->add($zip);
     $company = new Text('company', array());
     $this->add($company);
     $this->add(new Select("profileuid", Profiles::find(array('conditions' => 'deleted=0 AND hidden=0')), array('using' => array('uid', 'title'))));
     $this->add(new Select("usergroup", Usergroups::find(array('conditions' => 'deleted=0 AND hidden=0')), array('using' => array('uid', 'title'))));
     $this->add(new Select("userlanguage", Languages::find(array('conditions' => 'deleted=0 AND hidden=0')), array('using' => array('uid', 'title'))));
     $this->add(new Select('superuser', array('0' => ControllerBase::translate('no'), '1' => ControllerBase::translate('yes'))));
 }
 public function createAction()
 {
     if ($this->request->isPost()) {
         $time = time();
         $feuser = new Feusers();
         $feuser->assign(array("pid" => 0, 'tstamp' => $time, 'crdate' => $time, 'cruser_id' => $this->session->get('auth')['uid'], 'deleted' => 0, 'hidden' => 0, 'username' => $this->request->getPost('username'), 'password' => $this->auth->encryptPassword($this->request->getPost('password')), 'first_name' => $this->request->getPost('first_name'), 'last_name' => $this->request->getPost('last_name'), 'title' => $this->request->getPost('title'), 'email' => $this->request->getPost('email'), 'phone' => $this->request->getPost('phone'), 'address' => $this->request->getPost('address'), 'city' => $this->request->getPost('city'), 'zip' => $this->request->getPost('zip'), 'company' => $this->request->getPost('company'), 'profileid' => $this->request->getPost('profileuid'), 'usergroup' => $this->request->getPost('usergroup'), 'superuser' => $this->request->getPost('superuser'), 'userlanguage' => $this->request->getPost('userlanguage')));
         if (!$feuser->save()) {
             $this->flash->error($feuser->getMessages());
         } else {
             $this->flash->success("Feuser was created successfully");
         }
         /*Forces to rewrite ACL list on next request*/
         unlink('../app/cache/acl/data.txt');
     }
     $profiles = Profiles::find(array('conditions' => 'deleted=0 AND hidden=0'));
     $languages = Languages::find(array('conditions' => 'deleted=0 AND hidden=0'));
     $usergroups = Usergroups::find(array('conditions' => 'deleted=0 AND hidden=0'));
     $this->view->setVar('profiles', $profiles);
     $this->view->setVar('languages', $languages);
     $this->view->setVar('usergroups', $usergroups);
 }
Beispiel #4
0
 /**
  * Rebuilds the access list into a file
  *
  * @return \Phalcon\Acl\Adapter\Memory
  */
 public function rebuild()
 {
     $acl = new AclMemory();
     $acl->setDefaultAction(\Phalcon\Acl::DENY);
     // Register roles
     $profiles = Profiles::find('deleted = 0 AND hidden=0');
     foreach ($profiles as $profile) {
         $acl->addRole(new AclRole($profile->title));
     }
     foreach ($this->privateResources as $resource => $actions) {
         $acl->addResource(new AclResource($resource), $actions);
     }
     foreach ($this->publicResources as $resource => $actions) {
         $acl->addResource(new AclResource($resource), $actions);
     }
     // Grant acess to private area to role Users
     foreach ($profiles as $profile) {
         foreach ($profile->getPermissions() as $permission) {
             $resource = $permission->getResource();
             $acl->addResource(new AclResource($resource->title), $permission->resourceaction);
             $acl->allow($profile->title, $resource->title, $permission->resourceaction);
             foreach ($this->privateResources as $privateResources => $actions) {
                 $acl->allow($profile->title, $privateResources, $actions);
             }
             foreach ($this->publicResources as $publicresource => $actions) {
                 $acl->allow($profile->title, $publicresource, '*');
             }
         }
         // Always grant these permissions
     }
     $roles = array('guests' => new AclRole('Guests'));
     foreach ($roles as $role) {
         $acl->addRole($role);
     }
     foreach ($roles as $role) {
         foreach ($this->publicResources as $resource => $actions) {
             $acl->allow($role->getName(), $resource, '*');
         }
     }
     if (touch($this->config->application->appsDir . $this->filePath) && is_writable($this->config->application->appsDir . $this->filePath)) {
         file_put_contents($this->config->application->appsDir . $this->filePath, serialize($acl));
         // Store the ACL in APC
         if (function_exists('apc_store')) {
             apc_store('nltool-acl', $acl);
         }
     } else {
         $this->flash->error('The user does not have write permissions to create the ACL list at ' . $this->config->application->appsDir . $this->filePath);
     }
     return $acl;
 }