people

package
v0.9.8 Latest Latest
Warning

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

Go to latest
Published: May 18, 2025 License: GPL-3.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CountOfficerships added in v0.9.6

type CountOfficerships struct {
	TotalOfficerships   int `db:"total_officerships" json:"totalOfficerships"`
	CurrentOfficerships int `db:"current_officerships" json:"currentOfficerships"`
	TotalOfficers       int `db:"total_officers" json:"totalOfficers"`
	CurrentOfficers     int `db:"current_officers" json:"currentOfficers"`
}

type CountUsers added in v0.9.6

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 Officership added in v0.9.6

type Officership struct {
	OfficershipID    int     `json:"officershipID"`
	Name             string  `json:"name"`
	EmailAlias       string  `json:"emailAlias"`
	Description      string  `json:"description"`
	HistoryWikiURL   string  `json:"historyWikiURL"`
	RoleID           *int64  `json:"roleID,omitempty"`
	IsCurrent        bool    `json:"isCurrent"`
	IfUnfilled       *bool   `json:"ifUnfilled,omitempty"`
	CurrentOfficers  int     `json:"currentOfficers"`
	PreviousOfficers int     `json:"previousOfficers"`
	TeamID           *int64  `json:"teamID,omitempty"`
	TeamName         *string `json:"teamName,omitempty"`
	IsTeamLeader     *bool   `json:"isTeamLeader,omitempty"`
	IsTeamDeputy     *bool   `json:"isTeamDeputy,omitempty"`
}

Officership represents relevant officership fields

type OfficershipAddEditDTO added in v0.9.6

type OfficershipAddEditDTO struct {
	Name           string `json:"name"`
	EmailAlias     string `json:"emailAlias"`
	Description    string `json:"description"`
	HistoryWikiURL string `json:"historyWikiURL"`
	IsCurrent      bool   `json:"isCurrent"`
}

OfficershipAddEditDTO represents relevant officership fields for adding and editing

type OfficershipDB added in v0.9.6

type OfficershipDB struct {
	OfficershipID    int         `db:"officer_id" json:"officershipID"`
	Name             string      `db:"name" json:"name"`
	EmailAlias       string      `db:"email_alias" json:"emailAlias"`
	Description      string      `db:"description" json:"description"`
	HistoryWikiURL   string      `db:"historywiki_url" json:"historyWikiURL"`
	RoleID           null.Int    `db:"role_id" json:"roleID,omitempty"`
	IsCurrent        bool        `db:"is_current" json:"isCurrent"`
	IfUnfilled       null.Bool   `db:"if_unfilled" json:"ifUnfilled,omitempty"`
	CurrentOfficers  int         `db:"current_officers" json:"currentOfficers,omitempty"`
	PreviousOfficers int         `db:"previous_officers" json:"previousOfficers,omitempty"`
	TeamID           null.Int    `db:"team_id" json:"teamID"`
	TeamName         null.String `db:"team_name" json:"teamName"`
	IsTeamLeader     null.Bool   `db:"is_team_leader" json:"isTeamLeader"`
	IsTeamDeputy     null.Bool   `db:"is_team_deputy" json:"isTeamDeputy"`
}

OfficershipDB represents relevant officership fields

type OfficershipGetDTO added in v0.9.6

type OfficershipGetDTO struct {
	OfficershipID int    `json:"officershipID"`
	Name          string `json:"name"`
}

OfficershipGetDTO represents relevant officership fields for getting

type OfficershipMember added in v0.9.6

type OfficershipMember struct {
	OfficershipMemberID int        `json:"officershipMemberID"`
	UserID              int        `json:"userID"`
	OfficerID           int        `json:"officerID"`
	StartDate           *time.Time `json:"startDate,omitempty"`
	EndDate             *time.Time `json:"endDate,omitempty"`
	OfficershipName     string     `json:"officershipName"`
	UserName            string     `json:"userName"`
	TeamID              *int       `json:"teamID,omitempty"`
	TeamName            *string    `json:"teamName,omitempty"`
}

OfficershipMember represents relevant officership member fields

