Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Administrator tool for managing role permissions
- *
- * @author Patrick Tinsley
- */
- class Administer_permissions extends MY_Controller
- {
- function Administer_permissions()
- {
- parent::MY_Controller();
- // Load Libraries
- $this->load->library('Form_validation');
- // Load Helpers
- $this->load->helper('form');
- // Load modules
- $this->load->model('dx_auth/permissions', 'permissions');
- $this->load->model('dx_auth/roles', 'roles');
- }
- function index()
- {
- //if they don't have permission, kick them back
- if ( ! $this->dx_auth->get_permission_value('administer_permissions'))
- {
- $data['refresh']['timer'] = 3;
- $data['refresh']['url'] = '';
- $data['page_content'] = 'You do not have permission to edit permissions.';
- $this->load->view('plain_view', $data);
- return;
- }
- // Default role_id that will be showed
- $role_id = $this->input->post('role') ? $this->input->post('role') : 1;
- /* Get post input and apply it to database */
- // If button save pressed
- if ($this->input->post('save'))
- {
- // Convert back text area into array to be stored in permission data
- $allowed_uris = explode("\n", $this->input->post('allowed_uris'));
- // Remove white space if available
- array_map('trim', $allowed_uris);
- // Get role_id permission data first.
- // So the previously set permission array key won't be
- // overwritten with new array with key $key only,
- // when calling set_permission_data later.
- $permission_data = $this->permissions->get_permission_data($this->input->post('role'));
- // Set value in permission data array
- // User Permissions
- $permission_data['administer_users'] = $this->input->post('administer_users');
- $permission_data['add_users'] = $this->input->post('add_users');
- $permission_data['delete_users'] = $this->input->post('delete_users');
- $permission_data['edit_users'] = $this->input->post('edit_users');
- // Project Permissions
- $permission_data['administer_projects'] = $this->input->post('administer_projects');
- $permission_data['create_project'] = $this->input->post('create_project');
- $permission_data['delete_project'] = $this->input->post('delete_project');
- $permission_data['upload_project_file'] = $this->input->post('upload_project_file');
- $permission_data['map_users_to_project'] = $this->input->post('map_users_to_project');
- $permission_data['administer_scos'] = $this->input->post('administer_scos');
- // Permissions permissions, lol
- $permission_data['administer_permissions'] = $this->input->post('administer_permissions');
- $permission_data['uri'] = $allowed_uris;
- // Set URI permission data
- // IMPORTANT: uri permission data, is saved using 'uri' as key.
- // So this key name is preserved, if you want to use custom permission use other key.
- $this->permissions->set_permission_value($role_id, 'uri', $allowed_uris);
- // Set permission data for role_id
- $this->permissions->set_permission_data($role_id, $permission_data);
- }
- /* Showing page to user */
- // Get all role from database
- $data['roles'] = $this->roles->get_all()->result();
- // Get permissions
- $data['administer_users'] = $this->permissions->get_permission_value($role_id,
- 'administer_users');
- $data['add_users'] = $this->permissions->get_permission_value($role_id,
- 'add_users');
- $data['delete_users'] = $this->permissions->get_permission_value($role_id,
- 'delete_users');
- $data['edit_users'] = $this->permissions->get_permission_value($role_id,
- 'edit_users');
- $data['administer_projects'] = $this->permissions->get_permission_value($role_id,
- 'administer_projects');
- $data['create_project'] = $this->permissions->get_permission_value($role_id,
- 'create_project');
- $data['delete_project'] = $this->permissions->get_permission_value($role_id,
- 'delete_project');
- $data['map_users_to_project'] = $this->permissions->get_permission_value($role_id,
- 'map_users_to_project');
- $data['administer_scos'] = $this->permissions->get_permission_value($role_id, 'administer_scos');
- $data['administer_permissions'] = $this->permissions->get_permission_value($role_id,
- 'administer_permissions');
- $data['upload_project_file'] = $this->permissions->get_permission_value($role_id,
- 'upload_project_file');
- // Get allowed uri permissions
- $data['allowed_uris'] = $this->permissions->get_permission_value($role_id,
- 'uri');
- // Load view
- $data['page_content'] = $this->load->view('backend/custom_permissions', $data, TRUE);
- $data['page_content_title'] = 'Administer Permissions';
- $this->load->view('main_view', $data);
- }
- }
Add Comment
Please, Sign In to add comment