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)
{
$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);
}
@@ -73,7 +83,7 @@ class UserManagementController extends Controller
]);
if (isset($validated['permission_check'])) {
$permissions = Permission::whereIn('id', $validated['permission_check'])
->where('guard_name', $validated['guard_name'])
->get();
@@ -145,7 +155,7 @@ class UserManagementController extends Controller
if ($request->password){
$userAccess->password = Hash::make($request->password);
}
}
$person = Person::updateOrCreate(
[

View File

@@ -37,6 +37,17 @@ export default function PlanCreate() {
axios.get('/user/role/'+id)
.then((res) => {
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) => {
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]);

View File

@@ -27,6 +27,8 @@ export default function UserRoleForm({ isEdit, currentUserRole, permissions }: P
const { enqueueSnackbar } = useSnackbar();
const navigate = useNavigate();
const { corporate_id } = useParams();
const [guardName, setGuardName] = useState(currentUserRole?.guard_name || '');
const [filteredPermissions, setFilteredPermissions] = useState(permissions);
const NewUserRoleSchema = Yup.object().shape({
name: Yup.string().required('Name is required'),
@@ -37,7 +39,7 @@ export default function UserRoleForm({ isEdit, currentUserRole, permissions }: P
name: currentUserRole?.name || '',
guard_name: currentUserRole?.guard_name || '',
permission_check: currentUserRole?.permissions?.map(permission => permission.id) || []
}),
[currentUserRole, permissions]
);
@@ -55,7 +57,7 @@ export default function UserRoleForm({ isEdit, currentUserRole, permissions }: P
resolver: yupResolver(NewUserRoleSchema),
defaultValues,
});
const {
reset,
watch,
@@ -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 (
<FormProvider methods={methods} onSubmit={handleSubmit(onSubmit)}>
<Box sx={{ px: 2 }}>
@@ -131,7 +154,7 @@ export default function UserRoleForm({ isEdit, currentUserRole, permissions }: P
<Stack spacing={2}>
<Typography variant="h6" color={palette.light.primary.main}>User Role</Typography>
<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) => (
<option key={index} value={option.value}>
{option.label}
@@ -140,7 +163,7 @@ export default function UserRoleForm({ isEdit, currentUserRole, permissions }: P
</RHFSelect>
<Typography variant="h6" color={palette.light.primary.main}>Permission</Typography>
<Grid container spacing={2}>
{permissions?.map((permission, index) => (
{filteredPermissions?.map((permission, index) => (
<Grid item xs={4} key={permission.id}>
<FormControlLabel
control={