type OfficershipMemberAddEditDTO added in v0.9.6

type OfficershipMemberAddEditDTO struct {
	UserID    int        `json:"userID"`
	OfficerID int        `json:"officerID"`
	StartDate *time.Time `json:"startDate,omitempty"`
	EndDate   *time.Time `json:"endDate,omitempty"`
}

OfficershipMemberAddEditDTO represents relevant officership member fields

type OfficershipMemberDB added in v0.9.6

type OfficershipMemberDB 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"`
}

OfficershipMemberDB represents relevant officership member fields

type OfficershipRepo added in v0.9.6

type OfficershipRepo interface {
	OfficershipDBToOfficership(officershipDB OfficershipDB) Officership
	OfficershipMemberDBToOfficershipMember(officershipDB OfficershipMemberDB) OfficershipMember
	CountOfficerships(ctx context.Context) (CountOfficerships, error)
	GetOfficerships(ctx context.Context, officershipsStatus OfficershipsStatus) ([]OfficershipDB, error)
	GetOfficership(ctx context.Context, officershipGet OfficershipGetDTO) (OfficershipDB, error)
	AddOfficership(ctx context.Context, officershipAdd OfficershipAddEditDTO) (OfficershipDB, error)
	EditOfficership(ctx context.Context, officershipID int, officershipEdit OfficershipAddEditDTO) (OfficershipDB, error)
	DeleteOfficership(ctx context.Context, officershipID int) error
	GetOfficershipTeams(ctx context.Context) ([]OfficershipTeam, error)
	GetOfficershipTeam(ctx context.Context, officershipTeamGet OfficershipTeamGetDTO) (OfficershipTeam, error)
	AddOfficershipTeam(ctx context.Context, officershipTeamAdd OfficershipTeamAddEditDTO) (OfficershipTeam, error)
	EditOfficershipTeam(ctx context.Context, officershipID int, officershipTeamEdit OfficershipTeamAddEditDTO) (OfficershipTeam, error)
	DeleteOfficershipTeam(ctx context.Context, officershipTeamID int) error
	GetOfficershipTeamMembers(ctx context.Context, officershipTeamID *int,
		officershipStatus OfficershipsStatus) ([]OfficershipTeamMember, error)
	GetOfficershipsNotInTeam(ctx context.Context, officershipTeamID int) ([]OfficershipDB, error)
	GetOfficershipTeamMember(ctx context.Context, officershipTeamMemberGet OfficershipTeamMemberGetDeleteDTO) (OfficershipTeamMember, error)
	AddOfficershipTeamMember(ctx context.Context, officershipTeamMemberAdd OfficershipTeamMemberAddDTO) (OfficershipTeamMember, error)
	DeleteOfficershipTeamMember(ctx context.Context, officershipTeamMemberEdit OfficershipTeamMemberGetDeleteDTO) error
	RemoveTeamForOfficershipTeamMembers(ctx context.Context, officershipTeamID int) error
	GetOfficershipMembers(ctx context.Context, officershipGet *OfficershipGetDTO, userID *int,
		officershipStatus OfficershipsStatus, officershipMemberStatus OfficershipsStatus,
		orderByOfficerName bool) ([]OfficershipMemberDB, error)
	GetOfficershipMember(ctx context.Context, officershipMemberID int) (OfficershipMemberDB, error)
	AddOfficershipMember(ctx context.Context, officershipMemberAdd OfficershipMemberAddEditDTO) (OfficershipMemberDB, error)
	EditOfficershipMember(ctx context.Context, officershipMemberID int, officershipMemberEdit OfficershipMemberAddEditDTO) (OfficershipMemberDB, error)
	DeleteOfficershipMember(ctx context.Context, officershipMemberID int) error
	RemoveOfficershipForOfficershipMembers(ctx context.Context, officershipID int) error
	RemoveUserForOfficershipMembers(ctx context.Context, userID int) error
}

type OfficershipTeam added in v0.9.6

