Library/models/user_delete.go

32 lines
499 B
Go
Raw Normal View History

2018-01-23 14:25:41 +00:00
package models
// DeleteUserByID deletes a user by its ID
2018-03-06 11:36:49 +00:00
func DeleteUserByID(id int64, doer *User) error {
2018-01-23 14:25:41 +00:00
// Check if the id is 0
if id == 0 {
return ErrIDCannotBeZero{}
2018-01-23 14:25:41 +00:00
}
// Check if there is > 1 user
total, err := x.Count(User{})
if err != nil {
return err
}
if total < 2 {
return ErrCannotDeleteLastUser{}
}
2018-01-23 14:25:41 +00:00
// Delete the user
_, err = x.Id(id).Delete(&User{})
2018-01-23 14:25:41 +00:00
if err != nil {
return err
}
2018-03-06 11:36:49 +00:00
// Logging
err = logAction(ActionTypeUserDeleted, doer, id)
2018-01-23 14:25:41 +00:00
return err
}