|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/parasoffline.edukrypt.in/application/modules/admin/controllers/ |
Upload File : |
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Admin Panel management, includes:
* - Admin Users CRUD
* - Admin User Groups CRUD
* - Admin User Reset Password
* - Account Settings (for login user)
*/
class Panel extends Admin_Controller {
public function __construct()
{
parent::__construct();
$this->load->library('form_builder');
$this->mTitle = 'Admin Panel - ';
}
// Admin Users CRUD
public function admin_user()
{
$crud = $this->generate_crud('admin_users');
$crud->where('admin_group_id',2);
$crud->columns('username', 'first_name', 'last_name', 'active','salt','email','mobile','admin_group_id');
$crud->display_as('admin_group_id','Admin Type');
$crud->set_relation('admin_group_id', 'admin_groups', 'name');
$this->unset_crud_fields('ip_address', 'admin_group_id');
// cannot change Admin User groups once created
if ($crud->getState()=='list')
{
$crud->set_relation_n_n('groups', 'admin_users_groups', 'admin_groups', 'user_id', 'group_id', 'name');
}
// only webmaster can reset Admin User password
if ( $this->ion_auth->in_group(array('webmaster', 'admin')) )
{
$crud->add_action('Reset Password', '', 'admin/panel/admin_user_reset_password', 'fa fa-repeat');
}
// disable direct create / delete Admin User
$crud->unset_add();
//$crud->unset_delete();
$this->mTitle.= 'Admin Users';
$this->render_crud();
}
// Create Admin User
public function admin_user_create()
{
// (optional) only top-level admin user groups can create Admin User
//$this->verify_auth(array('webmaster'));
$form = $this->form_builder->create_form();
if ($form->validate())
{
// passed validation
$username = $this->input->post('username');
$email = $this->input->post('email');
//$salt = $this->input->post('salt');
$password = $this->input->post('password');
$additional_data = array(
'first_name' => $this->input->post('first_name'),
'last_name' => $this->input->post('last_name'),
'salt' => $this->input->post('salt'),
);
$groups = $this->input->post('groups');
// create user (default group as "members")
$user = $this->ion_auth->register($username, $password, $email, $additional_data, $groups);
if ($user)
{
// success
$messages = $this->ion_auth->messages();
$this->system_message->set_success($messages);
}
else
{
// failed
$errors = $this->ion_auth->errors();
$this->system_message->set_error($errors);
}
refresh();
}
$groups = $this->ion_auth->groups()->result();
unset($groups[0]); // disable creation of "webmaster" account
$this->mViewData['groups'] = $groups;
$this->mTitle.= 'Create Admin User';
$this->mViewData['form'] = $form;
$this->render('panel/admin_user_create');
}
// Admin User Groups CRUD
public function admin_user_group()
{
$crud = $this->generate_crud('admin_groups');
$this->mTitle.= 'Admin User Groups';
$this->render_crud();
}
// Admin User Reset password
public function admin_user_reset_password($user_id)
{
// only top-level users can reset Admin User passwords
$this->verify_auth(array('webmaster'));
$form = $this->form_builder->create_form();
if ($form->validate())
{
// pass validation
$data = array('password' => $this->input->post('new_password'));
if ($this->ion_auth->update($user_id, $data))
{
$messages = $this->ion_auth->messages();
$this->system_message->set_success($messages);
}
else
{
$errors = $this->ion_auth->errors();
$this->system_message->set_error($errors);
}
refresh();
}
$this->load->model('admin_user_model', 'admin_users');
$target = $this->admin_users->get($user_id);
$this->mViewData['target'] = $target;
$this->mViewData['form'] = $form;
$this->mTitle.= 'Reset Admin User Password';
$this->render('panel/admin_user_reset_password');
}
// Account Settings
public function account()
{
// Update Info form
$form1 = $this->form_builder->create_form('admin/panel/account_update_info',true);
$form1->set_rule_group('panel/account_update_info');
$this->mViewData['form1'] = $form1;
// Change Password form
$form2 = $this->form_builder->create_form('admin/panel/account_change_password');
$form1->set_rule_group('panel/account_change_password');
$this->mViewData['form2'] = $form2;
$this->mTitle = "Account Settings";
$this->render('panel/account');
}
// Submission of Update Info form
public function account_update_info()
{
$data = $this->input->post();
if(!empty($_FILES["userfile"]["name"]))
{
$data['userfile'] = 'assets/uploads/profile/'.$_FILES["userfile"]["name"];
}
else
{
//$data['userfile'] = 'assets/uploads/profile/demo.png';
}
if ($this->ion_auth->update($this->mUser->id, $data))
{
//var_dump($_FILES);exit;
$config['upload_path'] = './assets/uploads/profile';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload())
{
$messages = '<p>Upload Profile Picture Error.</p>';
$this->system_message->set_error($messages);
}
else
{
$messages = $this->ion_auth->messages();
$this->system_message->set_success($messages);
}
}
else
{
$errors = $this->ion_auth->errors();
$this->system_message->set_error($errors);
}
redirect('admin/panel/account');
}
// Submission of Change Password form
public function account_change_password()
{
$data = array('password' => $this->input->post('new_password'));
if ($this->ion_auth->update($this->mUser->id, $data))
{
$messages = $this->ion_auth->messages();
$this->system_message->set_success($messages);
}
else
{
$errors = $this->ion_auth->errors();
$this->system_message->set_error($errors);
}
redirect('admin/panel/account');
}
/**
* Logout user
*/
public function logout()
{
$this->ion_auth->logout();
redirect('admin/login');
}
}