type OfficershipTeam struct {
	TeamID              int    `db:"team_id" json:"teamID"`
	Name                string `db:"name" json:"name"`
	EmailAlias          string `db:"email_alias" json:"emailAlias"`
	ShortDescription    string `db:"short_description" json:"shortDescription"`
	FullDescription     string `db:"full_description" json:"fullDescription"`
	CurrentOfficerships int    `db:"current_officerships" json:"currentOfficerships"`
	CurrentOfficers     int    `db:"current_officers" json:"currentOfficers"`
}

OfficershipTeam represents relevant officership team fields

type OfficershipTeamAddEditDTO added in v0.9.6

type OfficershipTeamAddEditDTO struct {
	Name             string `db:"name" json:"name"`
	EmailAlias       string `db:"email_alias" json:"emailAlias"`
	ShortDescription string `db:"short_description" json:"shortDescription"`
	FullDescription  string `db:"full_description" json:"fullDescription"`
}

OfficershipTeamAddEditDTO represents relevant officership team fields for adding and editing

type OfficershipTeamGetDTO added in v0.9.6

type OfficershipTeamGetDTO struct {
	TeamID int    `db:"team_id" json:"teamID"`
	Name   string `db:"name" json:"name"`
}

OfficershipTeamGetDTO represents relevant officership team fields for getting

type OfficershipTeamMember added in v0.9.6

type OfficershipTeamMember struct {
	TeamID           int    `db:"team_id" json:"officershipTeamMemberID"`
	OfficerID        int    `db:"officer_id" json:"officerID"`
	IsLeader         bool   `db:"is_leader" json:"isLeader"`
	IsDeputy         bool   `db:"is_deputy" json:"isDeputy"`
	IsCurrent        bool   `db:"is_current" json:"isCurrent"`
	OfficerName      string `db:"officer_name" json:"officerName"`
	CurrentOfficers  int    `db:"current_officers" json:"currentOfficers"`
	PreviousOfficers int    `db:"previous_officers" json:"previousOfficers"`
}

OfficershipTeamMember represents relevant officership team member fields

type OfficershipTeamMemberAddDTO added in v0.9.6

type OfficershipTeamMemberAddDTO struct {
	TeamID    int  `db:"team_id" json:"officershipTeamMemberID"`
	OfficerID int  `db:"officer_id" json:"officerID"`
	IsLeader  bool `db:"is_leader" json:"isLeader"`
	IsDeputy  bool `db:"is_deputy" json:"isDeputy"`
}

OfficershipTeamMemberAddDTO represents relevant officership team member fields for adding

type OfficershipTeamMemberGetDeleteDTO added in v0.9.6

type OfficershipTeamMemberGetDeleteDTO struct {
	TeamID    int `db:"team_id" json:"officershipTeamMemberID"`
	OfficerID int `db:"officer_id" json:"officerID"`
}

OfficershipTeamMemberGetDeleteDTO represents relevant officership team member fields for getting and deleting

type OfficershipsStatus added in v0.9.6

type OfficershipsStatus int

OfficershipsStatus indicates the state desired for a database get of officers

const (
	Any OfficershipsStatus = iota
	Retired
	Current
)

type Permission

type Permission struct {
	PermissionID int    `db:"permission_id" json:"id"`
	Name         string `db:"name" json:"name"`
	Description  string `db:"description" json:"description,omitempty"`
}

Permission represents an individual permission.

type PermissionAddEditDTO added in v0.9.6

type PermissionAddEditDTO struct {
	Name        string `db:"name" json:"name"`
	Description string `db:"description" json:"description,omitempty"`
}

PermissionAddEditDTO represents a permission to be added or edited.

type PermissionRepo

type PermissionRepo interface {
	ListAllPermissions(ctx context.Context) ([]Permission, error)
	ListPermissionsWithRolesCount(ctx context.Context) ([]PermissionWithRolesCount, error)
	ListPermissionMembersByID(ctx context.Context, permissionID int) ([]User, error)
	GetPermission(ctx context.Context, permissionID int) (Permission, error)
	GetPermissionWithRolesCount(ctx context.Context, permissionID int) (PermissionWithRolesCount, error)
	AddPermission(ctx context.Context, permission PermissionAddEditDTO) (Permission, error)
	EditPermission(ctx context.Context, permissionID int, permission PermissionAddEditDTO) (Permission, error)
	DeletePermission(ctx context.Context, permissionID int) error
}

