Documentation
¶
Index ¶
- func VerifyGroupRequestScope(ctx context.Context, groupId string) (string, error)
- type Blacklist
- type File
- type FilesRes
- type Group
- type GroupTasks
- type GroupUsers
- type GroupsRes
- type InFile
- type PasswordUpdate
- type Task
- type TaskStatus
- type TasksRes
- type TokenData
- type User
- func LoadLoginProto(u *authService.LoginReq) *User
- func LoadRegisterProto(u *authService.RegisterReq) *User
- func LoadUserCreateProto(u *usersService.CreateReq) *User
- func LoadUserFindProto(u *usersService.FindReq) *User
- func LoadUserProto(u *usersService.User) *User
- func LoadUserUpdateProto(u *usersService.UpdateReq) *User
- func VerifyRequestScope(ctx context.Context, scopeType string) (*User, error)
- func VerifyUserRequestScope(ctx context.Context, userId string, scopeType string) (*User, error)
- func (g *User) Authenticate(checkPassword string) error
- func (g *User) BuildFilter() (*User, error)
- func (g *User) BuildUpdate(curUser *User)
- func (g *User) CheckID(chkId string) bool
- func (g *User) HashPassword() error
- func (g *User) LoadScope(scopeUser *User, valCase string)
- func (g *User) ToAuthProto() *authService.User
- func (g *User) ToProto() *usersService.User
- func (g *User) Validate(valCase string) (err error)
- type UsersRes
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Blacklist ¶
type Blacklist struct { Id string `json:"id,omitempty"` AuthToken string `json:"auth_token,omitempty"` LastModified time.Time `json:"last_modified,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` }
Blacklist is a root struct that is used to store the json encoded data for/from a mongodb blacklist doc.
type File ¶
type File struct { Id string `json:"id,omitempty"` OwnerId string `json:"owner_id,omitempty"` OwnerType string `json:"owner_type,omitempty"` GridFSId string `json:"gridfs_id,omitempty"` BucketName string `json:"bucket_name,omitempty"` BucketType string `json:"bucket_type,omitempty"` Name string `json:"name,omitempty"` FileType string `json:"file_type,omitempty"` Size int `json:"size,omitempty"` LastModified time.Time `json:"last_modified,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` DeletedAt time.Time `json:"deleted_at,omitempty"` }
File is a root struct that is used to store the json encoded data for/from a mongodb file doc.
func UsersToFiles ¶
UsersToFiles converts an input slice of user to a slice of file
func (*File) BuildBucketName ¶
BuildBucketName returns a current name for the bucket of a GridFS File
func (*File) BuildFilter ¶
BuildFilter is a function that setups the base user struct during a File modification request
func (*File) BuildUpdate ¶
BuildUpdate is a function that setups the base file struct during a file modification request
type FilesRes ¶
type FilesRes struct { TotalCount int64 `json:"total_count"` TotalPages int64 `json:"total_pages"` Page int64 `json:"page"` Size int64 `json:"size"` HasMore bool `json:"has_more"` Files []*File `json:"files"` }
FilesRes Multiple Files in a paginated response
type Group ¶
type Group struct { Id string `json:"id,omitempty"` Name string `json:"name,omitempty"` RootAdmin bool `json:"root_admin,omitempty"` LastModified time.Time `json:"last_modified,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` DeletedAt time.Time `json:"deleted_at,omitempty"` }
Group is a root struct that is used to store the json encoded data for/from a mongodb group doc.
func LoadGroupCreateProto ¶
func LoadGroupCreateProto(u *groupsService.CreateReq) *Group
LoadGroupCreateProto inputs a groupsService.CreateReq and returns a Group
func LoadGroupFindProto ¶
func LoadGroupFindProto(u *groupsService.FindReq) *Group
LoadGroupFindProto inputs a groupsService.FindReq and returns a Group
func LoadGroupProto ¶
func LoadGroupProto(u *groupsService.Group) *Group
LoadGroupProto inputs a groupsService and returns a Group
func LoadGroupUpdateProto ¶
func LoadGroupUpdateProto(u *groupsService.UpdateReq) *Group
LoadGroupUpdateProto inputs a groupsService.UpdateReq and returns a Group
func (*Group) ToProto ¶
func (g *Group) ToProto() *groupsService.Group
ToProto Convert Group to proto
type GroupTasks ¶
GroupTasks is used for storing a Group record with it's associated Tasks
type GroupUsers ¶
GroupUsers is used for storing a Group record with it's associated Users
type GroupsRes ¶
type GroupsRes struct { TotalCount int64 `json:"total_count"` TotalPages int64 `json:"total_pages"` Page int64 `json:"page"` Size int64 `json:"size"` HasMore bool `json:"has_more"` Groups []*Group `json:"groups"` }
GroupsRes Multiple Groups in a paginated response
func (*GroupsRes) ToProto ¶
func (p *GroupsRes) ToProto() []*groupsService.Group
ToProto convert GroupsRes to proto
type InFile ¶
type InFile struct {
// contains filtered or unexported fields
}
InFile is used for streaming bytes into
type PasswordUpdate ¶
PasswordUpdate stores the structured data from a session token for use
func LoadPasswordUpdateProto ¶
func LoadPasswordUpdateProto(u *authService.UpdatePasswordReq) *PasswordUpdate
LoadPasswordUpdateProto inputs an authService.LoginReq and returns a PasswordUpdate
func (*PasswordUpdate) Validate ¶
func (r *PasswordUpdate) Validate() error
Validate a PasswordUpdate action
type Task ¶
type Task struct { Id string `json:"id,omitempty"` Name string `json:"name,omitempty"` Status TaskStatus `json:"status,omitempty"` Due time.Time `json:"due,omitempty"` Description string `json:"description,omitempty"` UserId string `json:"user_id,omitempty"` GroupId string `json:"group_id,omitempty"` LastModified time.Time `json:"last_modified,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` DeletedAt time.Time `json:"deleted_at,omitempty"` }
Task is a root struct that is used to store the json encoded data for/from a mongodb group doc.
func LoadTaskCreateProto ¶
func LoadTaskCreateProto(u *tasksService.CreateReq) *Task
LoadTaskCreateProto inputs a tasksService.CreateReq and returns a Task
func LoadTaskFindProto ¶
func LoadTaskFindProto(u *tasksService.FindReq) *Task
LoadTaskFindProto inputs a tasksService.FindReq and returns a Task
func LoadTaskProto ¶
func LoadTaskProto(u *tasksService.Task) *Task
LoadTaskProto inputs a usersService and returns a Task
func LoadTaskUpdateProto ¶
func LoadTaskUpdateProto(u *tasksService.UpdateReq) *Task
LoadTaskUpdateProto inputs a tasksService.UpdateReq and returns a Task
func (*Task) BuildUpdate ¶
BuildUpdate is a function that setups the base task struct during a user modification request
type TaskStatus ¶
type TaskStatus int
const ( UNSPECIFIED TaskStatus = iota NOT_STARTED IN_PROGRESS COMPLETED )
type TasksRes ¶
type TasksRes struct { TotalCount int64 `json:"total_count"` TotalPages int64 `json:"total_pages"` Page int64 `json:"page"` Size int64 `json:"size"` HasMore bool `json:"has_more"` Tasks []*Task `json:"tasks"` }
TasksRes Multiple Tasks in a paginated response
func (*TasksRes) ToProto ¶
func (p *TasksRes) ToProto() []*tasksService.Task
ToProto convert TasksRes to proto
type TokenData ¶
TokenData stores the structured data from a session token for use
func InitUserToken ¶
InitUserToken inputs a pointer to a user and returns TokenData
func LoadTokenFromContext ¶
LoadTokenFromContext inputs a http request and returns decrypted TokenData or an error
func (*TokenData) AdminRouteRoleCheck ¶
AdminRouteRoleCheck checks admin routes JWT tokens to ensure that a group admin does not break scope
func (*TokenData) CreateToken ¶
CreateToken is used to create a new session JWT token
func (*TokenData) GetGroupsScope ¶
GetGroupsScope returns a scoped Group ID filter based on token User role
func (*TokenData) GetUsersScope ¶
GetUsersScope returns a scoped User ID filter based on token User role
type User ¶
type User struct { Id string `json:"id,omitempty"` Username string `json:"username,omitempty"` Password string `json:"password,omitempty"` FirstName string `json:"firstname,omitempty"` LastName string `json:"lastname,omitempty"` Email string `json:"email,omitempty"` Role string `json:"role,omitempty"` RootAdmin bool `json:"root_admin,omitempty"` GroupId string `json:"group_id,omitempty"` ImageId string `json:"image_id,omitempty"` LastModified time.Time `json:"last_modified,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` DeletedAt time.Time `json:"deleted_at,omitempty"` }
User is a root struct that is used to store the json encoded data for/from a mongodb user doc.
func LoadLoginProto ¶
func LoadLoginProto(u *authService.LoginReq) *User
LoadLoginProto inputs an authService.LoginReq and returns a User
func LoadRegisterProto ¶
func LoadRegisterProto(u *authService.RegisterReq) *User
LoadRegisterProto inputs an authService.RegisterReq and returns a User
func LoadUserCreateProto ¶
func LoadUserCreateProto(u *usersService.CreateReq) *User
LoadUserCreateProto inputs a usersService.CreateReq and returns a User
func LoadUserFindProto ¶
func LoadUserFindProto(u *usersService.FindReq) *User
LoadUserFindProto inputs a usersService.FindReq and returns a User
func LoadUserProto ¶
func LoadUserProto(u *usersService.User) *User
LoadUserProto inputs a usersService.User and returns a User
func LoadUserUpdateProto ¶
func LoadUserUpdateProto(u *usersService.UpdateReq) *User
LoadUserUpdateProto inputs a usersService.UpdateReq and returns a User
func VerifyRequestScope ¶
VerifyRequestScope inputs generic http requests and returns decrypted TokenData or an error
func VerifyUserRequestScope ¶
VerifyUserRequestScope inputs User http request and returns decrypted TokenData or an error
func (*User) Authenticate ¶
Authenticate compares an input password with the hashed password stored in the User model
func (*User) BuildFilter ¶
BuildFilter is a function that setups the base user struct during a user modification request
func (*User) BuildUpdate ¶
BuildUpdate is a function that setups the base user struct during a user modification request
func (*User) HashPassword ¶
HashPassword hashes a user password and associates it with the user struct
func (*User) ToAuthProto ¶
func (g *User) ToAuthProto() *authService.User
ToAuthProto Convert User to auth proto
type UsersRes ¶
type UsersRes struct { TotalCount int64 `json:"total_count"` TotalPages int64 `json:"total_pages"` Page int64 `json:"page"` Size int64 `json:"size"` HasMore bool `json:"has_more"` Users []*User `json:"users"` }
UsersRes Multiple Users in a paginated response
func (*UsersRes) ToProto ¶
func (p *UsersRes) ToProto() []*usersService.User
ToProto convert UsersRes to proto