28 lines
647 B
Go
28 lines
647 B
Go
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
|
|
}
|