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); } }
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); }
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); }
/** * 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); }
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(); }
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; }
<?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]));
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); }