PermissionRepo defines all permission interactions

type PermissionWithRolesCount added in v0.9.6

type PermissionWithRolesCount struct {
	PermissionID int    `db:"permission_id" json:"id"`
	Name         string `db:"name" json:"name"`
	Description  string `db:"description" json:"description,omitempty"`
	Roles        int    `db:"roles" json:"roles"`
}

PermissionWithRolesCount represents an individual permission with a count of how many roles ues this.

type Repo added in v0.9.6

func NewStore

func NewStore(db *sqlx.DB, cdn *s3.S3, cdnEndpoint string) Repo

NewStore creates a new store

type Role

type Role struct {
	RoleID      int    `db:"role_id" json:"id"`
	Name        string `db:"name" json:"name"`
	Description string `db:"description" json:"description"`
}

type RoleAddEditDTO added in v0.9.6

type RoleAddEditDTO struct {
	Name        string `json:"name"`
	Description string `json:"description"`
}

type RoleFull added in v0.9.6

type RoleFull struct {
	Role
	Permissions []Permission `json:"permissions"`
	Users       []User       `json:"users"`
}

type RoleGetDTO added in v0.9.6

type RoleGetDTO struct {
	RoleID int    `json:"roleID"`
	Name   string `json:"name"`
}

RoleGetDTO represents relevant role fields for getting

type RolePermission added in v0.9.6

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 RoleRepo added in v0.8.0

type RoleRepo interface {
	ListAllRolesWithPermissions(ctx context.Context) ([]RoleWithPermissions, error)
	ListAllRolesWithCount(ctx context.Context) ([]RoleWithCount, error)
	GetRole(ctx context.Context, roleGetDTO RoleGetDTO) (Role, error)
	GetRoleFull(ctx context.Context, roleID int) (RoleFull, error)
	ListRoleMembersByID(ctx context.Context, roleID int) ([]User, int, error)
	ListRolePermissionsByID(ctx context.Context, roleID int) ([]Permission, error)
	AddRole(ctx context.Context, roleAdd RoleAddEditDTO) (Role, error)
	EditRole(ctx context.Context, roleID int, roleEdit RoleAddEditDTO) (Role, error)
	DeleteRole(ctx context.Context, roleID int) error
	RemoveRoleForPermissions(ctx context.Context, roleID int) error
	RemoveRoleForUsers(ctx context.Context, roleID int) error
	GetRoleUser(ctx context.Context, roleUser RoleUser) (RoleUser, error)
	GetUsersNotInRole(ctx context.Context, roleID int) ([]User, error)
	AddRoleUser(ctx context.Context, roleUser RoleUser) (RoleUser, error)
	RemoveRoleUser(ctx context.Context, roleUser RoleUser) error
	RemoveUserForRoles(ctx context.Context, userID int) error
	GetPermissionsForRole(ctx context.Context, roleID int) ([]Permission, error)
	GetRolesForPermission(ctx context.Context, permissionID int) ([]Role, error)
	GetRolePermission(ctx context.Context, rolePermission RolePermission) (RolePermission, error)
	GetPermissionsNotInRole(ctx context.Context, roleID int) ([]Permission, error)
	AddRolePermission(ctx context.Context, rolePermission RolePermission) (RolePermission, error)
	RemoveRolePermission(ctx context.Context, rolePermission RolePermission) error
}

RoleRepo defines all role interaction

type RoleUser added in v0.9.6

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 RoleWithCount added in v0.9.6

type RoleWithCount struct {
	Role
	Users       int `db:"users" json:"users"`
	Permissions int `db:"permissions" json:"permissions"`
}

RoleWithCount represents a "group" of permissions where multiple users can have this role, and they will inherit these permissions.

type RoleWithPermissions added in v0.9.6

