Some checks failed
SonarQube / SonarQube (push) Failing after 5m28s
E2e test on main branch push / server and client test (map[name:admin port:8080]) (push) Failing after 3m33s
Server and lib tests / Library test (js) (push) Failing after 1m36s
Server and lib tests / Library test (vue) (push) Successful in 2m24s
Server and lib tests / Web client test (admin) (push) Successful in 2m52s
Server and lib tests / Web client test (compose) (push) Successful in 3m23s
Server and lib tests / Web client test (discovery) (push) Successful in 2m49s
Server and lib tests / Web client test (one) (push) Successful in 2m52s
Server and lib tests / Web client test (privacy) (push) Successful in 2m44s
Server and lib tests / Web client test (reporter) (push) Successful in 2m56s
Server and lib tests / Web client test (workflow) (push) Successful in 3m0s
Server and lib tests / Server tests (push) Failing after 4m55s
E2e test on main branch push / notify-failure (push) Failing after 9s
Server and lib tests / Send matrix testing notification (push) Successful in 2s
Mark stale issues and pull requests / stale (push) Successful in 40s
1412 lines
34 KiB
Go
Generated
1412 lines
34 KiB
Go
Generated
package service
|
|
|
|
// This file is auto-generated.
|
|
//
|
|
// Changes to this file may cause incorrect behavior and will be lost if
|
|
// the code is regenerated.
|
|
//
|
|
// Definitions file that controls how this file is generated:
|
|
// system/service/user_actions.yaml
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"github.com/cortezaproject/corteza/server/pkg/actionlog"
|
|
"github.com/cortezaproject/corteza/server/pkg/errors"
|
|
"github.com/cortezaproject/corteza/server/pkg/locale"
|
|
"github.com/cortezaproject/corteza/server/system/types"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
type (
|
|
userActionProps struct {
|
|
user *types.User
|
|
new *types.User
|
|
update *types.User
|
|
existing *types.User
|
|
filter *types.UserFilter
|
|
}
|
|
|
|
userAction struct {
|
|
timestamp time.Time
|
|
resource string
|
|
action string
|
|
log string
|
|
severity actionlog.Severity
|
|
|
|
// prefix for error when action fails
|
|
errorMessage string
|
|
|
|
props *userActionProps
|
|
}
|
|
|
|
userLogMetaKey struct{}
|
|
userPropsMetaKey struct{}
|
|
)
|
|
|
|
var (
|
|
// just a placeholder to cover template cases w/o fmt package use
|
|
_ = fmt.Println
|
|
)
|
|
|
|
// *********************************************************************************************************************
|
|
// *********************************************************************************************************************
|
|
// Props methods
|
|
// setUser updates userActionProps's user
|
|
//
|
|
// This function is auto-generated.
|
|
func (p *userActionProps) setUser(user *types.User) *userActionProps {
|
|
p.user = user
|
|
return p
|
|
}
|
|
|
|
// setNew updates userActionProps's new
|
|
//
|
|
// This function is auto-generated.
|
|
func (p *userActionProps) setNew(new *types.User) *userActionProps {
|
|
p.new = new
|
|
return p
|
|
}
|
|
|
|
// setUpdate updates userActionProps's update
|
|
//
|
|
// This function is auto-generated.
|
|
func (p *userActionProps) setUpdate(update *types.User) *userActionProps {
|
|
p.update = update
|
|
return p
|
|
}
|
|
|
|
// setExisting updates userActionProps's existing
|
|
//
|
|
// This function is auto-generated.
|
|
func (p *userActionProps) setExisting(existing *types.User) *userActionProps {
|
|
p.existing = existing
|
|
return p
|
|
}
|
|
|
|
// setFilter updates userActionProps's filter
|
|
//
|
|
// This function is auto-generated.
|
|
func (p *userActionProps) setFilter(filter *types.UserFilter) *userActionProps {
|
|
p.filter = filter
|
|
return p
|
|
}
|
|
|
|
// Serialize converts userActionProps to actionlog.Meta
|
|
//
|
|
// This function is auto-generated.
|
|
func (p userActionProps) Serialize() actionlog.Meta {
|
|
var (
|
|
m = make(actionlog.Meta)
|
|
)
|
|
|
|
if p.user != nil {
|
|
m.Set("user.handle", p.user.Handle, true)
|
|
m.Set("user.email", p.user.Email, true)
|
|
m.Set("user.name", p.user.Name, true)
|
|
m.Set("user.username", p.user.Username, true)
|
|
m.Set("user.ID", p.user.ID, true)
|
|
}
|
|
if p.new != nil {
|
|
m.Set("new.handle", p.new.Handle, true)
|
|
m.Set("new.email", p.new.Email, true)
|
|
m.Set("new.name", p.new.Name, true)
|
|
m.Set("new.username", p.new.Username, true)
|
|
m.Set("new.ID", p.new.ID, true)
|
|
}
|
|
if p.update != nil {
|
|
m.Set("update.handle", p.update.Handle, true)
|
|
m.Set("update.email", p.update.Email, true)
|
|
m.Set("update.name", p.update.Name, true)
|
|
m.Set("update.username", p.update.Username, true)
|
|
m.Set("update.ID", p.update.ID, true)
|
|
}
|
|
if p.existing != nil {
|
|
m.Set("existing.handle", p.existing.Handle, true)
|
|
m.Set("existing.email", p.existing.Email, true)
|
|
m.Set("existing.name", p.existing.Name, true)
|
|
m.Set("existing.username", p.existing.Username, true)
|
|
m.Set("existing.ID", p.existing.ID, true)
|
|
}
|
|
if p.filter != nil {
|
|
m.Set("filter.query", p.filter.Query, true)
|
|
m.Set("filter.userID", p.filter.UserID, true)
|
|
m.Set("filter.roleID", p.filter.RoleID, true)
|
|
m.Set("filter.handle", p.filter.Handle, true)
|
|
m.Set("filter.email", p.filter.Email, true)
|
|
m.Set("filter.username", p.filter.Username, true)
|
|
m.Set("filter.deleted", p.filter.Deleted, true)
|
|
m.Set("filter.suspended", p.filter.Suspended, true)
|
|
m.Set("filter.sort", p.filter.Sort, true)
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
// tr translates string and replaces meta value placeholder with values
|
|
//
|
|
// This function is auto-generated.
|
|
func (p userActionProps) Format(in string, err error) string {
|
|
var (
|
|
pairs = []string{"{{err}}"}
|
|
// first non-empty string
|
|
fns = func(ii ...interface{}) string {
|
|
for _, i := range ii {
|
|
if s := fmt.Sprintf("%v", i); len(s) > 0 {
|
|
return s
|
|
}
|
|
}
|
|
|
|
return ""
|
|
}
|
|
)
|
|
|
|
if err != nil {
|
|
pairs = append(pairs, err.Error())
|
|
} else {
|
|
pairs = append(pairs, "nil")
|
|
}
|
|
|
|
if p.user != nil {
|
|
// replacement for "{{user}}" (in order how fields are defined)
|
|
pairs = append(
|
|
pairs,
|
|
"{{user}}",
|
|
fns(
|
|
p.user.Handle,
|
|
p.user.Email,
|
|
p.user.Name,
|
|
p.user.Username,
|
|
p.user.ID,
|
|
),
|
|
)
|
|
pairs = append(pairs, "{{user.handle}}", fns(p.user.Handle))
|
|
pairs = append(pairs, "{{user.email}}", fns(p.user.Email))
|
|
pairs = append(pairs, "{{user.name}}", fns(p.user.Name))
|
|
pairs = append(pairs, "{{user.username}}", fns(p.user.Username))
|
|
pairs = append(pairs, "{{user.ID}}", fns(p.user.ID))
|
|
}
|
|
|
|
if p.new != nil {
|
|
// replacement for "{{new}}" (in order how fields are defined)
|
|
pairs = append(
|
|
pairs,
|
|
"{{new}}",
|
|
fns(
|
|
p.new.Handle,
|
|
p.new.Email,
|
|
p.new.Name,
|
|
p.new.Username,
|
|
p.new.ID,
|
|
),
|
|
)
|
|
pairs = append(pairs, "{{new.handle}}", fns(p.new.Handle))
|
|
pairs = append(pairs, "{{new.email}}", fns(p.new.Email))
|
|
pairs = append(pairs, "{{new.name}}", fns(p.new.Name))
|
|
pairs = append(pairs, "{{new.username}}", fns(p.new.Username))
|
|
pairs = append(pairs, "{{new.ID}}", fns(p.new.ID))
|
|
}
|
|
|
|
if p.update != nil {
|
|
// replacement for "{{update}}" (in order how fields are defined)
|
|
pairs = append(
|
|
pairs,
|
|
"{{update}}",
|
|
fns(
|
|
p.update.Handle,
|
|
p.update.Email,
|
|
p.update.Name,
|
|
p.update.Username,
|
|
p.update.ID,
|
|
),
|
|
)
|
|
pairs = append(pairs, "{{update.handle}}", fns(p.update.Handle))
|
|
pairs = append(pairs, "{{update.email}}", fns(p.update.Email))
|
|
pairs = append(pairs, "{{update.name}}", fns(p.update.Name))
|
|
pairs = append(pairs, "{{update.username}}", fns(p.update.Username))
|
|
pairs = append(pairs, "{{update.ID}}", fns(p.update.ID))
|
|
}
|
|
|
|
if p.existing != nil {
|
|
// replacement for "{{existing}}" (in order how fields are defined)
|
|
pairs = append(
|
|
pairs,
|
|
"{{existing}}",
|
|
fns(
|
|
p.existing.Handle,
|
|
p.existing.Email,
|
|
p.existing.Name,
|
|
p.existing.Username,
|
|
p.existing.ID,
|
|
),
|
|
)
|
|
pairs = append(pairs, "{{existing.handle}}", fns(p.existing.Handle))
|
|
pairs = append(pairs, "{{existing.email}}", fns(p.existing.Email))
|
|
pairs = append(pairs, "{{existing.name}}", fns(p.existing.Name))
|
|
pairs = append(pairs, "{{existing.username}}", fns(p.existing.Username))
|
|
pairs = append(pairs, "{{existing.ID}}", fns(p.existing.ID))
|
|
}
|
|
|
|
if p.filter != nil {
|
|
// replacement for "{{filter}}" (in order how fields are defined)
|
|
pairs = append(
|
|
pairs,
|
|
"{{filter}}",
|
|
fns(
|
|
p.filter.Query,
|
|
p.filter.UserID,
|
|
p.filter.RoleID,
|
|
p.filter.Handle,
|
|
p.filter.Email,
|
|
p.filter.Username,
|
|
p.filter.Deleted,
|
|
p.filter.Suspended,
|
|
p.filter.Sort,
|
|
),
|
|
)
|
|
pairs = append(pairs, "{{filter.query}}", fns(p.filter.Query))
|
|
pairs = append(pairs, "{{filter.userID}}", fns(p.filter.UserID))
|
|
pairs = append(pairs, "{{filter.roleID}}", fns(p.filter.RoleID))
|
|
pairs = append(pairs, "{{filter.handle}}", fns(p.filter.Handle))
|
|
pairs = append(pairs, "{{filter.email}}", fns(p.filter.Email))
|
|
pairs = append(pairs, "{{filter.username}}", fns(p.filter.Username))
|
|
pairs = append(pairs, "{{filter.deleted}}", fns(p.filter.Deleted))
|
|
pairs = append(pairs, "{{filter.suspended}}", fns(p.filter.Suspended))
|
|
pairs = append(pairs, "{{filter.sort}}", fns(p.filter.Sort))
|
|
}
|
|
return strings.NewReplacer(pairs...).Replace(in)
|
|
}
|
|
|
|
// *********************************************************************************************************************
|
|
// *********************************************************************************************************************
|
|
// Action methods
|
|
|
|
// String returns loggable description as string
|
|
//
|
|
// This function is auto-generated.
|
|
func (a *userAction) String() string {
|
|
var props = &userActionProps{}
|
|
|
|
if a.props != nil {
|
|
props = a.props
|
|
}
|
|
|
|
return props.Format(a.log, nil)
|
|
}
|
|
|
|
func (e *userAction) ToAction() *actionlog.Action {
|
|
return &actionlog.Action{
|
|
Resource: e.resource,
|
|
Action: e.action,
|
|
Severity: e.severity,
|
|
Description: e.String(),
|
|
Meta: e.props.Serialize(),
|
|
}
|
|
}
|
|
|
|
// *********************************************************************************************************************
|
|
// *********************************************************************************************************************
|
|
// Action constructors
|
|
|
|
// UserActionSearch returns "system:user.search" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionSearch(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "search",
|
|
log: "searched for matching users",
|
|
severity: actionlog.Info,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionLookup returns "system:user.lookup" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionLookup(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "lookup",
|
|
log: "looked-up for a {{user}}",
|
|
severity: actionlog.Info,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionCreate returns "system:user.create" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionCreate(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "create",
|
|
log: "created {{user}}",
|
|
severity: actionlog.Notice,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionUpdate returns "system:user.update" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionUpdate(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "update",
|
|
log: "updated {{user}}",
|
|
severity: actionlog.Notice,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionDelete returns "system:user.delete" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionDelete(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "delete",
|
|
log: "deleted {{user}}",
|
|
severity: actionlog.Notice,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionUndelete returns "system:user.undelete" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionUndelete(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "undelete",
|
|
log: "undeleted {{user}}",
|
|
severity: actionlog.Notice,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionSuspend returns "system:user.suspend" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionSuspend(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "suspend",
|
|
log: "suspended {{user}}",
|
|
severity: actionlog.Notice,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionUnsuspend returns "system:user.unsuspend" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionUnsuspend(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "unsuspend",
|
|
log: "unsuspended {{user}}",
|
|
severity: actionlog.Notice,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionSetPassword returns "system:user.setPassword" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionSetPassword(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "setPassword",
|
|
log: "password changed for {{user}}",
|
|
severity: actionlog.Notice,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionRemovePassword returns "system:user.removePassword" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionRemovePassword(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "removePassword",
|
|
log: "password removed for {{user}}",
|
|
severity: actionlog.Notice,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionDeleteAuthTokens returns "system:user.deleteAuthTokens" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionDeleteAuthTokens(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "deleteAuthTokens",
|
|
log: "deleted auth tokens of {{user}}",
|
|
severity: actionlog.Notice,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionDeleteAuthSessions returns "system:user.deleteAuthSessions" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionDeleteAuthSessions(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "deleteAuthSessions",
|
|
log: "deleted auth sessions of {{user}}",
|
|
severity: actionlog.Notice,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionUploadAvatar returns "system:user.uploadAvatar" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionUploadAvatar(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "uploadAvatar",
|
|
log: "uploaded avatar of {{user}}",
|
|
severity: actionlog.Notice,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionGenerateAvatar returns "system:user.generateAvatar" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionGenerateAvatar(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "generateAvatar",
|
|
log: "generated avatar of {{user}}",
|
|
severity: actionlog.Notice,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// UserActionDeleteAvatar returns "system:user.deleteAvatar" action
|
|
//
|
|
// This function is auto-generated.
|
|
func UserActionDeleteAvatar(props ...*userActionProps) *userAction {
|
|
a := &userAction{
|
|
timestamp: time.Now(),
|
|
resource: "system:user",
|
|
action: "deleteAvatar",
|
|
log: "deleted avatar of {{user}}",
|
|
severity: actionlog.Notice,
|
|
}
|
|
|
|
if len(props) > 0 {
|
|
a.props = props[0]
|
|
}
|
|
|
|
return a
|
|
}
|
|
|
|
// *********************************************************************************************************************
|
|
// *********************************************************************************************************************
|
|
// Error constructors
|
|
|
|
// UserErrGeneric returns "system:user.generic" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrGeneric(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("failed to complete request due to internal error", nil),
|
|
|
|
errors.Meta("type", "generic"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "{err}"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.generic"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrNotFound returns "system:user.notFound" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrNotFound(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("user not found", nil),
|
|
|
|
errors.Meta("type", "notFound"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.notFound"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrInvalidID returns "system:user.invalidID" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrInvalidID(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("invalid ID", nil),
|
|
|
|
errors.Meta("type", "invalidID"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.invalidID"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrInvalidHandle returns "system:user.invalidHandle" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrInvalidHandle(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("invalid handle", nil),
|
|
|
|
errors.Meta("type", "invalidHandle"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.invalidHandle"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrInvalidEmail returns "system:user.invalidEmail" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrInvalidEmail(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("invalid email", nil),
|
|
|
|
errors.Meta("type", "invalidEmail"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.invalidEmail"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrStaleData returns "system:user.staleData" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrStaleData(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("user was modified by someone else or by a workflow after you've opened it. Please refresh to see the latest updated version", nil),
|
|
|
|
errors.Meta("type", "staleData"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.staleData"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrNotAllowedToRead returns "system:user.notAllowedToRead" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrNotAllowedToRead(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("not allowed to read this user", nil),
|
|
|
|
errors.Meta("type", "notAllowedToRead"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "failed to read {{user.handle}}; insufficient permissions"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.notAllowedToRead"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrNotAllowedToSearch returns "system:user.notAllowedToSearch" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrNotAllowedToSearch(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("not allowed to list or search users", nil),
|
|
|
|
errors.Meta("type", "notAllowedToSearch"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "failed to search for users; insufficient permissions"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.notAllowedToSearch"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrNotAllowedToListUsers returns "system:user.notAllowedToListUsers" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrNotAllowedToListUsers(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("not allowed to list users", nil),
|
|
|
|
errors.Meta("type", "notAllowedToListUsers"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "failed to list user; insufficient permissions"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.notAllowedToListUsers"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrNotAllowedToCreate returns "system:user.notAllowedToCreate" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrNotAllowedToCreate(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("not allowed to create users", nil),
|
|
|
|
errors.Meta("type", "notAllowedToCreate"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "failed to create users; insufficient permissions"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.notAllowedToCreate"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrNotAllowedToCreateSystem returns "system:user.notAllowedToCreateSystem" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrNotAllowedToCreateSystem(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("not allowed to create system users", nil),
|
|
|
|
errors.Meta("type", "notAllowedToCreateSystem"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "failed to create system users"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.notAllowedToCreateSystem"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrNotAllowedToUpdate returns "system:user.notAllowedToUpdate" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrNotAllowedToUpdate(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("not allowed to update this user", nil),
|
|
|
|
errors.Meta("type", "notAllowedToUpdate"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "failed to update {{user.handle}}; insufficient permissions"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.notAllowedToUpdate"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrNotAllowedToUpdateSystem returns "system:user.notAllowedToUpdateSystem" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrNotAllowedToUpdateSystem(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("not allowed to update system users", nil),
|
|
|
|
errors.Meta("type", "notAllowedToUpdateSystem"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "failed to update system users"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.notAllowedToUpdateSystem"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrNotAllowedToDelete returns "system:user.notAllowedToDelete" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrNotAllowedToDelete(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("not allowed to delete this user", nil),
|
|
|
|
errors.Meta("type", "notAllowedToDelete"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "failed to delete {{user.handle}}; insufficient permissions"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.notAllowedToDelete"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrNotAllowedToUndelete returns "system:user.notAllowedToUndelete" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrNotAllowedToUndelete(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("not allowed to undelete this user", nil),
|
|
|
|
errors.Meta("type", "notAllowedToUndelete"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "failed to undelete {{user.handle}}; insufficient permissions"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.notAllowedToUndelete"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrNotAllowedToSuspend returns "system:user.notAllowedToSuspend" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrNotAllowedToSuspend(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("not allowed to suspend this user", nil),
|
|
|
|
errors.Meta("type", "notAllowedToSuspend"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "failed to suspend {{user.handle}}; insufficient permissions"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.notAllowedToSuspend"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrNotAllowedToUnsuspend returns "system:user.notAllowedToUnsuspend" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrNotAllowedToUnsuspend(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("not allowed to unsuspend this user", nil),
|
|
|
|
errors.Meta("type", "notAllowedToUnsuspend"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "failed to unsuspend {{user.handle}}; insufficient permissions"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.notAllowedToUnsuspend"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrHandleNotUnique returns "system:user.handleNotUnique" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrHandleNotUnique(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("handle not unique", nil),
|
|
|
|
errors.Meta("type", "handleNotUnique"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "used duplicate handle ({{user.handle}}) for user"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.handleNotUnique"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrEmailNotUnique returns "system:user.emailNotUnique" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrEmailNotUnique(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("email not unique", nil),
|
|
|
|
errors.Meta("type", "emailNotUnique"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "used duplicate email ({{user.email}}) for user"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.emailNotUnique"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrUsernameNotUnique returns "system:user.usernameNotUnique" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrUsernameNotUnique(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("username not unique", nil),
|
|
|
|
errors.Meta("type", "usernameNotUnique"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "used duplicate username ({{user.username}}) for user"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.usernameNotUnique"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrPasswordNotSecure returns "system:user.passwordNotSecure" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrPasswordNotSecure(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("provided password is not secure; use longer password with more special characters", nil),
|
|
|
|
errors.Meta("type", "passwordNotSecure"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.passwordNotSecure"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrMaxUserLimitReached returns "system:user.maxUserLimitReached" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrMaxUserLimitReached(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("you have reached your user limit, contact your Corteza administrator", nil),
|
|
|
|
errors.Meta("type", "maxUserLimitReached"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.maxUserLimitReached"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// UserErrNotAllowedToDeleteAvatar returns "system:user.notAllowedToDeleteAvatar" as *errors.Error
|
|
//
|
|
// This function is auto-generated.
|
|
func UserErrNotAllowedToDeleteAvatar(mm ...*userActionProps) *errors.Error {
|
|
var p = &userActionProps{}
|
|
if len(mm) > 0 {
|
|
p = mm[0]
|
|
}
|
|
|
|
var e = errors.New(
|
|
errors.KindInternal,
|
|
|
|
p.Format("not allowed to delete avatar for this user", nil),
|
|
|
|
errors.Meta("type", "notAllowedToDeleteAvatar"),
|
|
errors.Meta("resource", "system:user"),
|
|
|
|
// action log entry; no formatting, it will be applied inside recordAction fn.
|
|
errors.Meta(userLogMetaKey{}, "failed to delete {{user.handle}}'s avatar; insufficient permissions"),
|
|
errors.Meta(userPropsMetaKey{}, p),
|
|
|
|
// translation namespace & key
|
|
errors.Meta(locale.ErrorMetaNamespace{}, "system"),
|
|
errors.Meta(locale.ErrorMetaKey{}, "user.errors.notAllowedToDeleteAvatar"),
|
|
|
|
errors.StackSkip(1),
|
|
)
|
|
|
|
if len(mm) > 0 {
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// *********************************************************************************************************************
|
|
// *********************************************************************************************************************
|
|
|
|
// recordAction is a service helper function wraps function that can return error
|
|
//
|
|
// It will wrap unrecognized/internal errors with generic errors.
|
|
//
|
|
// This function is auto-generated.
|
|
func (svc user) recordAction(ctx context.Context, props *userActionProps, actionFn func(...*userActionProps) *userAction, err error) error {
|
|
if svc.actionlog == nil || actionFn == nil {
|
|
// action log disabled or no action fn passed, return error as-is
|
|
return err
|
|
} else if err == nil {
|
|
// action completed w/o error, record it
|
|
svc.actionlog.Record(ctx, actionFn(props).ToAction())
|
|
return nil
|
|
}
|
|
|
|
a := actionFn(props).ToAction()
|
|
|
|
// Extracting error information and recording it as action
|
|
a.Error = err.Error()
|
|
|
|
switch c := err.(type) {
|
|
case *errors.Error:
|
|
m := c.Meta()
|
|
|
|
a.Error = err.Error()
|
|
a.Severity = actionlog.Severity(m.AsInt("severity"))
|
|
a.Description = props.Format(m.AsString(userLogMetaKey{}), err)
|
|
|
|
if p, has := m[userPropsMetaKey{}]; has {
|
|
a.Meta = p.(*userActionProps).Serialize()
|
|
}
|
|
|
|
svc.actionlog.Record(ctx, a)
|
|
default:
|
|
svc.actionlog.Record(ctx, a)
|
|
}
|
|
|
|
// Original error is passed on
|
|
return err
|
|
}
|