From e18afa93bf00f017716483c905c782d1f11d360b Mon Sep 17 00:00:00 2001 From: ivan-sim Date: Thu, 20 Jun 2024 11:02:55 +0700 Subject: [PATCH] Update ASO --- .../Api/UserManagementController.php | 16 ++++++++-- .../UserManagement/UserRole/CreateUpdate.tsx | 23 +++++++------- .../pages/UserManagement/UserRole/Form.tsx | 31 ++++++++++++++++--- 3 files changed, 52 insertions(+), 18 deletions(-) diff --git a/Modules/Internal/Http/Controllers/Api/UserManagementController.php b/Modules/Internal/Http/Controllers/Api/UserManagementController.php index 2c21943c..98c3a97d 100644 --- a/Modules/Internal/Http/Controllers/Api/UserManagementController.php +++ b/Modules/Internal/Http/Controllers/Api/UserManagementController.php @@ -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( [ diff --git a/frontend/dashboard/src/pages/UserManagement/UserRole/CreateUpdate.tsx b/frontend/dashboard/src/pages/UserManagement/UserRole/CreateUpdate.tsx index 5bf8d905..c6366d9d 100644 --- a/frontend/dashboard/src/pages/UserManagement/UserRole/CreateUpdate.tsx +++ b/frontend/dashboard/src/pages/UserManagement/UserRole/CreateUpdate.tsx @@ -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]); diff --git a/frontend/dashboard/src/pages/UserManagement/UserRole/Form.tsx b/frontend/dashboard/src/pages/UserManagement/UserRole/Form.tsx index 80fc2f7f..c111c6c8 100644 --- a/frontend/dashboard/src/pages/UserManagement/UserRole/Form.tsx +++ b/frontend/dashboard/src/pages/UserManagement/UserRole/Form.tsx @@ -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 ( @@ -131,7 +154,7 @@ export default function UserRoleForm({ isEdit, currentUserRole, permissions }: P User Role - + {guard_name_options.map((option, index) => ( Permission - {permissions?.map((permission, index) => ( + {filteredPermissions?.map((permission, index) => (