type RoleWithPermissions struct {
	Role
	Permissions []Permission `json:"permissions"`
}

RoleWithPermissions represents a "group" of permissions where multiple users can have this role, and they will inherit these permissions.

type Store

type Store struct {
	// contains filtered or unexported fields
}

Store contains our dependency

func (*Store) AddOfficership added in v0.9.6

func (s *Store) AddOfficership(ctx context.Context, officershipAdd OfficershipAddEditDTO) (OfficershipDB, error)

func (*Store) AddOfficershipMember added in v0.9.6

func (s *Store) AddOfficershipMember(ctx context.Context, officershipMemberAdd OfficershipMemberAddEditDTO) (OfficershipMemberDB, error)

func (*Store) AddOfficershipTeam added in v0.9.6

func (s *Store) AddOfficershipTeam(ctx context.Context, officershipTeamAdd OfficershipTeamAddEditDTO) (OfficershipTeam, error)

func (*Store) AddOfficershipTeamMember added in v0.9.6

func (s *Store) AddOfficershipTeamMember(ctx context.Context, officershipTeamMemberAdd OfficershipTeamMemberAddDTO) (OfficershipTeamMember, error)

func (*Store) AddPermission added in v0.9.6

func (s *Store) AddPermission(ctx context.Context, permission PermissionAddEditDTO) (Permission, error)

AddPermission adds a new permission

func (*Store) AddRole added in v0.9.6

func (s *Store) AddRole(ctx context.Context, roleAdd RoleAddEditDTO) (Role, error)

func (*Store) AddRolePermission added in v0.9.6

func (s *Store) AddRolePermission(ctx context.Context, rp1 RolePermission) (RolePermission, error)

AddRolePermission creates a link between a role.Role and permission.Permission

func (*Store) AddRoleUser added in v0.9.6

func (s *Store) AddRoleUser(ctx context.Context, ru1 RoleUser) (RoleUser, error)

AddRoleUser creates a link between a role.Role and User

func (*Store) CountOfficerships added in v0.9.6

func (s *Store) CountOfficerships(ctx context.Context) (CountOfficerships, error)

func (*Store) CountUsersAll added in v0.9.6

func (s *Store) CountUsersAll(ctx context.Context) (CountUsers, error)

CountUsersAll will get the number of total users

func (*Store) DeleteOfficership added in v0.9.6

func (s *Store) DeleteOfficership(ctx context.Context, officershipID int) error

func (*Store) DeleteOfficershipMember added in v0.9.6

func (s *Store) DeleteOfficershipMember(ctx context.Context, officershipMemberID int) error

func (*Store) DeleteOfficershipTeam added in v0.9.6

func (s *Store) DeleteOfficershipTeam(ctx context.Context, officershipTeamID int) error

func (*Store) DeleteOfficershipTeamMember added in v0.9.6

func (s *Store) DeleteOfficershipTeamMember(ctx context.Context, officershipTeamMemberDelete OfficershipTeamMemberGetDeleteDTO) error

func (*Store) DeletePermission added in v0.9.6

func (s *Store) DeletePermission(ctx context.Context, permissionID int) error

DeletePermission deletes a specific permission

func (*Store) DeleteRole added in v0.9.6

func (s *Store) DeleteRole(ctx context.Context, roleID int) error

func (*Store) EditOfficership added in v0.9.6

func (s *Store) EditOfficership(ctx context.Context, officershipID int, officershipEdit OfficershipAddEditDTO) (OfficershipDB, error)

func (*Store) EditOfficershipMember added in v0.9.6

func (s *Store) EditOfficershipMember(ctx context.Context, officershipMemberID int, officershipMemberAdd OfficershipMemberAddEditDTO) (OfficershipMemberDB, error)

func (*Store) EditOfficershipTeam added in v0.9.6

func (s *Store) EditOfficershipTeam(ctx context.Context, officershipTeamID int, officershipTeamAdd OfficershipTeamAddEditDTO) (OfficershipTeam, error)

func (*Store) EditPermission added in v0.9.6

func (s *Store) EditPermission(ctx context.Context, permissionID int, permission PermissionAddEditDTO) (Permission, error)

