/home/desid573/public_html/ims2/application/controllers
NameSizeModeActions
Administrators.php149860644editdlrm
Audit.php5150644editdlrm
Dashboard.php62360644editdlrm
Employees.php5270644editdlrm
Eventlog.php5280644editdlrm
Home.php47920644editdlrm
index.html1310644editdlrm
Items.php176340644editdlrm
Logout.php4000644editdlrm
Misc.php29710644editdlrm
Reports.php12020644editdlrm
Search.php63550644editdlrm
Test.php4810644editdlrm
Transactions.php221500644editdlrm
Edit: /home/desid573/public_html/ims2/application/controllers/Administrators.php (14986B)
* @date 31st Jan, 2016 */ class Administrators extends CI_Controller { public function __construct() { parent::__construct(); $this->genlib->checkLogin(); $this->genlib->superOnly(); $this->load->model(['admin']); } /* ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** */ public function index() { $data['pageContent'] = $this->load->view('admin/admin', '', TRUE); $data['pageTitle'] = "Administrators"; $this->load->view('main', $data); } /* ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** */ /** * lac_ = "Load all administrators" */ public function laad_() { //set the sort order $orderBy = $this->input->get('orderBy', TRUE) ? $this->input->get('orderBy', TRUE) : "first_name"; $orderFormat = $this->input->get('orderFormat', TRUE) ? $this->input->get('orderFormat', TRUE) : "ASC"; //count the total administrators in db (excluding the currently logged in admin) $totalAdministrators = count($this->admin->getAll()); $this->load->library('pagination'); $pageNumber = $this->uri->segment(3, 0); //set page number to zero if the page number is not set in the third segment of uri $limit = $this->input->get('limit', TRUE) ? $this->input->get('limit', TRUE) : 10; //show $limit per page $start = $pageNumber == 0 ? 0 : ($pageNumber - 1) * $limit; //start from 0 if pageNumber is 0, else start from the next iteration //call setPaginationConfig($totalRows, $urlToCall, $limit, $attributes) in genlib to configure pagination $config = $this->genlib->setPaginationConfig($totalAdministrators, "administrators/laad_", $limit, ['class' => 'lnp']); $this->pagination->initialize($config); //initialize the library class //get all customers from db $data['allAdministrators'] = $this->admin->getAll($orderBy, $orderFormat, $start, $limit); $data['range'] = $totalAdministrators > 0 ? ($start + 1) . "-" . ($start + count($data['allAdministrators'])) . " of " . $totalAdministrators : ""; $data['links'] = $this->pagination->create_links(); //page links $data['sn'] = $start + 1; $json['adminTable'] = $this->load->view('admin/adminlist', $data, TRUE); //get view with populated customers table $this->output->set_content_type('application/json')->set_output(json_encode($json)); } /* ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** */ /** * To add new admin */ public function add() { $this->genlib->ajaxOnly(); $this->load->library('form_validation'); $this->form_validation->set_error_delimiters('', ''); $this->form_validation->set_rules('firstName', 'First name', ['required', 'trim', 'max_length[20]', 'strtolower', 'ucfirst'], ['required' => "required"]); $this->form_validation->set_rules('lastName', 'Last name', ['required', 'trim', 'max_length[20]', 'strtolower', 'ucfirst'], ['required' => "required"]); $this->form_validation->set_rules( 'email', 'E-mail', ['trim', 'required', 'valid_email', 'is_unique[admin.email]', 'strtolower'], ['required' => "required", 'is_unique' => 'E-mail exists'] ); $this->form_validation->set_rules('role', 'Role', ['required'], ['required' => "required"]); $this->form_validation->set_rules( 'mobile1', 'Phone number', ['required', 'trim', 'numeric', 'max_length[15]', 'min_length[11]', 'is_unique[admin.mobile1]'], ['required' => "required", 'is_unique' => "This number is already attached to an admin"] ); $this->form_validation->set_rules('mobile2', 'Other number', ['trim', 'numeric', 'max_length[15]', 'min_length[11]']); $this->form_validation->set_rules('passwordOrig', 'Password', ['required', 'min_length[8]'], ['required' => "Enter password"]); $this->form_validation->set_rules('passwordDup', 'Password Confirmation', ['required', 'matches[passwordOrig]'], ['required' => "Please retype password"]); if ($this->form_validation->run() !== FALSE) { /** * insert info into db * function header: add($f_name, $l_name, $email, $password, $role, $mobile1, $mobile2) */ $hashedPassword = password_hash(set_value('passwordOrig'), PASSWORD_BCRYPT); $inserted = $this->admin->add( set_value('firstName'), set_value('lastName'), set_value('email'), $hashedPassword, set_value('role'), set_value('mobile1'), set_value('mobile2') ); $json = $inserted ? ['status' => 1, 'msg' => "Admin account successfully created"] : ['status' => 0, 'msg' => "Oops! Unexpected server error! Pls contact administrator for help. Sorry for the embarrassment"]; } else { //return all error messages $json = $this->form_validation->error_array(); //get an array of all errors $json['msg'] = "One or more required fields are empty or not correctly filled"; $json['status'] = 0; } $this->output->set_content_type('application/json')->set_output(json_encode($json)); } /* ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** */ /** * */ public function update() { $this->genlib->ajaxOnly(); $this->load->library('form_validation'); $this->form_validation->set_error_delimiters('', ''); $this->form_validation->set_rules('firstName', 'First name', ['required', 'trim', 'max_length[20]'], ['required' => "required"]); $this->form_validation->set_rules('lastName', 'Last name', ['required', 'trim', 'max_length[20]'], ['required' => "required"]); $this->form_validation->set_rules('mobile1', 'Phone number', [ 'required', 'trim', 'numeric', 'max_length[15]', 'min_length[11]', 'callback_crosscheckMobile[' . $this->input->post('adminId', TRUE) . ']' ], ['required' => "required"]); $this->form_validation->set_rules('mobile2', 'Other number', ['trim', 'numeric', 'max_length[15]', 'min_length[11]']); $this->form_validation->set_rules('email', 'E-mail', ['required', 'trim', 'valid_email', 'callback_crosscheckEmail[' . $this->input->post('adminId', TRUE) . ']']); $this->form_validation->set_rules('role', 'Role', ['required', 'trim'], ['required' => "required"]); if ($this->form_validation->run() !== FALSE) { /** * update info in db * function header: update($admin_id, $first_name, $last_name, $email, $mobile1, $mobile2, $role) */ $admin_id = $this->input->post('adminId', TRUE); $updated = $this->admin->update( $admin_id, set_value('firstName'), set_value('lastName'), set_value('email'), set_value('mobile1'), set_value('mobile2'), set_value('role') ); $json = $updated ? ['status' => 1, 'msg' => "Admin info successfully updated"] : ['status' => 0, 'msg' => "Oops! Unexpected server error! Pls contact administrator for help. Sorry for the embarrassment"]; } else { //return all error messages $json = $this->form_validation->error_array(); //get an array of all errors $json['msg'] = "One or more required fields are empty or not correctly filled"; $json['status'] = 0; } $this->output->set_content_type('application/json')->set_output(json_encode($json)); } /* ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** */ public function suspend() { $this->genlib->ajaxOnly(); $admin_id = $this->input->post('_aId'); $new_status = $this->genmod->gettablecol('admin', 'account_status', 'id', $admin_id) == 1 ? 0 : 1; $done = $this->admin->suspend($admin_id, $new_status); $json['status'] = $done ? 1 : 0; $json['_ns'] = $new_status; $json['_aId'] = $admin_id; $this->output->set_content_type('application/json')->set_output(json_encode($json)); } /* ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** */ public function delete() { $this->genlib->ajaxOnly(); $admin_id = $this->input->post('_aId'); $new_value = $this->genmod->gettablecol('admin', 'deleted', 'id', $admin_id) == 1 ? 0 : 1; $done = $this->admin->delete($admin_id, $new_value); $json['status'] = $done ? 1 : 0; $json['_nv'] = $new_value; $json['_aId'] = $admin_id; $this->output->set_content_type('application/json')->set_output(json_encode($json)); } /* ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** */ /** * Used as a callback while updating admin info to ensure 'mobile1' field does not contain a number already used by another admin * @param type $mobile_number * @param type $admin_id */ public function crosscheckMobile($mobile_number, $admin_id) { //check db to ensure number was previously used for admin with $admin_id i.e. the same admin we're updating his details $adminWithNum = $this->genmod->getTableCol('admin', 'id', 'mobile1', $mobile_number); if ($adminWithNum == $admin_id) { //used for same admin. All is well. return TRUE; } else { $this->form_validation->set_message('crosscheckMobile', 'This number is already attached to an administrator'); return FALSE; } } /* ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** ******************************************************************************************************************************** */ /** * Used as a callback while updating admin info to ensure 'email' field does not contain an email already used by another admin * @param type $email * @param type $admin_id */ public function crosscheckEmail($email, $admin_id) { //check db to ensure email was previously used for admin with $admin_id i.e. the same admin we're updating his details $adminWithEmail = $this->genmod->getTableCol('admin', 'id', 'email', $email); if ($adminWithEmail == $admin_id) { //used for same admin. All is well. return TRUE; } else { $this->form_validation->set_message('crosscheckEmail', 'This email is already attached to an administrator'); return FALSE; } } }