Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 12
CRAP
0.00% covered (danger)
0.00%
0 / 86
SessionService
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 12
600.00
0.00% covered (danger)
0.00%
0 / 86
 __construct
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 1
 __clone
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 1
 getInstance
0.00% covered (danger)
0.00%
0 / 1
6.00
0.00% covered (danger)
0.00%
0 / 5
 staffLogout
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 12
 staffLogin
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 1
 checkIfStaffIsLoggedIn
0.00% covered (danger)
0.00%
0 / 1
20.00
0.00% covered (danger)
0.00%
0 / 5
 checkIfRolesAssignedForStaffInSessionAreCorrect
0.00% covered (danger)
0.00%
0 / 1
42.00
0.00% covered (danger)
0.00%
0 / 18
 setLastActivitySessionVariableToCurrentTime
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 2
 getStaffDetailsForLoggingIn
0.00% covered (danger)
0.00%
0 / 1
6.00
0.00% covered (danger)
0.00%
0 / 11
 getStaffDetailsByIdForLoggingIn
0.00% covered (danger)
0.00%
0 / 1
6.00
0.00% covered (danger)
0.00%
0 / 10
 studentLogout
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 11
 verifyMailId
0.00% covered (danger)
0.00%
0 / 1
6.00
0.00% covered (danger)
0.00%
0 / 9
<?php
namespace com\linways\core\ams\professional\service;
use com\linways\core\ams\professional\service\BaseService;
use com\linways\core\ams\professional\exception\ProfessionalException;
class SessionService extends BaseService {
    // /Condition 1 - Presence of a static member variable
    private static $_instance = null;
    
    // /Condition 2 - Locked down the constructor
    private function __construct()
    {}
    // Prevent any oustide instantiation of this class
    
    // /Condition 3 - Prevent any object or instance of that class to be cloned
    private function __clone()
    {}
    // Prevent any copy of this object
    
    // /Condition 4 - Have a single globally accessible static method
    public static function getInstance()
    {
        if (! is_object(self::$_instance)) // or if( is_null(self::$_instance) ) or if( self::$_instance == null )
            self::$_instance = new self();
            return self::$_instance;
    }
    /**
     * Clear logged in staff details
     */
    public function staffLogout()
    {
        unset($_SESSION['staffID']);
        unset($_SESSION['staffSess']);
        unset($_SESSION['passwdSess']);
        unset($_SESSION['deptID']);
        unset($_SESSION['staffName']);
        unset($_SESSION['notification']);
        unset($_SESSION['deptName']);
        unset($_SESSION['isHOD']);
        unset($_SESSION['isPrincipal']);
        unset($_SESSION['isDean']);
    }
    public function staffLogin(){
    }
    public static function checkIfStaffIsLoggedIn(){
        if (!isset($_SESSION['staffID']) || !isset($_SESSION['staffSess']) || !isset($_SESSION['passwdSess'])) {
            return false;
        }
        return true;
    }
    /**
     * This method verifies whether isHOD, isPrincipal given as
     * session variables is correct or not
     *
     * @return void
     */
    public function checkIfRolesAssignedForStaffInSessionAreCorrect(){
        $sql = "";
        $staffID = $_SESSION['staffID'];
        $staffSess = $_SESSION['staffSess'];
        $deptID = $_SESSION['deptID'];
        $passwdSess = $_SESSION['passwdSess'];
       
    
        $isHOD_condition = ($_SESSION['isHOD'] == 1) ? " isHOD > 0" : "isHOD = 0";
        $isPrincipal_condition = ($_SESSION['isPrincipal'] == 1) ? " isPrincipal > 0" : "isPrincipal = 0";
    
        $sql = "SELECT staffName FROM staffaccounts WHERE staffID = " . $staffID . " AND staffAccount = \"" . $staffSess . "\" AND staffPassword = \"" . $passwdSess . "\" AND deptID = " . $deptID . " AND " . $isPrincipal_condition . " AND " . $isHOD_condition . "";
        try{
            $staff = $this->executeQueryForObject($sql);
        }catch(\Exception $e){
            throw new ProfessionalException($e->getCode(), $e->getMessage());
        }
        if(!empty($staff) && !empty($staff->staffName)){
            return true;
        }
        return false;
    }
    /**
     * This is used for alerting user when the session is about to timeout.
     *
     * @return void
     */
    public static function setLastActivitySessionVariableToCurrentTime(){
        $_SESSION['lastActivity'] = time(); // This is used for alerting user when the session is about to timeout.
    }
    public function getStaffDetailsForLoggingIn($staffAccount, $staffPassword){
        $staffDetails = null;
        $staffAccount = $this->realEscapeString($staffAccount);
        $staffPassword = $this->realEscapeString($staffPassword);
        $sql = "SELECT t1.staffID, t1.staffAccount, t1.staffName, t1.deptID, t1.isHOD, t1.isPrincipal, t1.isResigned, t2.deptName, t1.staffLock , t1.staffGender FROM staffaccounts t1, department t2 WHERE t1.staffAccount=\"$staffAccount\" AND t1.staffPassword=\"$staffPassword\" and t1.deptID = t2.deptID";
        try{
            $staffDetails = $this->executeQueryForObject($sql);
        }catch(\Exception $e){
            throw new ProfessionalException($e->getCode(), $e->getMessage());
        }
        return $staffDetails;
    }
    public function getStaffDetailsByIdForLoggingIn($staffId){
        $staffId = $this->realEscapeString($staffId);
        $staffDetails = null;
        $sql = "SELECT staffAccount,staffPassword FROM staffaccounts WHERE staffID=\"$staffId\"";
        try{
            $staffDetails = $this->executeQueryForObject($sql);
        }catch(\Exception $e){
            throw new ProfessionalException($e->getCode(), $e->getMessage());
        }
        return $staffDetails;
    }
    /**
     * Clear logged in Student details
     */
    public function studentLogout()
    {
        unset($_SESSION['studentID']);
        unset($_SESSION['studentSess']);
        unset($_SESSION['deptID']);
        unset($_SESSION['passwdSess']); 
        unset($_SESSION['studentName']);
        unset($_SESSION['batchID']);
        unset($_SESSION['studentgender']);
        unset($_SESSION['deptName']);
        unset($_SESSION['isPassOut']);
    }
    /**
     * V4 to V3 redirection
     */
     public function verifyMailId($mailId){
        $mailId = $this->realEscapeString($mailId);
        $sql = "select staffAccount, staffPassword, staffEmail   from staffaccounts s where staffEmail = '$mailId'";
        try{
            $staffCredentials =  $this->executeQueryForList($sql);
        }catch(\Exception $e){
            throw new ProfessionalException($e->getCode(), $e->getMessage());
        }
        return $staffCredentials;
        
     }
}