Initial import
This commit is contained in:
218
one-api/application/controllers/v1/masterdata/Menu.php
Normal file
218
one-api/application/controllers/v1/masterdata/Menu.php
Normal file
@@ -0,0 +1,218 @@
|
||||
<?php
|
||||
|
||||
class Priviledge extends MY_Controller
|
||||
{
|
||||
var $db_regional;
|
||||
public function index()
|
||||
{
|
||||
echo "USERGROUP PRIVILEDGE API";
|
||||
}
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->db_regional = $this->load->database("regional", true);
|
||||
}
|
||||
|
||||
public function lookupusergroup()
|
||||
{
|
||||
try {
|
||||
//# cek token valid
|
||||
if (! $this->isLogin) {
|
||||
$this->sys_error("Invalid Token");
|
||||
exit;
|
||||
}
|
||||
|
||||
$prm = $this->sys_input;
|
||||
$search = $prm['search'];
|
||||
$all = $prm['all'];
|
||||
$limit = '';
|
||||
if($all == 'N'){
|
||||
$limit = ' LIMIT 10';
|
||||
}
|
||||
$sql = "select COUNT(*) as total
|
||||
from m_usergroup
|
||||
where
|
||||
M_UserGroupIsActive = 'Y'";
|
||||
$sql_param = array($search);
|
||||
$total = $this->db_regional->query($sql,$sql_param)->row()->total;
|
||||
|
||||
|
||||
$sql = "select M_UserGroupID as id, M_UserGroupDashboard as dashboard, M_UserGroupName as name, M_UserGroupIsClinic as clinic, M_UserGroupName as description , 'xxx' as usergrouptype
|
||||
from m_usergroup
|
||||
where
|
||||
M_UserGroupName LIKE CONCAT('%','{$search}','%') AND
|
||||
M_UserGroupIsActive = 'Y' $limit";
|
||||
$sql_param = array($search);
|
||||
$query = $this->db_regional->query($sql);
|
||||
//echo $this->db_regional->last_query();
|
||||
if ($query) {
|
||||
$rows = $query->result_array();
|
||||
|
||||
|
||||
} else {
|
||||
$this->sys_error_db("m_usergroup select");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
$result = array ("total" => $total, "total_filter"=>count($rows),"records" => $rows);
|
||||
$this->sys_ok($result);
|
||||
|
||||
} catch(Exception $exc) {
|
||||
$message = $exc->getMessage();
|
||||
$this->sys_error($message);
|
||||
}
|
||||
}
|
||||
|
||||
public function lookuppriviledge()
|
||||
{
|
||||
try {
|
||||
//# cek token valid
|
||||
if (! $this->isLogin) {
|
||||
$this->sys_error("Invalid Token");
|
||||
exit;
|
||||
}
|
||||
|
||||
$prm = $this->sys_input;
|
||||
|
||||
$sql = "SELECT S_MenuID as id, S_MenuUrl, S_MenuName as name, '' as childs FROM s_menu WHERE S_MenuParentS_MenuID = 0 AND S_MenuIsActive = 'Y' ORDER BY S_MenuOrder ASC";
|
||||
$query = $this->db_regional->query($sql);
|
||||
//echo $this->db_regional->last_query();
|
||||
if ($query) {
|
||||
$rows = $query->result_array();
|
||||
foreach($rows as $k => $v){
|
||||
if($v['S_MenuUrl'] == '#'){
|
||||
$sql = " SELECT S_MenuID as id, S_MenuID, S_MenuUrl, S_MenuName, S_PrivilegeID, {$prm['id']} as usergroupid, IF(ISNULL(S_PrivilegeID),'N','Y') as status, 'N' as active, '' as childs
|
||||
FROM s_menu
|
||||
LEFT JOIN s_privilege ON S_PrivilegeS_MenuID = S_MenuID AND S_PrivilegeIsActive = 'Y' AND S_PrivilegeM_UserGroupID = '{$prm['id']}'
|
||||
WHERE
|
||||
S_MenuIsActive = 'Y' AND S_MenuParentS_MenuID = '{$v['id']}'
|
||||
ORDER BY S_MenuOrder ASC";
|
||||
$rows[$k]['childs'] = $this->db_regional->query($sql)->result_array();
|
||||
if($rows[$k]['childs']){
|
||||
foreach($rows[$k]['childs'] as $kx => $vx){
|
||||
if($vx['S_MenuUrl'] == '#'){
|
||||
$sql = " SELECT S_MenuID, S_MenuUrl, S_MenuName, S_PrivilegeID, {$prm['id']} as usergroupid, IF(ISNULL(S_PrivilegeID),'N','Y') as status, 'N' as active, '' as childs
|
||||
FROM s_menu
|
||||
LEFT JOIN s_privilege ON S_PrivilegeS_MenuID = S_MenuID AND S_PrivilegeIsActive = 'Y' AND S_PrivilegeM_UserGroupID = '{$prm['id']}'
|
||||
WHERE
|
||||
S_MenuIsActive = 'Y' AND S_MenuParentS_MenuID = '{$vx['id']}'
|
||||
ORDER BY S_MenuOrder ASC";
|
||||
$rows[$k]['childs'][$kx]['childs'] = $this->db_regional->query($sql)->result_array();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else{
|
||||
$sql = " SELECT S_MenuID, S_MenuUrl, S_MenuName, S_PrivilegeID, {$prm['id']} as usergroupid, IF(ISNULL(S_PrivilegeID),'N','Y') as status, 'N' as active, '' as childs
|
||||
FROM s_menu
|
||||
LEFT JOIN s_privilege ON S_PrivilegeS_MenuID = S_MenuID AND S_PrivilegeIsActive = 'Y' AND S_PrivilegeM_UserGroupID = '{$prm['id']}'
|
||||
WHERE
|
||||
S_MenuIsActive = 'Y' AND S_MenuID = '{$v['id']}'
|
||||
ORDER BY S_MenuOrder ASC";
|
||||
$rows[$k]['childs'] = $this->db_regional->query($sql)->result_array();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
} else {
|
||||
$this->sys_error_db("m_usergroup select");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
$result = array ("total"=>count($rows),"records" => $rows);
|
||||
$this->sys_ok($result);
|
||||
|
||||
} catch(Exception $exc) {
|
||||
$message = $exc->getMessage();
|
||||
$this->sys_error($message);
|
||||
}
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
try {
|
||||
//# cek token valid
|
||||
if (! $this->isLogin) {
|
||||
$this->sys_error("Invalid Token");
|
||||
exit;
|
||||
}
|
||||
|
||||
$prm = $this->sys_input;
|
||||
$datas = $prm['datas'];
|
||||
foreach ($datas as $k => $v){
|
||||
foreach ($v['childs'] as $kx => $vx){
|
||||
if($vx['active'] == 'Y'){
|
||||
if(is_null($vx['S_PrivilegeID']) && $vx['status'] == 'Y'){
|
||||
$sql = "INSERT INTO s_privilege (
|
||||
S_PrivilegeM_UserGroupID,
|
||||
S_PrivilegeS_MenuID,
|
||||
S_PrivilegeCreated
|
||||
)
|
||||
VALUES(
|
||||
{$vx['usergroupid']},
|
||||
{$vx['S_MenuID']},
|
||||
NOW()
|
||||
)";
|
||||
$this->db_regional->query($sql);
|
||||
//echo $this->db_regional->last_query();
|
||||
}
|
||||
|
||||
if(!is_null($vx['S_PrivilegeID'])){
|
||||
$sql = "UPDATE s_privilege SET
|
||||
S_PrivilegeIsActive = '{$vx['status']}'
|
||||
WHERE
|
||||
S_PrivilegeID = '{$vx['S_PrivilegeID']}'
|
||||
";
|
||||
$this->db_regional->query($sql);
|
||||
//echo $this->db_regional->last_query();
|
||||
}
|
||||
}
|
||||
if($vx['childs']){
|
||||
foreach ($vx['childs'] as $kxz => $vxz){
|
||||
if($vxz['active'] == 'Y'){
|
||||
if(is_null($vxz['S_PrivilegeID']) && $vxz['status'] == 'Y'){
|
||||
$sql = "INSERT INTO s_privilege (
|
||||
S_PrivilegeM_UserGroupID,
|
||||
S_PrivilegeS_MenuID,
|
||||
S_PrivilegeCreated
|
||||
)
|
||||
VALUES(
|
||||
{$vxz['usergroupid']},
|
||||
{$vxz['S_MenuID']},
|
||||
NOW()
|
||||
)";
|
||||
$this->db_regional->query($sql);
|
||||
//echo $this->db_regional->last_query();
|
||||
}
|
||||
|
||||
if(!is_null($vxz['S_PrivilegeID'])){
|
||||
$sql = "UPDATE s_privilege SET
|
||||
S_PrivilegeIsActive = '{$vxz['status']}'
|
||||
WHERE
|
||||
S_PrivilegeID = '{$vxz['S_PrivilegeID']}'
|
||||
";
|
||||
$this->db_regional->query($sql);
|
||||
//echo $this->db_regional->last_query();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$result = array ("total"=>1,"records" => array());
|
||||
$this->sys_ok($result);
|
||||
|
||||
} catch(Exception $exc) {
|
||||
$message = $exc->getMessage();
|
||||
$this->sys_error($message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user