improvements to module/theme installation and removal
This commit is contained in:
@ -7,6 +7,7 @@ namespace Oqtane.Repository
|
||||
{
|
||||
IEnumerable<ModuleDefinition> GetModuleDefinitions(int SideId);
|
||||
void UpdateModuleDefinition(ModuleDefinition ModuleDefinition);
|
||||
void DeleteModuleDefinition(int ModuleDefinitionId, int SiteId);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ namespace Oqtane.Repository
|
||||
void UpdatePermissions(int SiteId, string EntityName, int EntityId, string Permissions);
|
||||
Permission GetPermission(int PermissionId);
|
||||
void DeletePermission(int PermissionId);
|
||||
void DeletePermissions(int SiteId, string EntityName, int EntityId);
|
||||
string EncodePermissions(int EntityId, IEnumerable<Permission> Permissions);
|
||||
IEnumerable<Permission> DecodePermissions(string Permissions, int SiteId, string EntityName, int EntityId);
|
||||
}
|
||||
|
@ -186,5 +186,13 @@ namespace Oqtane.Repository
|
||||
{
|
||||
Permissions.UpdatePermissions(ModuleDefinition.SiteId, "ModuleDefinition", ModuleDefinition.ModuleDefinitionId, ModuleDefinition.Permissions);
|
||||
}
|
||||
|
||||
public void DeleteModuleDefinition(int ModuleDefinitionId, int SiteId)
|
||||
{
|
||||
ModuleDefinition ModuleDefinition = db.ModuleDefinition.Find(ModuleDefinitionId);
|
||||
Permissions.DeletePermissions(SiteId, "ModuleDefinition", ModuleDefinitionId);
|
||||
db.ModuleDefinition.Remove(ModuleDefinition);
|
||||
db.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -61,8 +61,9 @@ namespace Oqtane.Repository
|
||||
// get current permissions and delete
|
||||
IEnumerable<Permission> permissions = db.Permission
|
||||
.Where(item => item.EntityName == EntityName)
|
||||
.Where(item => item.EntityId == EntityId);
|
||||
foreach(Permission permission in permissions)
|
||||
.Where(item => item.EntityId == EntityId)
|
||||
.Where(item => item.SiteId == SiteId);
|
||||
foreach (Permission permission in permissions)
|
||||
{
|
||||
db.Permission.Remove(permission);
|
||||
}
|
||||
@ -87,6 +88,19 @@ namespace Oqtane.Repository
|
||||
db.SaveChanges();
|
||||
}
|
||||
|
||||
public void DeletePermissions(int SiteId, string EntityName, int EntityId)
|
||||
{
|
||||
IEnumerable<Permission> permissions = db.Permission
|
||||
.Where(item => item.EntityName == EntityName)
|
||||
.Where(item => item.EntityId == EntityId)
|
||||
.Where(item => item.SiteId == SiteId);
|
||||
foreach (Permission permission in permissions)
|
||||
{
|
||||
db.Permission.Remove(permission);
|
||||
}
|
||||
db.SaveChanges();
|
||||
}
|
||||
|
||||
// permissions are stored in the format "{permissionname:!rolename1;![userid1];rolename2;rolename3;[userid2];[userid3]}" where "!" designates Deny permissions
|
||||
public string EncodePermissions(int EntityId, IEnumerable<Permission> Permissions)
|
||||
{
|
||||
|
Reference in New Issue
Block a user