mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-24 13:33:34 +08:00
Only the "Default" tenant is able to manage tenants
- Don't show links in other tenants - Protected controller actions --HG-- branch : dev
This commit is contained in:
@@ -32,6 +32,10 @@ namespace Orchard.MultiTenancy.Controllers {
|
||||
public ActionResult Add() {
|
||||
if (!Services.Authorizer.Authorize(Permissions.ManageTenants, T("Cannot create tenant")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
if ( !EnsureDefaultTenant() )
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
return View(new TenantAddViewModel());
|
||||
}
|
||||
|
||||
@@ -40,7 +44,10 @@ namespace Orchard.MultiTenancy.Controllers {
|
||||
try {
|
||||
if (!Services.Authorizer.Authorize(Permissions.ManageTenants, T("Couldn't create tenant")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
|
||||
if ( !EnsureDefaultTenant() )
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
_tenantService.CreateTenant(
|
||||
new ShellSettings {
|
||||
Name = viewModel.Name,
|
||||
@@ -64,6 +71,9 @@ namespace Orchard.MultiTenancy.Controllers {
|
||||
if (!Services.Authorizer.Authorize(Permissions.ManageTenants, T("Cannot edit tenant")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
if ( !EnsureDefaultTenant() )
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
var tenant = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == name);
|
||||
if (tenant == null)
|
||||
return new NotFoundResult();
|
||||
@@ -85,6 +95,9 @@ namespace Orchard.MultiTenancy.Controllers {
|
||||
if (!Services.Authorizer.Authorize(Permissions.ManageTenants, T("Couldn't edit tenant")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
if ( !EnsureDefaultTenant() )
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
var tenant = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == viewModel.Name);
|
||||
if (tenant == null)
|
||||
return new NotFoundResult();
|
||||
@@ -113,6 +126,9 @@ namespace Orchard.MultiTenancy.Controllers {
|
||||
if (!Services.Authorizer.Authorize(Permissions.ManageTenants, T("Couldn't disable tenant")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
if ( !EnsureDefaultTenant() )
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
var tenant = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == name);
|
||||
|
||||
if (tenant != null && tenant.Name != _thisShellSettings.Name) {
|
||||
@@ -120,7 +136,7 @@ namespace Orchard.MultiTenancy.Controllers {
|
||||
_tenantService.UpdateTenant(tenant);
|
||||
}
|
||||
|
||||
return RedirectToAction("index");
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
@@ -128,6 +144,9 @@ namespace Orchard.MultiTenancy.Controllers {
|
||||
if (!Services.Authorizer.Authorize(Permissions.ManageTenants, T("Couldn't enable tenant")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
if ( !EnsureDefaultTenant() )
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
var tenant = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == name);
|
||||
|
||||
if (tenant != null && tenant.Name != _thisShellSettings.Name) {
|
||||
@@ -135,7 +154,11 @@ namespace Orchard.MultiTenancy.Controllers {
|
||||
_tenantService.UpdateTenant(tenant);
|
||||
}
|
||||
|
||||
return RedirectToAction("index");
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
private bool EnsureDefaultTenant() {
|
||||
return _thisShellSettings.Name == "Default";
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user