add quota middleware to enforce quotas. issue #321

Conflicts:
	pkg/api/api.go
This commit is contained in:
woodsaj
2015-09-11 01:03:47 +08:00
parent 9023171940
commit 0688050552
4 changed files with 41 additions and 2 deletions
+12
View File
@@ -86,6 +86,18 @@ func DeleteDashboard(c *middleware.Context) {
func PostDashboard(c *middleware.Context, cmd m.SaveDashboardCommand) {
cmd.OrgId = c.OrgId
dash := cmd.GetDashboardModel()
if dash.Id == 0 {
limitReached, err := m.QuotaReached(cmd.OrgId, m.QUOTA_DASHBOARD)
if err != nil {
c.JsonApiErr(500, "failed to get quota", err)
}
if limitReached {
c.JsonApiErr(403, "Quota reached", nil)
return
}
}
err := bus.Dispatch(&cmd)
if err != nil {
if err == m.ErrDashboardWithSameNameExists {