Prevent deleting master tenant (#319)

* Prevent deleting master tenant

* Prevent deletion in APIS level

* Address feedback
This commit is contained in:
Hisham Bin Ateya
2020-04-02 15:08:55 +03:00
committed by GitHub
parent 0b302c6e26
commit c2a29831c4
4 changed files with 21 additions and 4 deletions

View File

@ -4,6 +4,7 @@ using System.Linq;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Caching.Memory;
using Oqtane.Models;
using Oqtane.Shared;
namespace Oqtane.Repository
{
@ -37,6 +38,13 @@ namespace Oqtane.Repository
public Tenant UpdateTenant(Tenant tenant)
{
var oldTenant = GetTenant(tenant.TenantId);
if (oldTenant.Name.Equals(Constants.MasterTenant, StringComparison.OrdinalIgnoreCase) && !oldTenant.Name.Equals(tenant.Name))
{
throw new InvalidOperationException("Unable to rename the master tenant.");
}
_db.Entry(tenant).State = EntityState.Modified;
_db.SaveChanges();
_cache.Remove("tenants");
@ -50,8 +58,8 @@ namespace Oqtane.Repository
public void DeleteTenant(int tenantId)
{
Tenant tenant = _db.Tenant.Find(tenantId);
if (tenant != null)
var tenant = GetTenant(tenantId);
if (tenant != null && !tenant.Name.Equals(Constants.MasterTenant, StringComparison.OrdinalIgnoreCase))
{
_db.Tenant.Remove(tenant);
_db.SaveChanges();