users

package
v0.5.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 14, 2023 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Management

type Management interface {
	/*
		Ready checks whether the client is ready for use.

		 @return nil if ready, or an error otherwise
	*/
	Ready() error

	/*
		AlignRolesWithConfig aligns the role entries on record with the configuration provided

		 @param ctxt context.Context - context calling this API
		 @param configuredRoles configuredRoles map[string]common.UserRoleConfig - the set of
		 configured roles
		 @return whether successful
	*/
	AlignRolesWithConfig(
		ctxt context.Context, configuredRoles map[string]common.UserRoleConfig,
	) error

	/*
		ListAllRoles query for the list of known roles on record

		 @param ctxt context.Context - context calling this API
		 @return the list roles on record
	*/
	ListAllRoles(ctxt context.Context) (map[string]common.UserRoleConfig, error)

	/*
		GetRole query for a particular role on record

		 @param ctxt context.Context - context calling this API
		 @param role string - the role
		 @return that role
	*/
	GetRole(ctxt context.Context, role string) (common.UserRoleConfig, error)

	/*
		GetRoleWithLinkedUsers query for a particular role on record along with its associated users

		 @param ctxt context.Context - context calling this API
		 @param role string - the role
		 @return that role, and its associated users.
	*/
	GetRoleWithLinkedUsers(ctxt context.Context, role string) (
		common.UserRoleConfig, []models.UserInfo, error,
	)

	/*
		DefineUser define a user entry with roles

		 @param ctxt context.Context - context calling this API
		 @param config UserConfig - user config
		 @param roles []string - roles for this user
		 @return whether successful
	*/
	DefineUser(ctxt context.Context, config models.UserConfig, roles []string) error

	/*
		GetUser query for a user by ID

		 @param ctxt context.Context - context calling this API
		 @param id string - user entry ID
		 @return the user information
	*/
	GetUser(ctxt context.Context, id string) (UserDetailsWithPermission, error)

	/*
		DoesUserHavePermission checks whether a particular user has at least one of the allowed
		permissions.

		 @param ctxt context.Context - context calling this API
		 @param id string - user entry ID
		 @param allowedPermissions []string - list of allowed permissions
		 @return whether the user has at least one of the allowed permissions.
	*/
	DoesUserHavePermission(
		ctxt context.Context, id string, allowedPermissions []string,
	) (bool, error)

	/*
		ListAllUsers query for all users in system

		 @param ctxt context.Context - context calling this API
		 @return the list of users in system
	*/
	ListAllUsers(ctxt context.Context) ([]models.UserInfo, error)

	/*
		DeleteUser deletes a user

		 @param ctxt context.Context - context calling this API
		 @param id string - user entry ID
		 @return whether successful
	*/
	DeleteUser(ctxt context.Context, id string) error

	/*
		UpdateUser update the parameters for a user

		 @param ctxt context.Context - context calling this API
		 @param id string - user entry ID
		 @param newConfig UserConfig - new user config
		 @return whether successful
	*/
	UpdateUser(ctxt context.Context, id string, newConfig models.UserConfig) error

	/*
		AddRolesToUser add new roles to a user

		 @param ctxt context.Context - context calling this API
		 @param id string - user entry ID
		 @param newRoles []string - new roles for this user
		 @return whether successful
	*/
	AddRolesToUser(ctxt context.Context, id string, newRoles []string) error

	/*
		SetUserRoles change the roles of a user

		 @param ctxt context.Context - context calling this API
		 @param id string - user entry ID
		 @param newRoles []string - new roles for this user
		 @return whether successful
	*/
	SetUserRoles(ctxt context.Context, id string, newRoles []string) error

	/*
		RemoveRolesFromUser remove roles from user

		 @param ctxt context.Context - context calling this API
		 @param id string - user entry ID
		 @param roles []string - roles to remove from user
		 @return whether successful
	*/
	RemoveRolesFromUser(ctxt context.Context, id string, roles []string) error
}

Management is user / role manager

func CreateManagement

func CreateManagement(db models.ManagementDBClient) (Management, error)

CreateManagement defines a new Management

@param db models.ManagementDBClient - the DB client object
@return instance of Management

type UserDetailsWithPermission

type UserDetailsWithPermission struct {
	models.UserDetails
	// AssociatedPermission list of permissions the user has based on the roles associated with
	// the user
	AssociatedPermission []string
}

UserDetailsWithPermission extends models.UserDetails with additional information that users associated permissions

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL