diff --git a/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml b/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml index b5a108dcd..30b1fa477 100644 --- a/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml +++ b/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml @@ -343,4 +343,5 @@ + diff --git a/fineract-provider/src/main/resources/db/changelog/tenant/parts/0316_create_clerk_role_and_permissions.xml b/fineract-provider/src/main/resources/db/changelog/tenant/parts/0316_create_clerk_role_and_permissions.xml new file mode 100644 index 000000000..060a72f4f --- /dev/null +++ b/fineract-provider/src/main/resources/db/changelog/tenant/parts/0316_create_clerk_role_and_permissions.xml @@ -0,0 +1,69 @@ + + + + + + + + INSERT INTO m_permission (grouping, code, entity_name, action_name, can_maker_checker) + SELECT 'heading_menu', 'MENU_CLERK', 'MENU', 'CLERK', false + WHERE NOT EXISTS ( + SELECT 1 FROM m_permission WHERE code = 'MENU_CLERK' + ); + + + DELETE FROM m_permission WHERE code = 'MENU_CLERK'; + + + + + + + INSERT INTO m_role (name, description, is_disabled) + SELECT 'Clerk', 'Clerk role with all application permissions for front-desk banking operations.', false + WHERE NOT EXISTS ( + SELECT 1 FROM m_role WHERE LOWER(name) = 'clerk' + ); + + + DELETE FROM m_role_permission WHERE role_id = (SELECT id FROM m_role WHERE LOWER(name) = 'clerk'); + DELETE FROM m_role WHERE LOWER(name) = 'clerk'; + + + + + + + INSERT INTO m_role_permission (role_id, permission_id) + SELECT r.id, p.id + FROM m_role r, m_permission p + WHERE LOWER(r.name) = 'clerk' + AND NOT EXISTS ( + SELECT 1 FROM m_role_permission rp + WHERE rp.role_id = r.id AND rp.permission_id = p.id + ); + + + DELETE FROM m_role_permission + WHERE role_id = (SELECT id FROM m_role WHERE LOWER(name) = 'clerk'); + + + +