Merge branch 'staging' of https://dev.sismedika.online/febio/aso into staging
This commit is contained in:
@@ -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(
|
||||
[
|
||||
|
||||
@@ -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]);
|
||||
|
||||
|
||||
@@ -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={
|
||||
|
||||
Reference in New Issue
Block a user