|
|
|
|
@ -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 |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|