package useCases import "RenewCMS/internal/domain/role" type PermissionGroup struct { Key string Items []role.Permission } type ListPermissionsUseCase struct{} func NewListPermissionsUseCase() *ListPermissionsUseCase { return &ListPermissionsUseCase{} } func (u *ListPermissionsUseCase) List() []PermissionGroup { groups := []PermissionGroup{} for _, permission := range role.Catalogue() { last := len(groups) - 1 if last < 0 || groups[last].Key != permission.Group { groups = append(groups, PermissionGroup{Key: permission.Group}) last++ } groups[last].Items = append(groups[last].Items, permission) } return groups }