Documentation
¶
Index ¶
- type CountUsers
- type DetailedUser
- type OfficershipMember
- type PermissionTemplate
- type Repo
- type RolePermission
- type RoleTemplate
- type RoleUser
- type Store
- func (s *Store) AddRolePermission(ctx context.Context, rp RolePermission) (RolePermission, error)
- func (s *Store) AddRoleUser(ctx context.Context, ru RoleUser) (RoleUser, error)
- func (s *Store) AddUser(ctx context.Context, u User, userID int) (User, error)
- func (s *Store) CountUsersAll(ctx context.Context) (CountUsers, error)
- func (s *Store) DeleteUser(ctx context.Context, u User, userID int) error
- func (s *Store) EditUser(ctx context.Context, u User, userID int) error
- func (s *Store) EditUserAvatar(ctx context.Context, userParam User) error
- func (s *Store) EditUserPassword(ctx context.Context, u User) error
- func (s *Store) GetPermissionsForRole(ctx context.Context, r role.Role) ([]permission.Permission, error)
- func (s *Store) GetPermissionsForUser(ctx context.Context, u User) ([]permission.Permission, error)
- func (s *Store) GetPermissionsNotInRole(ctx context.Context, r role.Role) ([]permission.Permission, error)
- func (s *Store) GetRolePermission(ctx context.Context, rp RolePermission) (RolePermission, error)
- func (s *Store) GetRoleUser(ctx context.Context, ru RoleUser) (RoleUser, error)
- func (s *Store) GetRolesForPermission(ctx context.Context, p permission.Permission) ([]role.Role, error)
- func (s *Store) GetRolesForUser(ctx context.Context, u User) ([]role.Role, error)
- func (s *Store) GetUser(ctx context.Context, u User) (User, error)
- func (s *Store) GetUserValid(ctx context.Context, u User) (User, error)
- func (s *Store) GetUsers(ctx context.Context, size, page int, ...) ([]User, int, error)
- func (s *Store) GetUsersForRole(ctx context.Context, r role.Role) ([]User, error)
- func (s *Store) GetUsersNotInRole(ctx context.Context, r role.Role) ([]User, error)
- func (s *Store) RemoveRolePermission(ctx context.Context, rp RolePermission) error
- func (s *Store) RemoveRoleUser(ctx context.Context, ru RoleUser) error
- func (s *Store) RemoveUserForRoles(ctx context.Context, u User) error
- func (s *Store) SetUserLoggedIn(ctx context.Context, u User) error
- func (s *Store) VerifyUser(ctx context.Context, u User) (User, bool, error)
- type StrippedUser
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CountUsers ¶ added in v0.7.1
type CountUsers struct {
TotalUsers int `db:"total_users" json:"totalUsers"`
ActiveUsers int `db:"active_users" json:"activeUsers"`
ActiveUsersPast24Hours int `db:"active_users_past_24_hours" json:"activeUsersPast24Hours"`
ActiveUsersPastYear int `db:"active_users_past_year" json:"activeUsersPastYear"`
}
type DetailedUser ¶ added in v0.7.1
type DetailedUser struct {
UserID int `json:"id"`
Username string `json:"username"`
UniversityUsername string `json:"universityUsername"`
LDAPUsername null.String `json:"LDAPUsername"`
LoginType string `json:"loginType"`
Nickname string `json:"nickname"`
Firstname string `json:"firstName"`
Lastname string `json:"lastName"`
Avatar string `json:"avatar"`
UseGravatar bool `json:"useGravatar"`
Email string `json:"email"`
LastLogin null.String `json:"lastLogin"`
ResetPw bool `json:"resetPw"`
Enabled bool `json:"enabled"`
CreatedAt null.String `json:"createdAt"`
CreatedBy User `json:"createdBy"`
UpdatedAt null.String `json:"updatedAt"`
UpdatedBy User `json:"updatedBy"`
DeletedAt null.String `json:"deletedAt"`
DeletedBy User `json:"deletedBy"`
Gravatar null.String `json:"gravatar"`
Permissions []permission.Permission `json:"permissions"`
Roles []role.Role `json:"roles"`
Officers []OfficershipMember `json:"officers"`
}
DetailedUser is the user object in full for the front end
type OfficershipMember ¶ added in v1.0.0
type OfficershipMember struct {
OfficershipMemberID int `db:"officership_member_id" json:"officershipMemberID"`
UserID int `db:"user_id" json:"userID"`
OfficerID int `db:"officer_id" json:"officerID"`
StartDate null.Time `db:"start_date" json:"startDate"`
EndDate null.Time `db:"end_date" json:"endDate"`
OfficershipName string `db:"officership_name" json:"officershipName"`
UserName string `db:"user_name" json:"userName"`
TeamID null.Int `db:"team_id" json:"teamID"`
TeamName null.String `db:"team_name" json:"teamName"`
}
OfficershipMember represents relevant officership member fields
type PermissionTemplate ¶ added in v0.7.1
type PermissionTemplate struct {
PermissionID int
Name string
Description string
Roles []role.Role
}
PermissionTemplate is for the front end of permission
type Repo ¶
type Repo interface {
CountUsersAll(context.Context) (CountUsers, error)
GetUser(context.Context, User) (User, error)
GetUserValid(context.Context, User) (User, error)
GetUsers(context.Context, int, int, string, string, string, string, string) ([]User, int, error)
VerifyUser(context.Context, User) (User, bool, error)
AddUser(context.Context, User, int) (User, error)
EditUserPassword(context.Context, User) error
EditUser(context.Context, User, int) error
SetUserLoggedIn(context.Context, User) error
EditUserAvatar(context.Context, User) error
DeleteUser(context.Context, User, int) error
GetPermissionsForUser(context.Context, User) ([]permission.Permission, error)
GetRolesForUser(context.Context, User) ([]role.Role, error)
GetUsersForRole(context.Context, role.Role) ([]User, error)
GetRoleUser(context.Context, RoleUser) (RoleUser, error)
GetUsersNotInRole(context.Context, role.Role) ([]User, error)
AddRoleUser(context.Context, RoleUser) (RoleUser, error)
RemoveRoleUser(context.Context, RoleUser) error
RemoveUserForRoles(context.Context, User) error
GetPermissionsForRole(context.Context, role.Role) ([]permission.Permission, error)
GetRolesForPermission(context.Context, permission.Permission) ([]role.Role, error)
GetRolePermission(context.Context, RolePermission) (RolePermission, error)
GetPermissionsNotInRole(context.Context, role.Role) ([]permission.Permission, error)
AddRolePermission(context.Context, RolePermission) (RolePermission, error)
RemoveRolePermission(context.Context, RolePermission) error
}
type RolePermission ¶ added in v0.7.1
type RolePermission struct {
RoleID int `db:"role_id" json:"roleID"`
PermissionID int `db:"permission_id" json:"permissionID"`
}
RolePermission symbolises a link between a role.Role and permission.Permission
type RoleTemplate ¶ added in v0.7.1
type RoleTemplate struct {
RoleID int
Name string
Description string
Permissions []permission.Permission
Users []User
}
type RoleUser ¶ added in v0.7.1
type RoleUser struct {
RoleID int `db:"role_id" json:"roleID"`
UserID int `db:"user_id" json:"userID"`
}
RoleUser symbolises a link between a role.Role and User
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store stores the dependencies
func NewUserRepo ¶
NewUserRepo stores our dependency
func (*Store) AddRolePermission ¶ added in v0.7.1
func (s *Store) AddRolePermission(ctx context.Context, rp RolePermission) (RolePermission, error)
AddRolePermission creates a link between a role.Role and permission.Permission
func (*Store) AddRoleUser ¶ added in v0.7.1
AddRoleUser adds a link between a role.Role and User
func (*Store) CountUsersAll ¶ added in v0.7.1
func (s *Store) CountUsersAll(ctx context.Context) (CountUsers, error)
CountUsersAll returns the number of users, active users, active users in the last 24 hours and past year
func (*Store) DeleteUser ¶ added in v0.7.1
DeleteUser will soft delete a user
func (*Store) EditUserAvatar ¶ added in v1.1.0
func (*Store) EditUserPassword ¶ added in v0.7.1
EditUserPassword will edit the password and set the reset_pw to false
func (*Store) GetPermissionsForRole ¶ added in v0.7.1
func (s *Store) GetPermissionsForRole(ctx context.Context, r role.Role) ([]permission.Permission, error)
GetPermissionsForRole returns all permissions for role
func (*Store) GetPermissionsForUser ¶ added in v0.7.1
func (s *Store) GetPermissionsForUser(ctx context.Context, u User) ([]permission.Permission, error)
GetPermissionsForUser returns all permissions of a user
func (*Store) GetPermissionsNotInRole ¶ added in v0.7.1
func (s *Store) GetPermissionsNotInRole(ctx context.Context, r role.Role) ([]permission.Permission, error)
GetPermissionsNotInRole returns all the permission.Permission not in a role.Role
func (*Store) GetRolePermission ¶ added in v0.7.1
func (s *Store) GetRolePermission(ctx context.Context, rp RolePermission) (RolePermission, error)
GetRolePermission returns the role permission
func (*Store) GetRoleUser ¶ added in v0.7.1
GetRoleUser returns a single link between a role.Role and User
func (*Store) GetRolesForPermission ¶ added in v0.7.1
func (s *Store) GetRolesForPermission(ctx context.Context, p permission.Permission) ([]role.Role, error)
GetRolesForPermission returns all roles where a permission is used
func (*Store) GetRolesForUser ¶ added in v0.7.1
GetRolesForUser returns all roles of a user
func (*Store) GetUserValid ¶ added in v0.7.1
GetUserValid returns a user using any unique identity fields which is enabled and not deleted
func (*Store) GetUsersForRole ¶ added in v0.7.1
GetUsersForRole returns all the Users that are linked to a role.Role
func (*Store) GetUsersNotInRole ¶ added in v0.7.1
GetUsersNotInRole returns all the users not linked to a role.Role
func (*Store) RemoveRolePermission ¶ added in v0.7.1
func (s *Store) RemoveRolePermission(ctx context.Context, rp RolePermission) error
RemoveRolePermission removes a link between a role.Role and permission.Permission
func (*Store) RemoveRoleUser ¶ added in v0.7.1
RemoveRoleUser removes a link between a role.Role and User
func (*Store) RemoveUserForRoles ¶ added in v1.0.0
RemoveUserForRoles removes links between a User and Roles
func (*Store) SetUserLoggedIn ¶
SetUserLoggedIn will set the last login date to now
func (*Store) VerifyUser ¶
VerifyUser will check that the password is correct with provided credentials and if verified will return the User object returned is the user object, bool of if the password is forced to be changed and any errors encountered
type StrippedUser ¶ added in v0.7.1
type StrippedUser struct {
UserID int
Username string
Name string
Email string
LastLogin string
Enabled bool
Deleted bool
}
StrippedUser represents user information, an administrator can view
type User ¶ added in v0.6.0
type User struct {
UserID int `db:"user_id" json:"userID"`
Username string `db:"username" json:"username" schema:"username"`
UniversityUsername string `db:"university_username" json:"universityUsername"`
LDAPUsername null.String `db:"ldap_username" json:"LDAPUsername"`
LoginType string `db:"login_type" json:"loginType"`
Nickname string `db:"nickname" json:"nickname" schema:"nickname"`
Firstname string `db:"first_name" json:"firstName" schema:"firstname"`
Lastname string `db:"last_name" json:"lastName" schema:"lastname"`
Password null.String `db:"password" json:"-" schema:"password"`
Salt null.String `db:"salt" json:"-"`
Avatar string `db:"avatar" json:"avatar" schema:"avatar"`
Email string `db:"email" json:"email" schema:"email"`
LastLogin null.Time `db:"last_login" json:"lastLogin"`
ResetPw bool `db:"reset_pw" json:"resetPw"`
Enabled bool `db:"enabled" json:"enabled"`
CreatedAt null.Time `db:"created_at" json:"createdAt"`
CreatedBy null.Int `db:"created_by" json:"createdBy"`
UpdatedAt null.Time `db:"updated_at" json:"updatedAt"`
UpdatedBy null.Int `db:"updated_by" json:"updatedBy"`
DeletedAt null.Time `db:"deleted_at" json:"deletedAt"`
DeletedBy null.Int `db:"deleted_by" json:"deletedBy"`
UseGravatar bool `db:"use_gravatar" json:"useGravatar" schema:"useGravatar"`
Permissions []permission.Permission `json:"permissions"`
Roles []role.Role `json:"roles"`
Authenticated bool `json:"authenticated"`
AssumedUser *User `json:"assumedUser"`
}
User represents relevant user fields