package app import ( "forge.cadoles.com/Cadoles/emissary/internal/jwk" "forge.cadoles.com/arcad/edge/pkg/app" "forge.cadoles.com/arcad/edge/pkg/module" "forge.cadoles.com/arcad/edge/pkg/module/auth" "github.com/dop251/goja" "github.com/pkg/errors" ) const ( RoleVisitor string = "visitor" RoleUser string = "user" RoleSuperuser string = "superuser" RoleAdmin string = "admin" RoleSuperadmin string = "superadmin" ) func authModule(keySet jwk.Set) app.ServerModuleFactory { return module.Extends( auth.ModuleFactory( auth.WithJWT(func() (jwk.Set, error) { return keySet, nil }), ), func(o *goja.Object) { if err := o.Set("CLAIM_TENANT", "arcad_tenant"); err != nil { panic(errors.New("could not set 'CLAIM_TENANT' property")) } if err := o.Set("CLAIM_ENTRYPOINT", "arcad_entrypoint"); err != nil { panic(errors.New("could not set 'CLAIM_ENTRYPOINT' property")) } if err := o.Set("CLAIM_ROLE", "arcad_role"); err != nil { panic(errors.New("could not set 'CLAIM_ROLE' property")) } if err := o.Set("CLAIM_PREFERRED_USERNAME", "preferred_username"); err != nil { panic(errors.New("could not set 'CLAIM_PREFERRED_USERNAME' property")) } if err := o.Set("ROLE_VISITOR", RoleVisitor); err != nil { panic(errors.New("could not set 'ROLE_VISITOR' property")) } if err := o.Set("ROLE_USER", RoleUser); err != nil { panic(errors.New("could not set 'ROLE_USER' property")) } if err := o.Set("ROLE_SUPERUSER", RoleSuperuser); err != nil { panic(errors.New("could not set 'ROLE_SUPERUSER' property")) } if err := o.Set("ROLE_ADMIN", RoleAdmin); err != nil { panic(errors.New("could not set 'ROLE_ADMIN' property")) } if err := o.Set("ROLE_SUPERADMIN", RoleSuperadmin); err != nil { panic(errors.New("could not set 'ROLE_SUPERADMIN' property")) } }, ) }