easyappointments/src/application/models/roles_model.php
alextselegidis@gmail.com a9f3a5cbdb * The user can now see the reason when a validation fails (during an add() procedure).
* Fixed service - provider connection in backend/calendar appointment modal.
* Backend notification messages on top are now disappearing after a few seconds (excluding cases where there are action items - the user must close the notification)
* The user will be able to select an existing customer from the backend/calendar appointment modal when creating a new appointment record.
* Started work on user privileges and on how the system performs according to that.
2013-09-26 16:06:57 +00:00

73 lines
No EOL
2.5 KiB
PHP

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Roles_Model extends CI_Model {
/**
* Class Constructor
*/
public function __construct() {
parent::__construct();
}
/**
* Get the record id of a particular role.
*
* @param string $role_slug The selected role slug. Slugs are
* defined in the "application/config/constants.php" file.
* @return int Returns the database id of the roles record.
*/
public function get_role_id($role_slug) {
return $this->db->get_where('ea_roles', array('slug' => $role_slug))->row()->id;
}
/**
* Returns all the privileges (bool values) of a role slug.
*
* The privilege numbers are converted into bool values of the four main actions (view,
* add, edit, delete). By checking each value you can know if the user is able to perform
* this action.
*
* @param string $slug The role slug.
* @return array Returns the privilege value.
*/
public function get_privileges($slug) {
$privileges = $this->db->get_where('ea_roles', array('slug' => $slug))->row_array();
unset($privileges['id'], $privileges['name'], $privileges['slug'], $privileges['is_admin']);
// Convert the numeric values to bool so that is easier to check whether a
// user has the required privileges for a specific action.
foreach($privileges as &$value) {
$privileges_number = $value;
$value = array(
'view' => false,
'add' => false,
'edit' => false,
'delete' => false
);
if ($privileges_number > 0) {
if (intval($privileges_number / PRIV_DELETE) == 1) {
$value['delete'] = TRUE;
$privileges_number -= PRIV_DELETE;
}
if (intval($privileges_number / PRIV_EDIT) == 1) {
$value['edit'] = TRUE;
$privileges_number -= PRIV_EDIT;
}
if (intval($privileges_number / PRIV_ADD) == 1) {
$value['add'] = TRUE;
$privileges_number -= PRIV_ADD;
}
$value['view'] = TRUE;
}
}
return $privileges;
}
}
/* End of file roles_model.php */
/* Location: ./application/models/roles_model.php */