EditPermission edits an existing permission

func (*Store) EditRole added in v0.9.6

func (s *Store) EditRole(ctx context.Context, roleID int, roleEdit RoleAddEditDTO) (Role, error)

func (*Store) GetOfficership added in v0.9.6

func (s *Store) GetOfficership(ctx context.Context, officershipGetDTO OfficershipGetDTO) (OfficershipDB, error)

func (*Store) GetOfficershipMember added in v0.9.6

func (s *Store) GetOfficershipMember(ctx context.Context, officershipMemberID int) (OfficershipMemberDB, error)

func (*Store) GetOfficershipMembers added in v0.9.6

func (s *Store) GetOfficershipMembers(ctx context.Context, officershipGet *OfficershipGetDTO, userID *int,
	officershipStatus OfficershipsStatus, officershipMemberStatus OfficershipsStatus,
	orderByOfficerName bool) ([]OfficershipMemberDB, error)

func (*Store) GetOfficershipTeam added in v0.9.6

func (s *Store) GetOfficershipTeam(ctx context.Context, officershipTeamGet OfficershipTeamGetDTO) (OfficershipTeam, error)

func (*Store) GetOfficershipTeamMember added in v0.9.6

func (s *Store) GetOfficershipTeamMember(ctx context.Context, officershipTeamMemberGet OfficershipTeamMemberGetDeleteDTO) (OfficershipTeamMember, error)

func (*Store) GetOfficershipTeamMembers added in v0.9.6

func (s *Store) GetOfficershipTeamMembers(ctx context.Context, officershipTeamID *int,
	officershipStatus OfficershipsStatus) ([]OfficershipTeamMember, error)

func (*Store) GetOfficershipTeams added in v0.9.6

func (s *Store) GetOfficershipTeams(ctx context.Context) ([]OfficershipTeam, error)

func (*Store) GetOfficerships added in v0.9.6

func (s *Store) GetOfficerships(ctx context.Context, officershipStatus OfficershipsStatus) ([]OfficershipDB, error)

func (*Store) GetOfficershipsNotInTeam added in v0.9.6

func (s *Store) GetOfficershipsNotInTeam(ctx context.Context, officershipTeamID int) ([]OfficershipDB, error)

func (*Store) GetPermission added in v0.9.6

func (s *Store) GetPermission(ctx context.Context, permissionID int) (Permission, error)

GetPermission returns a permission

func (*Store) GetPermissionWithRolesCount added in v0.9.6

func (s *Store) GetPermissionWithRolesCount(ctx context.Context, permissionID int) (PermissionWithRolesCount, error)

GetPermissionWithRolesCount returns a permission with a roles count

func (*Store) GetPermissionsForRole added in v0.9.6

func (s *Store) GetPermissionsForRole(ctx context.Context, roleID int) ([]Permission, error)

GetPermissionsForRole returns all permissions for a role - moved here for cycle import reasons

func (*Store) GetPermissionsNotInRole added in v0.9.6

func (s *Store) GetPermissionsNotInRole(ctx context.Context, roleID int) ([]Permission, error)

GetPermissionsNotInRole returns all the permissions not currently in the role.Role to be added

func (*Store) GetRole added in v0.9.6

func (s *Store) GetRole(ctx context.Context, roleGetDTO RoleGetDTO) (Role, error)

func (*Store) GetRoleFull added in v0.9.6

func (s *Store) GetRoleFull(ctx context.Context, roleID int) (RoleFull, error)

GetRoleFull returns all users and permissions of a certain role. It doesn't return the full User object. Returns user_id, avatar, nickname, first_name, last_name.

There will likely be modifications to include the other fields but will need to add a filter at the web handler first or offer a different function.

func (*Store) GetRolePermission added in v0.9.6

func (s *Store) GetRolePermission(ctx context.Context, rp1 RolePermission) (RolePermission, error)

GetRolePermission returns a role permission - moved here for cycle import reasons

func (*Store) GetRoleUser added in v0.9.6

