Documentation
¶
Index ¶
- Constants
- Variables
- func Add(ctx context.Context, user *model.User, ug *model.AgentUserGroup) (model.UserID, error)
- func ByExternalToken(tokenText string, ext *model.ExternalSessions) (*model.User, *model.UserSession, error)
- func ByID(ctx context.Context, userID model.UserID) (*model.FullUser, error)
- func ByToken(ctx context.Context, token string, ext *model.ExternalSessions) (*model.User, *model.UserSession, error)
- func ByUsername(ctx context.Context, username string) (*model.User, error)
- func DeleteSessionByID(ctx context.Context, sessionID model.SessionID) error
- func DeleteSessionByToken(ctx context.Context, token string) error
- func GetAgentUserGroup(ctx context.Context, userID model.UserID, workspaceID int) (*model.AgentUserGroup, error)
- func GetUserSetting(ctx context.Context, userID model.UserID) ([]*userv1.UserWebSetting, error)
- func InitService(db *db.PgDB, system *actor.System, extConfig *model.ExternalSessions)
- func List(ctx context.Context) (values []model.FullUser, err error)
- func NewCookieFromToken(token string) *http.Cookie
- func ProfileImage(ctx context.Context, username string) (photo []byte, err error)
- func RegisterAPIHandler(echo *echo.Echo, m *Service, middleware ...echo.MiddlewareFunc)
- func ResetUserSetting(ctx context.Context, userID model.UserID) error
- func SetActive(ctx context.Context, updateIDs []model.UserID, activate bool) error
- func StartSession(ctx context.Context, user *model.User) (string, error)
- func Update(ctx context.Context, updated *model.User, toUpdate []string, ...) error
- func UpdateUserSetting(ctx context.Context, settings []*model.UserWebSetting) error
- func UpdateUsername(ctx context.Context, userID *model.UserID, newUsername string) error
- type Service
- type UserAuthZ
- type UserAuthZBasic
- func (a *UserAuthZBasic) CanCreateUser(ctx context.Context, curUser, userToAdd model.User, ...) error
- func (a *UserAuthZBasic) CanCreateUsersOwnSetting(ctx context.Context, curUser model.User, settings []*model.UserWebSetting) error
- func (a *UserAuthZBasic) CanGetUser(ctx context.Context, curUser, targetUser model.User) error
- func (a *UserAuthZBasic) CanGetUsersImage(ctx context.Context, curUser, targetUser model.User) error
- func (a *UserAuthZBasic) CanGetUsersOwnSettings(ctx context.Context, curUser model.User) error
- func (a *UserAuthZBasic) CanResetUsersOwnSettings(ctx context.Context, curUser model.User) error
- func (a *UserAuthZBasic) CanSetUsersActive(ctx context.Context, curUser, targetUser model.User, toActiveVal bool) error
- func (a *UserAuthZBasic) CanSetUsersAdmin(ctx context.Context, curUser, targetUser model.User, toAdminVal bool) error
- func (a *UserAuthZBasic) CanSetUsersAgentUserGroup(ctx context.Context, curUser, targetUser model.User, ...) error
- func (a *UserAuthZBasic) CanSetUsersDisplayName(ctx context.Context, curUser, targetUser model.User) error
- func (a *UserAuthZBasic) CanSetUsersPassword(ctx context.Context, curUser, targetUser model.User) error
- func (a *UserAuthZBasic) CanSetUsersRemote(ctx context.Context, curUser model.User) error
- func (a *UserAuthZBasic) CanSetUsersUsername(ctx context.Context, curUser, targetUser model.User) error
- func (a *UserAuthZBasic) FilterUserList(ctx context.Context, curUser model.User, users []model.FullUser) ([]model.FullUser, error)
Constants ¶
const PersonalGroupPostfix = "DeterminedPersonalGroup"
PersonalGroupPostfix is the system postfix appended to the username of all personal groups.
const SessionDuration = 7 * 24 * time.Hour
SessionDuration is how long a newly created session is valid.
Variables ¶
var AuthZProvider authz.AuthZProviderType[UserAuthZ]
AuthZProvider is the authz registry for `user` package.
Functions ¶
func ByExternalToken ¶
func ByExternalToken(tokenText string, ext *model.ExternalSessions, ) (*model.User, *model.UserSession, error)
ByExternalToken returns a user session derived from an external authentication token.
func ByToken ¶
func ByToken(ctx context.Context, token string, ext *model.ExternalSessions) ( *model.User, *model.UserSession, error, )
ByToken returns a user session given an authentication token.
func ByUsername ¶
ByUsername looks up a user by name in the database.
func DeleteSessionByID ¶
DeleteSessionByID deletes the user session with the given ID.
func DeleteSessionByToken ¶
DeleteSessionByToken deletes user session if found (externally managed sessions are not stored in the DB and will not be found).
func GetAgentUserGroup ¶
func GetAgentUserGroup( ctx context.Context, userID model.UserID, workspaceID int, ) (*model.AgentUserGroup, error)
GetAgentUserGroup returns AgentUserGroup for a user + (optional) workspace.
func GetUserSetting ¶
GetUserSetting gets user setting.
func InitService ¶
InitService creates the user service singleton.
func NewCookieFromToken ¶
NewCookieFromToken creates a new cookie from the given token.
func ProfileImage ¶
ProfileImage returns the profile picture associated with the user.
func RegisterAPIHandler ¶
func RegisterAPIHandler(echo *echo.Echo, m *Service, middleware ...echo.MiddlewareFunc)
RegisterAPIHandler initializes and registers the API handlers for all command related features.
func ResetUserSetting ¶
ResetUserSetting resets user setting.
func StartSession ¶
StartSession creates a row in the user_sessions table.
func Update ¶
func Update( ctx context.Context, updated *model.User, toUpdate []string, ug *model.AgentUserGroup, ) error
Update updates an existing user. `toUpdate` names the fields to update.
func UpdateUserSetting ¶
func UpdateUserSetting(ctx context.Context, settings []*model.UserWebSetting) error
UpdateUserSetting updates user setting.
Types ¶
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service describes a user manager.
func GetService ¶
func GetService() *Service
GetService returns a reference to the user service singleton.
func (*Service) ProcessAuthentication ¶
func (s *Service) ProcessAuthentication(next echo.HandlerFunc) echo.HandlerFunc
ProcessAuthentication is a middleware processing function that attempts to authenticate incoming HTTP requests.
func (*Service) UserAndSessionFromRequest ¶
func (s *Service) UserAndSessionFromRequest( r *http.Request, ) (*model.User, *model.UserSession, error)
UserAndSessionFromRequest gets the user and session corresponding to the given request.
type UserAuthZ ¶
type UserAuthZ interface { // GET /api/v1/users/:user_id // Denying a user shouldn't return an error. Only a server error that needs to be // reported to the user should return an errr. CanGetUser(ctx context.Context, curUser, targetUser model.User) error // GET /users // GET /api/v1/users // FilterUserList normally shouldn't return an error. It should just remove // users that the requesting user shouldn't see. It returns an error directly without // indication it occurred during a filtering stage to bubble up a failure to the user. FilterUserList(ctx context.Context, curUser model.User, users []model.FullUser) ( []model.FullUser, error) // POST /user // POST /api/v1/users CanCreateUser( ctx context.Context, curUser, userToAdd model.User, agentUserGroup *model.AgentUserGroup, ) error // PATCH /users/:username // POST /api/v1/users/:user_id/password CanSetUsersPassword(ctx context.Context, curUser, targetUser model.User) error // PATCH /users/:username CanSetUsersActive(ctx context.Context, curUser, targetUser model.User, toActiveVal bool) error // PATCH /users/:username CanSetUsersAdmin(ctx context.Context, curUser, targetUser model.User, toAdminVal bool) error // PATCH /users/:username CanSetUsersRemote(ctx context.Context, curUser model.User) error // PATCH /users/:username CanSetUsersAgentUserGroup( ctx context.Context, curUser, targetUser model.User, agentUserGroup model.AgentUserGroup, ) error // PATCH /users/:username/username CanSetUsersUsername(ctx context.Context, curUser, targetUser model.User) error // PATCH /api/v1/users/:user_id CanSetUsersDisplayName(ctx context.Context, curUser, targetUser model.User) error // GET /users/:username/image CanGetUsersImage(ctx context.Context, curUser, targetUsername model.User) error // GET /api/v1/users/setting CanGetUsersOwnSettings(ctx context.Context, curUser model.User) error // POST /api/v1/users/setting CanCreateUsersOwnSetting( ctx context.Context, curUser model.User, settings []*model.UserWebSetting, ) error // POST /api/v1/users/setting/reset CanResetUsersOwnSettings(ctx context.Context, curUser model.User) error }
UserAuthZ describes authz methods for `user` package.
type UserAuthZBasic ¶
type UserAuthZBasic struct{}
UserAuthZBasic is basic OSS controls.
func (*UserAuthZBasic) CanCreateUser ¶
func (a *UserAuthZBasic) CanCreateUser( ctx context.Context, curUser, userToAdd model.User, agentUserGroup *model.AgentUserGroup, ) error
CanCreateUser returns an error if the user is not an admin.
func (*UserAuthZBasic) CanCreateUsersOwnSetting ¶
func (a *UserAuthZBasic) CanCreateUsersOwnSetting( ctx context.Context, curUser model.User, settings []*model.UserWebSetting, ) error
CanCreateUsersOwnSetting always returns nil.
func (*UserAuthZBasic) CanGetUser ¶
CanGetUser always returns nil.
func (*UserAuthZBasic) CanGetUsersImage ¶
func (a *UserAuthZBasic) CanGetUsersImage( ctx context.Context, curUser, targetUser model.User, ) error
CanGetUsersImage always returns nil.
func (*UserAuthZBasic) CanGetUsersOwnSettings ¶
CanGetUsersOwnSettings always returns nil.
func (*UserAuthZBasic) CanResetUsersOwnSettings ¶
CanResetUsersOwnSettings always returns nil.
func (*UserAuthZBasic) CanSetUsersActive ¶
func (a *UserAuthZBasic) CanSetUsersActive( ctx context.Context, curUser, targetUser model.User, toActiveVal bool, ) error
CanSetUsersActive returns an error if the user is not an admin.
func (*UserAuthZBasic) CanSetUsersAdmin ¶
func (a *UserAuthZBasic) CanSetUsersAdmin( ctx context.Context, curUser, targetUser model.User, toAdminVal bool, ) error
CanSetUsersAdmin returns an error if the user is not an admin.
func (*UserAuthZBasic) CanSetUsersAgentUserGroup ¶
func (a *UserAuthZBasic) CanSetUsersAgentUserGroup( ctx context.Context, curUser, targetUser model.User, agentUserGroup model.AgentUserGroup, ) error
CanSetUsersAgentUserGroup returns an error if the user is not an admin.
func (*UserAuthZBasic) CanSetUsersDisplayName ¶
func (a *UserAuthZBasic) CanSetUsersDisplayName( ctx context.Context, curUser, targetUser model.User, ) error
CanSetUsersDisplayName returns an error if the user is not an admin when trying to set another user's display name.
func (*UserAuthZBasic) CanSetUsersPassword ¶
func (a *UserAuthZBasic) CanSetUsersPassword( ctx context.Context, curUser, targetUser model.User, ) error
CanSetUsersPassword returns an error if the user is not an admin when trying to set another user's password.
func (*UserAuthZBasic) CanSetUsersRemote ¶
CanSetUsersRemote returns an error if the user is not an admin.
func (*UserAuthZBasic) CanSetUsersUsername ¶
func (a *UserAuthZBasic) CanSetUsersUsername( ctx context.Context, curUser, targetUser model.User, ) error
CanSetUsersUsername returns an error if the user is not an admin.