pemindahan submenu peralatan teknisi ke menu Oprasional Peralatan

This commit is contained in:
Wian Drs
2026-09-15 11:47:49 +07:00
parent 8fedd39d8f
commit e4d6245a3d
17 changed files with 151 additions and 42 deletions
+2
View File
@@ -30,6 +30,8 @@ class Roles extends MY_Admin_Controller
$duplicate=$this->db->where('nama_role',$name)->where('id !=',$id)->count_all_results('roles');if($duplicate)return json_response(false,'Nama role sudah digunakan.',array(),422);
$posted=(array)$this->input->post('permissions');$permissions=array();
foreach($this->features as$key=>$label){$allowedActions=array_keys($this->actions);if($key==='payroll')$allowedActions=array_merge($allowedActions,array('can_manage_all_salary','can_manage_allowances'));$selected=array_values(array_intersect((array)(isset($posted[$key])?$posted[$key]:array()),$allowedActions));if($key==='payroll'&&in_array('can_manage_allowances',$selected,true)&&!in_array('can_update',$selected,true))$selected[]='can_update';if($selected){if(!in_array('can_view',$selected,true))array_unshift($selected,'can_view');$permissions[$key]=$selected;}}
$hasDevicePermission=false;foreach(array_keys($permissions)as$feature){if(strpos($feature,'technician_')===0){$hasDevicePermission=true;break;}}
if($hasDevicePermission){if(empty($permissions['technician_equipment']))$permissions['technician_equipment']=array('can_view');elseif(!in_array('can_view',$permissions['technician_equipment'],true))array_unshift($permissions['technician_equipment'],'can_view');}
if(!$permissions)return json_response(false,'Role wajib mempunyai minimal satu permission.',array(),422);
$data=array('nama_role'=>$name,'description'=>$description,'permissions'=>json_encode($permissions),'is_active'=>$this->input->post('is_active')?1:0,'updated_at'=>date('Y-m-d H:i:s'));
if($id)$this->db->where('id',$id)->update('roles',$data);else{$data['is_system']=0;$data['is_super_admin']=0;$data['created_at']=date('Y-m-d H:i:s');$this->db->insert('roles',$data);$id=$this->db->insert_id();}