func (s *Store) GetRoleUser(ctx context.Context, ru1 RoleUser) (RoleUser, error)

GetRoleUser returns a role user - moved here for cycle import reasons

func (*Store) GetRolesForPermission added in v0.9.6

func (s *Store) GetRolesForPermission(ctx context.Context, permissionID int) ([]Role, error)

GetRolesForPermission returns all roles for a permission - moved here for cycle import reasons

func (*Store) GetUser added in v0.8.0

func (s *Store) GetUser(ctx context.Context, userID int) (User, error)

GetUser returns basic user information to be used for other services.

func (*Store) GetUserByEmail added in v0.9.5

func (s *Store) GetUserByEmail(ctx context.Context, email string) (User, error)

GetUserByEmail returns basic user information to be used for other services.

func (*Store) GetUserByEmailFull added in v0.9.5

func (s *Store) GetUserByEmailFull(ctx context.Context, email string) (UserFullDB, error)

GetUserByEmailFull will return all user information to be used for profile and management.

func (*Store) GetUserFull added in v0.8.0

func (s *Store) GetUserFull(ctx context.Context, userID int) (UserFullDB, error)

GetUserFull will return all user information to be used for profile and management.

func (*Store) GetUsersNotInRole added in v0.9.6

func (s *Store) GetUsersNotInRole(ctx context.Context, roleID int) ([]User, error)

GetUsersNotInRole returns all the users not currently in the role.Role to be added

func (*Store) GetUsersPagination added in v0.9.6

func (s *Store) GetUsersPagination(ctx context.Context, size, page int, search, sortBy, direction, enabled,
	deleted string) ([]UserFullDB, int, error)

GetUsersPagination will get users search with sorting with size and page, enabled and deleted Use the parameter direction for determining of the sorting will be ascending(asc) or descending(desc)

func (*Store) ListAllPermissions added in v0.8.0

func (s *Store) ListAllPermissions(ctx context.Context) ([]Permission, error)

func (*Store) ListAllRolesWithCount added in v0.9.6

func (s *Store) ListAllRolesWithCount(ctx context.Context) ([]RoleWithCount, error)

func (*Store) ListAllRolesWithPermissions added in v0.9.6

func (s *Store) ListAllRolesWithPermissions(ctx context.Context) ([]RoleWithPermissions, error)

func (*Store) ListAllUsers added in v0.8.0

func (s *Store) ListAllUsers(ctx context.Context) ([]User, error)

ListAllUsers returns all users. It doesn't return the full User object. Returns user_id, avatar, nickname, first_name, last_name.

There will likely be modifications to include the other fields but will need to add a filter at the web handler first or offer a different function.

func (*Store) ListPermissionMembersByID added in v0.8.0

func (s *Store) ListPermissionMembersByID(ctx context.Context, permissionID int) ([]User, error)

func (*Store) ListPermissionsWithRolesCount added in v0.9.6

func (s *Store) ListPermissionsWithRolesCount(ctx context.Context) ([]PermissionWithRolesCount, error)

func (*Store) ListRoleMembersByID added in v0.8.0

func (s *Store) ListRoleMembersByID(ctx context.Context, roleID int) ([]User, int, error)

ListRoleMembersByID returns all users who have a certain role. It doesn't return the full User object. Returns user_id, avatar, nickname, first_name, last_name.

There will likely be modifications to include the other fields but will need to add a filter at the web handler first or offer a different function.

func (*Store) ListRolePermissionsByID added in v0.8.0

func (s *Store) ListRolePermissionsByID(ctx context.Context, roleID int) ([]Permission, error)

func (*Store) OfficershipDBToOfficership added in v0.9.6

func (s *Store) OfficershipDBToOfficership(officershipDB OfficershipDB) Officership

func (*Store) OfficershipMemberDBToOfficershipMember added in v0.9.6

func (s *Store) OfficershipMemberDBToOfficershipMember(officershipDB OfficershipMemberDB) OfficershipMember

func (*Store) RemoveOfficershipForOfficershipMembers added in v0.9.6

