f5a8c5a45d
Signed-off-by: Michael Mayer <michael@photoprism.app>
94 lines
1.9 KiB
Go
94 lines
1.9 KiB
Go
package customize
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/photoprism/photoprism/internal/acl"
|
|
)
|
|
|
|
func TestSettings_ApplyACL(t *testing.T) {
|
|
original := NewDefaultSettings().Features
|
|
|
|
t.Run("RoleAdmin", func(t *testing.T) {
|
|
s := NewDefaultSettings()
|
|
|
|
expected := FeatureSettings{
|
|
Account: true,
|
|
Advanced: true,
|
|
Albums: true,
|
|
Archive: true,
|
|
Delete: false,
|
|
Download: true,
|
|
Edit: true,
|
|
Estimates: true,
|
|
Favorites: true,
|
|
Files: true,
|
|
Folders: true,
|
|
Import: true,
|
|
Labels: true,
|
|
Library: true,
|
|
Logs: true,
|
|
Moments: true,
|
|
People: true,
|
|
Places: true,
|
|
Private: true,
|
|
Ratings: true,
|
|
Reactions: true,
|
|
Review: true,
|
|
Search: true,
|
|
Settings: true,
|
|
Share: true,
|
|
Sync: true,
|
|
Upload: true,
|
|
Videos: true,
|
|
}
|
|
|
|
assert.Equal(t, original, s.Features)
|
|
r := s.ApplyACL(acl.Resources, acl.RoleAdmin)
|
|
|
|
t.Logf("RoleAdmin: %#v", r)
|
|
assert.Equal(t, expected, r.Features)
|
|
})
|
|
|
|
t.Run("RoleVisitor", func(t *testing.T) {
|
|
s := NewDefaultSettings()
|
|
|
|
expected := FeatureSettings{
|
|
Account: false,
|
|
Advanced: false,
|
|
Albums: true,
|
|
Archive: false,
|
|
Delete: false,
|
|
Download: true,
|
|
Edit: false,
|
|
Estimates: true,
|
|
Favorites: false,
|
|
Files: false,
|
|
Folders: false,
|
|
Import: false,
|
|
Labels: false,
|
|
Library: false,
|
|
Logs: false,
|
|
Moments: false,
|
|
People: false,
|
|
Places: false,
|
|
Private: false,
|
|
Ratings: false,
|
|
Reactions: false,
|
|
Review: false,
|
|
Search: false,
|
|
Settings: false,
|
|
Share: false,
|
|
Sync: false,
|
|
Upload: false,
|
|
Videos: false,
|
|
}
|
|
|
|
assert.Equal(t, original, s.Features)
|
|
r := s.ApplyACL(acl.Resources, acl.RoleVisitor)
|
|
t.Logf("RoleVisitor: %#v", r)
|
|
assert.Equal(t, expected, r.Features)
|
|
})
|
|
}
|