3
0
Files
corteza/pkg/provision/roles.go
Tomaž Jerman ce34993b74 Round timestamps to a second accuracy
Different parts of the system (FE, API, store) may use different
standards so operations like IsStale check may fail.
2020-12-21 09:15:08 +01:00

33 lines
745 B
Go

package provision
import (
"context"
"time"
"github.com/cortezaproject/corteza-server/pkg/rbac"
"github.com/cortezaproject/corteza-server/store"
"github.com/cortezaproject/corteza-server/system/types"
)
func roles(ctx context.Context, s store.Storer) error {
if set, _, err := store.SearchRoles(ctx, s, types.RoleFilter{}); err != nil {
return err
} else if len(set) > 0 {
return nil
}
now := time.Now().Round(time.Second)
rr := types.RoleSet{
&types.Role{ID: rbac.AdminsRoleID, Name: "Administrators", Handle: "admins"},
&types.Role{ID: rbac.EveryoneRoleID, Name: "Everyone", Handle: "everyone"},
}
err := rr.Walk(func(r *types.Role) error {
r.CreatedAt = now
return store.CreateRole(ctx, s, r)
})
return err
}