126 lines
3.3 KiB
PHP
126 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace BRSystems\Core\Sys\sysUsers\inc;
|
|
|
|
use BRSystems\Core\Library\cDb\cDb;
|
|
|
|
/**
|
|
* sysUsers Module
|
|
*
|
|
* @category sysUsers Module
|
|
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
|
|
* @since Version 2.0
|
|
*/
|
|
class sysUsersModule
|
|
{
|
|
public $oDb;
|
|
|
|
/**
|
|
* Class constructor
|
|
*/
|
|
public function __construct() {
|
|
|
|
$this->oDb = cDb::getInstance(DB_HOST, DB_USR, DB_PWD, DB_PORT, DB_NAME);
|
|
|
|
}
|
|
|
|
/**
|
|
* Function to load sys user config
|
|
*
|
|
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
|
|
* @category sysUsers Module
|
|
* @param array $userId - user id
|
|
* @return array of data
|
|
* @version 1.1
|
|
*/
|
|
public function getUserCfg($userId){
|
|
|
|
return $this->oDb->_querySelectOne('site_users', array('user_cfg'), array('id' => $userId));
|
|
|
|
}
|
|
|
|
/**
|
|
* Function to update user data by id
|
|
*
|
|
* @category sysUsers Module
|
|
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
|
|
* @param int $id - user id
|
|
* @param array $update - user data array to update
|
|
* @return bool
|
|
*/
|
|
public function updateUserDataById($id, $update){
|
|
|
|
return $this->oDb->_queryUpdate('site_users', $update, array('id' => $id));
|
|
|
|
}
|
|
|
|
/**
|
|
* Function to load user permissions
|
|
*
|
|
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
|
|
* @category sysUsers Module
|
|
* @param int $userId - user id
|
|
* @return array
|
|
* @version 1.1
|
|
*/
|
|
public function loadUserPermissionArray($userId){
|
|
|
|
$sSql = "
|
|
SELECT
|
|
DISTINCT userp.permissions_id as pId,
|
|
sitep.p_name as sId
|
|
FROM
|
|
(
|
|
SELECT
|
|
sp.permissions_id
|
|
FROM
|
|
site_users_permissions sp
|
|
WHERE
|
|
sp.user_id = '{$userId}'
|
|
AND sp.groups_id = '0'
|
|
UNION ALL
|
|
SELECT
|
|
sg.permissions_id
|
|
FROM
|
|
site_users_permissions sp
|
|
LEFT JOIN site_users_permissions sg ON
|
|
sg.groups_id = sp.groups_id
|
|
AND sg.user_id = 0
|
|
LEFT JOIN site_users_groups sug ON
|
|
sug.id = sp.groups_id
|
|
WHERE
|
|
sp.user_id = '{$userId}'
|
|
AND sp.groups_id <> '0'
|
|
AND sug.group_blocked = '0'
|
|
) userp
|
|
LEFT JOIN site_permissions sitep ON
|
|
userp.permissions_id = sitep.id
|
|
WHERE
|
|
sitep.p_blocked = '0'
|
|
";
|
|
|
|
$this->oDb->query($sSql);
|
|
return $this->oDb->getKeyValBasedArray('pId', 'sId');
|
|
}
|
|
|
|
/**
|
|
* Function to save user cfg
|
|
*
|
|
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
|
|
* @category sysUsers Module
|
|
* @param int $id - user id
|
|
* @param array $data - user data
|
|
* @return bool
|
|
* @version 1.1
|
|
*/
|
|
public function saveUserCFG($id, $data){
|
|
|
|
if($id){
|
|
if($this->oDb->_queryUpdate('site_users', $data, array('id' => $id), true)){
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|