photoprism/internal/customize/acl_test.go
Michael Mayer f5a8c5a45d Auth: Session and ACL enhancements #98 #1746
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-09-28 09:01:17 +02:00

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)
})
}