nhance/app/Controllers/UserController.php

147 lines
4.9 KiB
PHP

<?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()
{
$headerData['page_name'] = 'User List';
$model = new UserModel();
$this->myLogger->logme('error','User list function called');
$data['UserList'] = $model->where('is_active', 1)->orderBy('id', 'DESC')->findAll();
echo view('layout/header', $headerData);
echo view('AddUser');
echo view('UserList', $data);
echo view('layout/footer');
}
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{
//else do user insert operation
$File = file_Upload($this->request->getFile('profile'));
$userData = $this->request->getPost();
if(!empty($File)){
$userData['profile'] = $File;
}
// Inserting data into the 'users' table
$userData['created_by'] = get_session_userid();
unset($userData['team']);
$insert = $this->userModel->insert($userData);
if($insert){
$teamData['user_id'] = $insert ;
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 getuser($id = null)
{
$roleData = $this->roleModel->select('id, role')->findAll();
$teamData = $this->teamModel->select('id, name')->findAll();
$userTeamData = $this->userTeamsModel->where('user_id', $id)->findAll();
$data = $this->userModel->getUserById($id);
if($data){
echo json_encode(array("status" => true , 'data' => $data, 'roleData' => $roleData, 'teamData' => $teamData, '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');
$imageDetails = $this->userModel->find($id);
$File = file_Upload($this->request->getFile('profile'), (isset($imageDetails['profile']) ? $imageDetails['profile'] : null));
$userData = $this->request->getPost();
if(!empty($File)){
$userData['profile'] = $File;
}
// Update data in the 'users' table based on the $id
$userData['updated_by'] = get_session_userid();
$update = $this->userModel->update($id, $userData);
if($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)
{
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,));
}
}