Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { AutoLoadPolicySeconds int `env:"USER_ACCESSOR_AUTOLOAD_SECONDS" envDefault:"10"` // contains filtered or unexported fields }
Config has the configuration for the users service.
type Service ¶
type Service interface { // UserFromJWT returns the User associated to the http request's JWT token. // This function can return ErrorAuthJWTInvalid if the token cannot be // read, or ErrorAuthNoUser no user with such identity exists in the DB. UserFromJWT(r *http.Request) (*users.User, bool, *gz.ErrMsg) // VerifyOwner checks if the 'owner' arg is an organization or a user. If the // 'owner' is an organization, it verifies that the given 'user' arg has the expected // permission in the organization. If the 'owner' is a user, it verifies that the // 'user' arg is the same as the owner. // Dev note: this is an alternative implementation of ign-fuelserver UserService's VerifyOwner. VerifyOwner(owner, user string, p per.Action) (bool, *gz.ErrMsg) // CanPerformWithRole checks if the 'owner' arg is an organization or a // user. If the 'owner' is an organization, it verifies that the given 'user' arg // is authorized to act as the given Role (or above) in the organization. // If the 'owner' is a user, it verifies that the 'user' arg is the same as // the owner. // As a third alternative, if 'owner' is nil then it checks if the 'user' is part // of the System Admins. CanPerformWithRole(owner *string, user string, role per.Role) (bool, *gz.ErrMsg) // QueryForResourceVisibility checks the relationship between requestor (user) // and the resource owner to formulate a database query to determine whether a // resource is visible to the user QueryForResourceVisibility(q *gorm.DB, owner *string, user *users.User) *gorm.DB // IsAuthorizedForResource checks if user has the permission to perform an action on a // resource. IsAuthorizedForResource(user, resource string, action per.Action) (bool, *gz.ErrMsg) // AddResourcePermission adds a user (or group) permission on a resource AddResourcePermission(user, resource string, action per.Action) (bool, *gz.ErrMsg) // AddScore creates a score entry for a simulation. AddScore(groupID *string, competition *string, circuit *string, owner *string, score *float64, sources *string) *gz.ErrMsg // IsSystemAdmin returns a bool indicating if the given user is a system admin. IsSystemAdmin(user string) bool // GetUserFromUsername returns the user database entry from the username GetUserFromUsername(username string) (*users.User, *gz.ErrMsg) // GetOrganization gets a user's organization database entry from the username GetOrganization(username string) (*users.Organization, *gz.ErrMsg) StartAutoLoadPolicy() }
Service is used by the cloudsim server to remotely get Users and their membership to Organizations.
func NewService ¶
func NewService(resourcePermissions *per.Permissions, db *gorm.DB, sysAdmin string) (Service, error)
NewService initializes a new Service.
type UserAccessorDataMock ¶
type UserAccessorDataMock struct {
// contains filtered or unexported fields
}
UserAccessorDataMock allows us to configure the Service with mock data used in tests.
func NewUserAccessorDataMock ¶
func NewUserAccessorDataMock(ctx context.Context, ua Service, sysadminIdentiy, application string) *UserAccessorDataMock
NewUserAccessorDataMock ...
func (*UserAccessorDataMock) ReloadEverything ¶
func (m *UserAccessorDataMock) ReloadEverything(ctx context.Context) *gz.ErrMsg
ReloadEverything ...
Click to show internal directories.
Click to hide internal directories.