mirror of
https://github.com/coder/coder.git
synced 2025-07-13 21:36:50 +00:00
chore: implement deleting custom roles (#14101)
* chore: implement deleting custom roles * add trigger to delete role from organization members on delete * chore: add comments to explain populated field
This commit is contained in:
@ -1381,6 +1381,35 @@ func (*FakeQuerier) DeleteCoordinator(context.Context, uuid.UUID) error {
|
||||
return ErrUnimplemented
|
||||
}
|
||||
|
||||
func (q *FakeQuerier) DeleteCustomRole(_ context.Context, arg database.DeleteCustomRoleParams) error {
|
||||
err := validateDatabaseType(arg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
q.mutex.RLock()
|
||||
defer q.mutex.RUnlock()
|
||||
|
||||
initial := len(q.data.customRoles)
|
||||
q.data.customRoles = slices.DeleteFunc(q.data.customRoles, func(role database.CustomRole) bool {
|
||||
return role.OrganizationID.UUID == arg.OrganizationID.UUID && role.Name == arg.Name
|
||||
})
|
||||
if initial == len(q.data.customRoles) {
|
||||
return sql.ErrNoRows
|
||||
}
|
||||
|
||||
// Emulate the trigger 'remove_organization_member_custom_role'
|
||||
for i, mem := range q.organizationMembers {
|
||||
if mem.OrganizationID == arg.OrganizationID.UUID {
|
||||
mem.Roles = slices.DeleteFunc(mem.Roles, func(role string) bool {
|
||||
return role == arg.Name
|
||||
})
|
||||
q.organizationMembers[i] = mem
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (q *FakeQuerier) DeleteExternalAuthLink(_ context.Context, arg database.DeleteExternalAuthLinkParams) error {
|
||||
err := validateDatabaseType(arg)
|
||||
if err != nil {
|
||||
|
Reference in New Issue
Block a user