Merge branch 'staging' of https://dev.sismedika.online/febio/aso into staging

This commit is contained in:
2024-06-21 08:52:26 +07:00
3 changed files with 52 additions and 18 deletions

View File

@@ -28,7 +28,17 @@ class UserManagementController extends Controller
public function permission_list(Request $request) public function permission_list(Request $request)
{ {
$permissions = Permission::all(); // Ambil nilai guard_name dari query string
$guardName = $request->query('guard_name');
// Jika guard_name ada dalam query, filter berdasarkan guard_name
if ($guardName) {
$permissions = Permission::where('guard_name', $guardName)->orderBy('name','asc')->get();
} else {
// Jika guard_name tidak ada, ambil semua permissions
$permissions = Permission::all();
}
return response()->json($permissions); return response()->json($permissions);
} }

View File

@@ -37,6 +37,17 @@ export default function PlanCreate() {
axios.get('/user/role/'+id) axios.get('/user/role/'+id)
.then((res) => { .then((res) => {
setCurrentUserRole(res.data); setCurrentUserRole(res.data);
axios.get('/permission_list?guard_name='+res.data.guard_name)
.then((res) => {
setPermissions(res.data);
})
.catch((err) => {
if (err.response && err.response.status === 404) {
navigate('/404');
} else {
console.error('Error fetching permissions:', err);
}
});
}) })
.catch((err) => { .catch((err) => {
if (err.response.status === 404) { if (err.response.status === 404) {
@@ -44,17 +55,7 @@ export default function PlanCreate() {
} }
}) })
} }
axios.get('/permission_list')
.then((res) => {
setPermissions(res.data);
})
.catch((err) => {
if (err.response && err.response.status === 404) {
navigate('/404');
} else {
console.error('Error fetching permissions:', err);
}
});
}, [corporate_id, id]); }, [corporate_id, id]);

View File

@@ -27,6 +27,8 @@ export default function UserRoleForm({ isEdit, currentUserRole, permissions }: P
const { enqueueSnackbar } = useSnackbar(); const { enqueueSnackbar } = useSnackbar();
const navigate = useNavigate(); const navigate = useNavigate();
const { corporate_id } = useParams(); const { corporate_id } = useParams();
const [guardName, setGuardName] = useState(currentUserRole?.guard_name || '');
const [filteredPermissions, setFilteredPermissions] = useState(permissions);
const NewUserRoleSchema = Yup.object().shape({ const NewUserRoleSchema = Yup.object().shape({
name: Yup.string().required('Name is required'), name: Yup.string().required('Name is required'),
@@ -122,6 +124,27 @@ export default function UserRoleForm({ isEdit, currentUserRole, permissions }: P
} }
}; };
useEffect(() => {
// Fetch permissions based on guard_name
if (guardName) {
axios.get(`/permission_list?guard_name=${guardName}`)
.then((res) => {
setFilteredPermissions(res.data);
})
.catch((err) => {
console.error('Error fetching permissions:', err);
});
} else {
setFilteredPermissions(permissions);
}
}, [guardName,permissions]);
const handleGuardNameChange = (event) => {
console.log("ivan")
setGuardName(event.target.value);
setValue('guard_name', event.target.value);
};
return ( return (
<FormProvider methods={methods} onSubmit={handleSubmit(onSubmit)}> <FormProvider methods={methods} onSubmit={handleSubmit(onSubmit)}>
<Box sx={{ px: 2 }}> <Box sx={{ px: 2 }}>
@@ -131,7 +154,7 @@ export default function UserRoleForm({ isEdit, currentUserRole, permissions }: P
<Stack spacing={2}> <Stack spacing={2}>
<Typography variant="h6" color={palette.light.primary.main}>User Role</Typography> <Typography variant="h6" color={palette.light.primary.main}>User Role</Typography>
<RHFTextField name="name" label="Name" /> <RHFTextField name="name" label="Name" />
<RHFSelect name="guard_name" label="Guard Name"> <RHFSelect name="guard_name" label="Guard Name" onChange={handleGuardNameChange}>
{guard_name_options.map((option, index) => ( {guard_name_options.map((option, index) => (
<option key={index} value={option.value}> <option key={index} value={option.value}>
{option.label} {option.label}
@@ -140,7 +163,7 @@ export default function UserRoleForm({ isEdit, currentUserRole, permissions }: P
</RHFSelect> </RHFSelect>
<Typography variant="h6" color={palette.light.primary.main}>Permission</Typography> <Typography variant="h6" color={palette.light.primary.main}>Permission</Typography>
<Grid container spacing={2}> <Grid container spacing={2}>
{permissions?.map((permission, index) => ( {filteredPermissions?.map((permission, index) => (
<Grid item xs={4} key={permission.id}> <Grid item xs={4} key={permission.id}>
<FormControlLabel <FormControlLabel
control={ control={