Adds before/after suspend to system:user resource
This commit is contained in:
Generated
+58
@@ -2553,6 +2553,35 @@ func getEventTypeDefinitions() []eventTypeDef {
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
ResourceType: "system:user",
|
||||
EventType: "beforeSuspend",
|
||||
Properties: []eventTypePropertyDef{
|
||||
|
||||
{
|
||||
Name: "user",
|
||||
Type: "User",
|
||||
Immutable: false,
|
||||
},
|
||||
|
||||
{
|
||||
Name: "oldUser",
|
||||
Type: "User",
|
||||
Immutable: true,
|
||||
},
|
||||
},
|
||||
Constraints: []eventTypeConstraintDef{
|
||||
|
||||
{
|
||||
Name: "user.handle",
|
||||
},
|
||||
|
||||
{
|
||||
Name: "user.email",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
ResourceType: "system:user",
|
||||
EventType: "afterCreate",
|
||||
@@ -2639,5 +2668,34 @@ func getEventTypeDefinitions() []eventTypeDef {
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
ResourceType: "system:user",
|
||||
EventType: "afterSuspend",
|
||||
Properties: []eventTypePropertyDef{
|
||||
|
||||
{
|
||||
Name: "user",
|
||||
Type: "User",
|
||||
Immutable: false,
|
||||
},
|
||||
|
||||
{
|
||||
Name: "oldUser",
|
||||
Type: "User",
|
||||
Immutable: true,
|
||||
},
|
||||
},
|
||||
Constraints: []eventTypeConstraintDef{
|
||||
|
||||
{
|
||||
Name: "user.handle",
|
||||
},
|
||||
|
||||
{
|
||||
Name: "user.email",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+96
@@ -404,6 +404,13 @@ type (
|
||||
*userBase
|
||||
}
|
||||
|
||||
// userBeforeSuspend
|
||||
//
|
||||
// This type is auto-generated.
|
||||
userBeforeSuspend struct {
|
||||
*userBase
|
||||
}
|
||||
|
||||
// userAfterCreate
|
||||
//
|
||||
// This type is auto-generated.
|
||||
@@ -424,6 +431,13 @@ type (
|
||||
userAfterDelete struct {
|
||||
*userBase
|
||||
}
|
||||
|
||||
// userAfterSuspend
|
||||
//
|
||||
// This type is auto-generated.
|
||||
userAfterSuspend struct {
|
||||
*userBase
|
||||
}
|
||||
)
|
||||
|
||||
// ResourceType returns "system"
|
||||
@@ -3047,6 +3061,13 @@ func (userBeforeDelete) EventType() string {
|
||||
return "beforeDelete"
|
||||
}
|
||||
|
||||
// EventType on userBeforeSuspend returns "beforeSuspend"
|
||||
//
|
||||
// This function is auto-generated.
|
||||
func (userBeforeSuspend) EventType() string {
|
||||
return "beforeSuspend"
|
||||
}
|
||||
|
||||
// EventType on userAfterCreate returns "afterCreate"
|
||||
//
|
||||
// This function is auto-generated.
|
||||
@@ -3068,6 +3089,13 @@ func (userAfterDelete) EventType() string {
|
||||
return "afterDelete"
|
||||
}
|
||||
|
||||
// EventType on userAfterSuspend returns "afterSuspend"
|
||||
//
|
||||
// This function is auto-generated.
|
||||
func (userAfterSuspend) EventType() string {
|
||||
return "afterSuspend"
|
||||
}
|
||||
|
||||
// UserOnManual creates onManual for system:user resource
|
||||
//
|
||||
// This function is auto-generated.
|
||||
@@ -3204,6 +3232,40 @@ func UserBeforeDeleteImmutable(
|
||||
}
|
||||
}
|
||||
|
||||
// UserBeforeSuspend creates beforeSuspend for system:user resource
|
||||
//
|
||||
// This function is auto-generated.
|
||||
func UserBeforeSuspend(
|
||||
argUser *types.User,
|
||||
argOldUser *types.User,
|
||||
) *userBeforeSuspend {
|
||||
return &userBeforeSuspend{
|
||||
userBase: &userBase{
|
||||
immutable: false,
|
||||
user: argUser,
|
||||
oldUser: argOldUser,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// UserBeforeSuspendImmutable creates beforeSuspend for system:user resource
|
||||
//
|
||||
// None of the arguments will be mutable!
|
||||
//
|
||||
// This function is auto-generated.
|
||||
func UserBeforeSuspendImmutable(
|
||||
argUser *types.User,
|
||||
argOldUser *types.User,
|
||||
) *userBeforeSuspend {
|
||||
return &userBeforeSuspend{
|
||||
userBase: &userBase{
|
||||
immutable: true,
|
||||
user: argUser,
|
||||
oldUser: argOldUser,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// UserAfterCreate creates afterCreate for system:user resource
|
||||
//
|
||||
// This function is auto-generated.
|
||||
@@ -3306,6 +3368,40 @@ func UserAfterDeleteImmutable(
|
||||
}
|
||||
}
|
||||
|
||||
// UserAfterSuspend creates afterSuspend for system:user resource
|
||||
//
|
||||
// This function is auto-generated.
|
||||
func UserAfterSuspend(
|
||||
argUser *types.User,
|
||||
argOldUser *types.User,
|
||||
) *userAfterSuspend {
|
||||
return &userAfterSuspend{
|
||||
userBase: &userBase{
|
||||
immutable: false,
|
||||
user: argUser,
|
||||
oldUser: argOldUser,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// UserAfterSuspendImmutable creates afterSuspend for system:user resource
|
||||
//
|
||||
// None of the arguments will be mutable!
|
||||
//
|
||||
// This function is auto-generated.
|
||||
func UserAfterSuspendImmutable(
|
||||
argUser *types.User,
|
||||
argOldUser *types.User,
|
||||
) *userAfterSuspend {
|
||||
return &userAfterSuspend{
|
||||
userBase: &userBase{
|
||||
immutable: true,
|
||||
user: argUser,
|
||||
oldUser: argOldUser,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// SetUser sets new user value
|
||||
//
|
||||
// This function is auto-generated.
|
||||
|
||||
@@ -60,7 +60,7 @@ system:auth-client:
|
||||
|
||||
system:user:
|
||||
on: ['manual']
|
||||
ba: ['create', 'update', 'delete']
|
||||
ba: ['create', 'update', 'delete', 'suspend']
|
||||
props:
|
||||
- name: 'user'
|
||||
type: '*types.User'
|
||||
|
||||
@@ -594,11 +594,19 @@ func (svc user) Suspend(ctx context.Context, userID uint64) (err error) {
|
||||
return UserErrNotAllowedToSuspend()
|
||||
}
|
||||
|
||||
// Clone u to oldUser
|
||||
oldUser := *u
|
||||
u.SuspendedAt = now()
|
||||
|
||||
if err = svc.eventbus.WaitFor(ctx, event.UserBeforeSuspend(u, &oldUser)); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if err = store.UpdateUser(ctx, svc.store, u); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
_ = svc.eventbus.WaitFor(ctx, event.UserAfterSuspend(u, &oldUser))
|
||||
return nil
|
||||
}()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user