|
|
@@ -47,6 +47,20 @@ func RemoveAccountUser(cmd *m.RemoveAccountUserCommand) error {
|
|
|
return inTransaction(func(sess *xorm.Session) error {
|
|
|
var rawSql = "DELETE FROM account_user WHERE account_id=? and user_id=?"
|
|
|
_, err := sess.Exec(rawSql, cmd.AccountId, cmd.UserId)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ // validate that there is an admin user left
|
|
|
+ res, err := sess.Query("SELECT 1 from account_user WHERE account_id=? and role='Admin'", cmd.AccountId)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(res) == 0 {
|
|
|
+ return m.ErrLastAccountAdmin
|
|
|
+ }
|
|
|
+
|
|
|
return err
|
|
|
})
|
|
|
}
|