ElixirVault/www/system-brs-core/sys/sysUsers/inc/sysUsersModule.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;
}
}