update User
This commit is contained in:
parent
72f30fce59
commit
2a5e05c3ad
10
action.go
10
action.go
|
@ -54,6 +54,16 @@ func (s Service) HasPermission(userID, permission string) bool {
|
||||||
return user.HasPermission(userID, permission)
|
return user.HasPermission(userID, permission)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UpdateUserAvatar ...
|
||||||
|
func (s Service) UpdateUserAvatar(userID, avatar string) error {
|
||||||
|
return user.UpdateAvatar(userID, avatar)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteUser ...
|
||||||
|
func (s Service) DeleteUser(userID string) error {
|
||||||
|
return user.Delete(userID)
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Role
|
// Role
|
||||||
//
|
//
|
||||||
|
|
|
@ -27,6 +27,9 @@ type DBUser struct {
|
||||||
HashedPassword string `bson:"hashedPassword"`
|
HashedPassword string `bson:"hashedPassword"`
|
||||||
Status string `bson:"status"`
|
Status string `bson:"status"`
|
||||||
RoleID primitive.ObjectID `bson:"roleId"`
|
RoleID primitive.ObjectID `bson:"roleId"`
|
||||||
|
RequireToChangePassword bool `bson:"requireToChangePassword"`
|
||||||
|
Avatar string `bson:"avatar"`
|
||||||
|
Deleted bool `bson:"deleted"`
|
||||||
Other interface{} `bson:"other"`
|
Other interface{} `bson:"other"`
|
||||||
CreatedAt time.Time `bson:"createdAt"`
|
CreatedAt time.Time `bson:"createdAt"`
|
||||||
UpdatedAt time.Time `bson:"updatedAt"`
|
UpdatedAt time.Time `bson:"updatedAt"`
|
||||||
|
|
|
@ -14,6 +14,7 @@ type UserCreateOptions struct {
|
||||||
Password string
|
Password string
|
||||||
Status string
|
Status string
|
||||||
RoleID string
|
RoleID string
|
||||||
|
RequireToChangePassword bool
|
||||||
Other interface{}
|
Other interface{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,6 +66,7 @@ func newUser(payload model.UserCreateOptions) model.DBUser {
|
||||||
Phone: payload.Phone,
|
Phone: payload.Phone,
|
||||||
Email: payload.Email,
|
Email: payload.Email,
|
||||||
HashedPassword: internal.HashPassword(payload.Password),
|
HashedPassword: internal.HashPassword(payload.Password),
|
||||||
|
RequireToChangePassword: payload.RequireToChangePassword,
|
||||||
Status: payload.Status,
|
Status: payload.Status,
|
||||||
RoleID: roleID,
|
RoleID: roleID,
|
||||||
Other: payload.Other,
|
Other: payload.Other,
|
||||||
|
@ -391,3 +392,81 @@ func checkUserHasPermissionFromCache(roleID primitive.ObjectID, permission strin
|
||||||
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UpdateAvatar ...
|
||||||
|
func UpdateAvatar(userID string, avatar string) error {
|
||||||
|
var (
|
||||||
|
ctx = context.Background()
|
||||||
|
)
|
||||||
|
|
||||||
|
if avatar == "" {
|
||||||
|
return errors.New("no avatar data")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find user exists or not
|
||||||
|
id, isValid := mongodb.NewIDFromString(userID)
|
||||||
|
if !isValid {
|
||||||
|
return errors.New("invalid role id data")
|
||||||
|
}
|
||||||
|
user, _ := findByID(ctx, id)
|
||||||
|
if user.ID.IsZero() {
|
||||||
|
return errors.New("user not found")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setup condition
|
||||||
|
cond := bson.M{
|
||||||
|
"_id": id,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setup update data
|
||||||
|
updateData := bson.M{
|
||||||
|
"$set": bson.M{
|
||||||
|
"avatar": avatar,
|
||||||
|
"updatedAt": internal.Now(),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update
|
||||||
|
if err := updateOneByCondition(ctx, cond, updateData); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete ...
|
||||||
|
func Delete(userID string) error {
|
||||||
|
var (
|
||||||
|
ctx = context.Background()
|
||||||
|
)
|
||||||
|
|
||||||
|
// Find user exists or not
|
||||||
|
id, isValid := mongodb.NewIDFromString(userID)
|
||||||
|
if !isValid {
|
||||||
|
return errors.New("invalid role id data")
|
||||||
|
}
|
||||||
|
user, _ := findByID(ctx, id)
|
||||||
|
if user.ID.IsZero() {
|
||||||
|
return errors.New("user not found")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setup condition
|
||||||
|
cond := bson.M{
|
||||||
|
"_id": id,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setup update data
|
||||||
|
updateData := bson.M{
|
||||||
|
"$set": bson.M{
|
||||||
|
"deleted": true,
|
||||||
|
"updatedAt": internal.Now(),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update
|
||||||
|
if err := updateOneByCondition(ctx, cond, updateData); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue