Пример #1
0
 public function put_index($id, $username, $email, $password = null, $id_group = null)
 {
     // Force to edit the current user if they don't have the proper permissions
     if (!$this->_currentUser->hasPermission(Model_Groups::PERM_MANAGE_USERS)) {
         $id = $this->_currentUser->getId();
     }
     $user = Model_Users::getById($id);
     $propsUpdate = ['username' => $username, 'email' => $email];
     if ($id_group !== null && !empty($id_group) && $this->_currentUser->hasPermission(Model_Groups::PERM_MANAGE_USERS)) {
         $group = Model_Groups::getById($id_group);
         $propsUpdate['usergroup'] = $group;
     } else {
         $user->load('usergroup');
     }
     if ($password !== null && !empty($password)) {
         $propsUpdate['password'] = Library_String::hash(trim($password));
     }
     $user->setProps($propsUpdate);
     Model_Users::update($user);
     // Disconnect the user if they changed their own profile
     if ($id === $this->_currentUser->getId()) {
         $this->response->redirect('../login/out', 200);
     } else {
         $this->response->redirect('../users', 200);
     }
 }
Пример #2
0
 public function SelectAdminRole($name, $value, $attribs = false)
 {
     $objGroups = new Model_Groups();
     $rsGroups = $objGroups->fetchAll(null, 'level');
     $currentUser = Digitalus_Auth::getIdentity();
     //    	$group_admin_system = Model_Parameters::getParam('group_admin_system');
     $group_admin_system = Model_User::SUPERUSER_ROLE;
     foreach ($rsGroups as $rowGroup) {
         if ($rowGroup->role == $group_admin_system && $currentUser->role != $group_admin_system) {
             continue;
         }
         $data[$rowGroup->group_id] = $rowGroup->group_name;
     }
     //        $data['admin']      = $this->view->getTranslation('Site Administrator');
     //        $data['superadmin'] = $this->view->getTranslation('Super Administrator');
     return $this->view->formSelect($name, $value, $attribs, $data);
 }
Пример #3
0
 public static function getCurrentUser()
 {
     $user = Library_Session::get('currentUser');
     if (empty($user)) {
         $group = Model_Groups::getById(self::DEFAULT_GROUP_ID);
         return new Model_Users(self::ANONYMOUS_USERNAME, null, null, $group);
     }
     return unserialize($user);
 }
Пример #4
0
 /**
  * load the acl resources and set up permissions
  *
  */
 public function __construct()
 {
     $objGroups = new Model_Groups();
     $rsGroups = $objGroups->fetchAll(null, 'level');
     foreach ($rsGroups as $rowGroup) {
         $this->addRole(new Zend_Acl_Role($rowGroup->role));
     }
     //        $this->addRole(new Zend_Acl_Role('admin'));
     //        $this->addRole(new Zend_Acl_Role('superadmin'));
     $this->loadResources();
     $this->loadCurrentUsersPermissions();
     //load common resources
     $this->add(new Zend_Acl_Resource('admin_auth'));
     //everybody
     $this->allow(null, 'admin_auth');
     //grant the super admin access to everything
     //        $this->allow(Model_Parameters::getParam('group_admin_system'));
     $this->allow(Model_User::SUPERUSER_ROLE);
 }
Пример #5
0
 public function post_index($username, $email, $id_group)
 {
     $checkExisting = Model_Users::createRequest()->where('username = ? OR email = ?', [$username, $email])->exec();
     if (!$checkExisting->isEmpty()) {
         $this->response->error('Un utilisateur avec ce pseudo ou cette adresse existe déjà.', 403);
         return;
     }
     $password = Library_String::generatePassword();
     $group = Model_Groups::getById($id_group);
     Model_Users::add(new Model_Users($username, $email, $password, $group));
     $email_content = \Eliya\Tpl::get('emails/register', ['username' => $username, 'email' => $email, 'password' => $password, 'login_url' => BASE_URL . 'admin/login']);
     Library_Email::send($email, 'Bienvenue sur Le Chomp Enchaîné !', $email_content);
     $this->get_index();
 }
Пример #6
0
 public function updatePermissionFromGroup($user_id)
 {
     $user = $this->find($user_id)->current();
     $objGroups = new Model_Groups();
     $rowGroup = $objGroups->find($user->group_id)->current();
     $user->role = $rowGroup->role;
     $user->acl_resources = $rowGroup->acl_resources;
     $user->save();
     return $user;
 }
Пример #7
0
<?php

// Require framework core
require_once '../../system/Core.class.php';
// Init core
\Eliya\Core::init();
// Init DB
require_once '../vendors/EntityPHP/src/EntityPHP.php';
$sql = \Eliya\Config('main')->SQL;
\EntityPHP\Core::connectToDB($sql['HOST'], $sql['USER'], $sql['PASSWORD'], $sql['DATABASE']);
// Include all models files
\Eliya\Core::requireDirContent('../models');
// Generate the dabatase based on our models
\EntityPHP\Core::generateDatabase();
Model_Categories::add(new Model_Categories('Billet d\'humeur'));
Model_Categories::add(new Model_Categories('Quoi d\'neuf Mario ?'));
Model_Categories::add(new Model_Categories('Analyse de personnage'));
Model_Categories::add(new Model_Categories('L\'entreprise Nintendo'));
Model_Categories::add(new Model_Categories('Découverte de jeu'));
Model_Categories::add(new Model_Categories('Anthologie musicale'));
Model_Categories::add(new Model_Categories('Produits dérivés'));
Model_Groups::add(new Model_Groups(['group_name' => 'Anonymes', 'can_manage_categories' => 0, 'can_manage_users' => 0, 'can_write_articles' => 0, 'can_edit_other_articles' => 0, 'can_publish_other_articles' => 0, 'can_read_unpublished_articles' => 0]));
$group_redactors = Model_Groups::add(new Model_Groups(['group_name' => 'Rédacteurs', 'can_manage_categories' => 0, 'can_manage_users' => 0, 'can_write_articles' => 1, 'can_edit_other_articles' => 0, 'can_publish_other_articles' => 0, 'can_read_unpublished_articles' => 0]));
Model_Groups::add(new Model_Groups(['group_name' => 'Rédacteurs en chef', 'can_manage_categories' => 1, 'can_manage_users' => 0, 'can_write_articles' => 1, 'can_edit_other_articles' => 0, 'can_publish_other_articles' => 1, 'can_read_unpublished_articles' => 1]));
$group_admin = Model_Groups::add(new Model_Groups(['group_name' => 'Admins', 'can_manage_categories' => 1, 'can_manage_users' => 1, 'can_write_articles' => 1, 'can_edit_other_articles' => 1, 'can_publish_other_articles' => 1, 'can_read_unpublished_articles' => 1]));
Пример #8
0
 public function updatePermissionsAction()
 {
     if (Digitalus_Filter_Post::has('update_permissions')) {
         //update the users permissions
         $objGroups = new Model_Groups();
         $resources = Digitalus_Filter_Post::raw('acl_resources');
         $group_id = Digitalus_Filter_Post::int('group_id');
         $rowGroup = $objGroups->find($group_id)->current();
         $rowGroup->updateAclResources($resources);
     }
     $this->_redirect($this->_currentControllerUrl);
 }