diff --git a/packages/hydrooj/src/handler/domain.ts b/packages/hydrooj/src/handler/domain.ts index 33a7963b1..2ed9a5f00 100644 --- a/packages/hydrooj/src/handler/domain.ts +++ b/packages/hydrooj/src/handler/domain.ts @@ -99,14 +99,6 @@ class DomainEditHandler extends ManageHandler { await domain.edit(args.domainId, $set); this.response.redirect = this.url('domain_dashboard'); } - - @requireSudo - async postDelete({ domainId }) { - if (domainId === 'system') throw new CannotDeleteSystemDomainError(); - if (this.domain.owner !== this.user._id) throw new OnlyOwnerCanDeleteDomainError(); - await domain.del(domainId); - this.response.redirect = this.url('home_domain', { domainId: 'system' }); - } } class DomainDashboardHandler extends ManageHandler { @@ -129,6 +121,14 @@ class DomainDashboardHandler extends ManageHandler { } this.back(); } + + @requireSudo + async postDelete({ domainId }) { + if (domainId === 'system') throw new CannotDeleteSystemDomainError(); + if (this.domain.owner !== this.user._id) throw new OnlyOwnerCanDeleteDomainError(); + await domain.del(domainId); + this.response.redirect = this.url('home_domain', { domainId: 'system' }); + } } class DomainUserHandler extends ManageHandler { diff --git a/packages/ui-default/templates/domain_dashboard.html b/packages/ui-default/templates/domain_dashboard.html index 7dd011e36..f771df3b6 100644 --- a/packages/ui-default/templates/domain_dashboard.html +++ b/packages/ui-default/templates/domain_dashboard.html @@ -26,4 +26,20 @@ +{% if handler.user._id == owner._id %} +