func (s *Store) RemoveOfficershipForOfficershipMembers(ctx context.Context, officershipID int) error

func (*Store) RemoveRoleForPermissions added in v0.9.6

func (s *Store) RemoveRoleForPermissions(ctx context.Context, roleID int) error

RemoveRoleForPermissions deletes links between a Role and Permissions

func (*Store) RemoveRoleForUsers added in v0.9.6

func (s *Store) RemoveRoleForUsers(ctx context.Context, roleID int) error

RemoveRoleForUsers deletes links between a Role and Users

func (*Store) RemoveRolePermission added in v0.9.6

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.9.6

func (s *Store) RemoveRoleUser(ctx context.Context, ru RoleUser) error

RemoveRoleUser removes a link between a role.Role and User

func (*Store) RemoveTeamForOfficershipTeamMembers added in v0.9.6

func (s *Store) RemoveTeamForOfficershipTeamMembers(ctx context.Context, officershipTeamID int) error

func (*Store) RemoveUserForOfficershipMembers added in v0.9.6

func (s *Store) RemoveUserForOfficershipMembers(ctx context.Context, userID int) error

func (*Store) RemoveUserForRoles added in v0.9.6

func (s *Store) RemoveUserForRoles(ctx context.Context, userID int) error

RemoveUserForRoles removes all links between role.Role and a User

type User

type User struct {
	UserID      int          `db:"user_id" json:"id"`
	Username    string       `db:"username" json:"username,omitempty"`
	Email       string       `db:"email" json:"email,omitempty"`
	Nickname    string       `db:"nickname" json:"nickname"`
	Avatar      string       `db:"avatar" json:"avatar"`
	UseGravatar bool         `db:"use_gravatar" json:"useGravatar"`
	FirstName   string       `db:"first_name" json:"firstName"`
	LastName    string       `db:"last_name" json:"lastName"`
	Permissions []Permission `json:"permissions,omitempty"`
}

User represents a user object to be used when not all data is required

type UserFull

type UserFull struct {
	User
	LastLogin *time.Time `json:"lastLogin,omitempty"`
	Enabled   bool       `json:"enabled"`
	CreatedAt *time.Time `json:"createdAt,omitempty"`
	CreatedBy *int64     `json:"createdBy,omitempty"`
	UpdatedAt *time.Time `json:"updatedAt,omitempty"`
	UpdatedBy *int64     `json:"updatedBy,omitempty"`
	DeletedAt *time.Time `json:"deletedAt,omitempty"`
	DeletedBy *int64     `json:"deletedBy,omitempty"`
	Roles     []Role     `json:"roles,omitempty"`
}

UserFull represents a user and all columns

type UserFullDB added in v0.9.6

type UserFullDB struct {
	User
	LastLogin null.Time `db:"last_login"`
	Enabled   bool      `db:"enabled"`
	CreatedAt null.Time `db:"created_at"`
	CreatedBy null.Int  `db:"created_by"`
	UpdatedAt null.Time `db:"updated_at"`
	UpdatedBy null.Int  `db:"updated_by"`
	DeletedAt null.Time `db:"deleted_at"`
	DeletedBy null.Int  `db:"deleted_by"`
	Roles     []Role
}

UserFullDB represents a user and all columns

type UserFullPagination added in v0.9.6

type UserFullPagination struct {
	Users     []UserFull `json:"users"`
	FullCount int        `json:"fullCount"`
}

type UserRepo

type UserRepo interface {
	CountUsersAll(ctx context.Context) (CountUsers, error)
	ListAllUsers(ctx context.Context) ([]User, error)
	GetUser(ctx context.Context, userID int) (User, error)
	GetUserFull(ctx context.Context, userID int) (UserFullDB, error)
	GetUserByEmail(ctx context.Context, email string) (User, error)
	GetUserByEmailFull(ctx context.Context, email string) (UserFullDB, error)
	GetUsersPagination(ctx context.Context, size, page int, search, sortBy, direction, enabled,
		deleted string) ([]UserFullDB, int, error)
}

UserRepo defines all user interactions

Jump to

Keyboard shortcuts

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