205 lines
7.1 KiB
PHP
Executable File
205 lines
7.1 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use CodeIgniter\HTTP\IncomingRequest;
|
|
use CodeIgniter\HTTP\RequestInterface;
|
|
use CodeIgniter\HTTP\ResponseInterface;
|
|
use Psr\Log\LoggerInterface;
|
|
|
|
|
|
use App\Models\UserModel;
|
|
use App\Models\RoleModel;
|
|
use App\Models\TeamModel;
|
|
use App\Models\UserTeamsModel;
|
|
|
|
|
|
class UserController extends AdminController
|
|
{
|
|
protected $myLogger;
|
|
protected $userModel;
|
|
protected $roleModel;
|
|
protected $teamModel;
|
|
protected $userTeamsModel;
|
|
|
|
public function __construct()
|
|
{
|
|
set_session_context('User');
|
|
$this->myLogger = \Config\Services::mylogger();
|
|
|
|
$this->userModel = new UserModel();
|
|
$this->roleModel = new RoleModel();
|
|
$this->teamModel = new TeamModel();
|
|
$this->userTeamsModel = new UserTeamsModel();
|
|
}
|
|
|
|
public function list()
|
|
{
|
|
$data['page_name'] = 'User';
|
|
$this->myLogger->logme('error','User list function called');
|
|
$data['UserList'] = $this->userModel->getUserList();
|
|
// echo '<pre>';
|
|
// print_r($data); die;
|
|
$data['roleData'] = $this->roleModel->select('id, role')->findAll();
|
|
$data['teamData'] = $this->teamModel->select('id, name')->findAll();
|
|
$this->loadLayout('UserList', $data);
|
|
}
|
|
|
|
|
|
public function create()
|
|
{
|
|
$this->myLogger->logme('error', 'User create function called');
|
|
$teams = $this->request->getPost('team');
|
|
|
|
//if this is get method return to user creation page
|
|
if (!$this->request->getPost()) {
|
|
return redirect()->to(base_url('/user/list'));
|
|
} else {
|
|
|
|
$userData = $this->request->getPost();
|
|
$userData['created_by'] = get_session_userid();
|
|
$temp_team = $userData['team'];
|
|
unset($userData['team']);
|
|
$insert = $this->userModel->insert($userData);
|
|
|
|
if ($insert) {
|
|
|
|
if ($userData['role'] == 3) {
|
|
|
|
$db = \Config\Database::connect();
|
|
$tableName = 'hdz_staff';
|
|
$admin = 1;
|
|
|
|
$password = '12345678'; //Default password
|
|
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
|
|
|
|
foreach ($temp_team as $key => $value) {
|
|
$team = $this->teamModel->where('id', $value)->first();
|
|
if ($team['name'] == 'Claims') {
|
|
$hdz_staff = [
|
|
'emp_code' => $userData['emp_code'],
|
|
'fullname' => $userData['first_name'],
|
|
'username' => strtolower($userData['first_name']),
|
|
'email' => $userData['email'],
|
|
'admin' => $admin,
|
|
'registration' => time(),
|
|
'password' => $hashedPassword,
|
|
'active' => 1,
|
|
];
|
|
|
|
$db->table($tableName)->insert($hdz_staff);
|
|
}
|
|
}
|
|
|
|
$teamData['user_id'] = $insert;
|
|
foreach ($teams as $value) {
|
|
$teamData['team_id'] = $value;
|
|
$teamData['created_by'] = get_session_userid();
|
|
$this->userTeamsModel->insert($teamData);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$this->myLogger->logme('error', 'User create Successfully created by id {data}', ['data' => get_session_userid()]);
|
|
return redirect()->to(base_url('/user/list'));
|
|
}
|
|
|
|
public function getuser($id = null)
|
|
{
|
|
$userTeamData = $this->userTeamsModel->where('user_id', $id)->findAll();
|
|
$data = $this->userModel->getUserById($id);
|
|
if($data){
|
|
echo json_encode(array("status" => true , 'data' => $data, 'userTeamData' => $userTeamData));
|
|
}else{
|
|
echo json_encode(array("status" => false));
|
|
}
|
|
}
|
|
|
|
public function edit()
|
|
{
|
|
$teams = $this->request->getPost('team');
|
|
|
|
if (!$this->request->getPost()) {
|
|
return redirect()->to(base_url('/user/list'));
|
|
} else {
|
|
$id = $this->request->getPost('PrimaryKey');
|
|
$userData = $this->request->getPost();
|
|
unset($userData['csrf_test_name']);
|
|
unset($userData['PrimaryKey']);
|
|
|
|
// Update data in the 'users' table based on the $id
|
|
$userData['updated_by'] = get_session_userid();
|
|
$update = $this->userModel->where('id', $id)->set($userData)->update();
|
|
|
|
if ($update) {
|
|
|
|
if ($userData['role'] == 3) {
|
|
|
|
$db = \Config\Database::connect();
|
|
$tableName = 'hdz_staff';
|
|
$admin = 1;
|
|
|
|
foreach ($userData['team'] as $key => $value) {
|
|
if ($value == 2) {
|
|
|
|
$hdz_staff = [
|
|
'emp_code' => $userData['emp_code'],
|
|
'fullname' => $userData['first_name'],
|
|
'username' => strtolower($userData['first_name']),
|
|
'email' => $userData['email'],
|
|
'admin' => $admin,
|
|
'registration' => time(),
|
|
'active' => 1,
|
|
];
|
|
|
|
|
|
$db->table($tableName)->where('emp_code', $userData['emp_code'])
|
|
->where('email', $userData['email'])
|
|
->set($hdz_staff)
|
|
->update();
|
|
}
|
|
}
|
|
|
|
$this->userTeamsModel->where('user_id', $id)->delete();
|
|
|
|
if ($teams) {
|
|
$teamData['user_id'] = $id;
|
|
foreach ($teams as $value) {
|
|
$teamData['team_id'] = $value;
|
|
$teamData['created_by'] = get_session_userid();
|
|
$this->userTeamsModel->insert($teamData);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return redirect()->to(base_url('/user/list'));
|
|
}
|
|
}
|
|
|
|
public function deactive($id = null)
|
|
{
|
|
$model = new UserModel();
|
|
$deactive = $model->where('id', $id)->set(['is_active' => 0])->update();
|
|
if($deactive)
|
|
{
|
|
// $db = \Config\Database::connect();
|
|
// $tableName = 'hdz_staff';
|
|
|
|
// $db->table($tableName)->insert($hdz_staff);
|
|
|
|
|
|
echo json_encode(array("status" => true));
|
|
}else{
|
|
echo json_encode(array("status" => false));
|
|
}
|
|
}
|
|
|
|
public function getRolesAndTeams()
|
|
{
|
|
$roleData = $this->roleModel->select('id, role')->findAll();
|
|
$teamData = $this->teamModel->select('id, name')->findAll();
|
|
echo json_encode(array("status" => true , 'roleData' => $roleData, 'teamData' => $teamData,));
|
|
}
|
|
}
|