feat: seed built-in Admins group and assign admin users on login
- Add V2 Flyway migration to create built-in Admins group (id: ...0010) with ADMIN role - Add ADMINS_GROUP_ID constant to SystemRole - Add user to Admins group on successful local login alongside role assignment
This commit is contained in:
@@ -94,6 +94,7 @@ public class UiAuthController {
|
|||||||
userRepository.upsert(new UserInfo(
|
userRepository.upsert(new UserInfo(
|
||||||
subject, "local", "", request.username(), Instant.now()));
|
subject, "local", "", request.username(), Instant.now()));
|
||||||
rbacService.assignRoleToUser(subject, SystemRole.ADMIN_ID);
|
rbacService.assignRoleToUser(subject, SystemRole.ADMIN_ID);
|
||||||
|
rbacService.addUserToGroup(subject, SystemRole.ADMINS_GROUP_ID);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.warn("Failed to upsert local user to store (login continues): {}", e.getMessage());
|
log.warn("Failed to upsert local user to store (login continues): {}", e.getMessage());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
-- Built-in Admins group
|
||||||
|
INSERT INTO groups (id, name) VALUES
|
||||||
|
('00000000-0000-0000-0000-000000000010', 'Admins');
|
||||||
|
|
||||||
|
-- Assign ADMIN role to Admins group
|
||||||
|
INSERT INTO group_roles (group_id, role_id) VALUES
|
||||||
|
('00000000-0000-0000-0000-000000000010', '00000000-0000-0000-0000-000000000004');
|
||||||
@@ -12,6 +12,8 @@ public final class SystemRole {
|
|||||||
public static final UUID OPERATOR_ID = UUID.fromString("00000000-0000-0000-0000-000000000003");
|
public static final UUID OPERATOR_ID = UUID.fromString("00000000-0000-0000-0000-000000000003");
|
||||||
public static final UUID ADMIN_ID = UUID.fromString("00000000-0000-0000-0000-000000000004");
|
public static final UUID ADMIN_ID = UUID.fromString("00000000-0000-0000-0000-000000000004");
|
||||||
|
|
||||||
|
public static final UUID ADMINS_GROUP_ID = UUID.fromString("00000000-0000-0000-0000-000000000010");
|
||||||
|
|
||||||
public static final Set<UUID> IDS = Set.of(AGENT_ID, VIEWER_ID, OPERATOR_ID, ADMIN_ID);
|
public static final Set<UUID> IDS = Set.of(AGENT_ID, VIEWER_ID, OPERATOR_ID, ADMIN_ID);
|
||||||
|
|
||||||
public static final Map<String, UUID> BY_NAME = Map.of(
|
public static final Map<String, UUID> BY_NAME = Map.of(
|
||||||
|
|||||||
Reference in New Issue
Block a user