public ChildEntityPermission Read(int parentId, int entityId, int?userId, int?groupId) { using (var scope = new QPConnectionScope()) { DataRow row; if (userId.HasValue) { row = Common.GetChildContentPermissionForUser(scope.DbConnection, parentId, entityId, userId.Value); } else if (groupId.HasValue) { row = Common.GetChildContentPermissionForGroup(scope.DbConnection, parentId, entityId, groupId.Value); } else { throw new ArgumentNullException(nameof(groupId)); } if (row?.Field <decimal?>("LevelId") == null) { return(null); } var containsHide = row.Table.Columns.Contains("Hide"); return(ChildEntityPermission.Create(null, parentId, userId, groupId, Convert.ToInt32(row.Field <decimal>("LevelId")), row.Field <bool>("PropagateToItems"), containsHide && row.Field <bool>("Hide"))); } }
public virtual ActionResult MultipleChangeAsChild(string tabId, int parentId, int[] IDs, int?userId, int?groupId) { var permission = ChildEntityPermission.Create(ChildContentService, parentId, userId, groupId); var model = ChildEntityPermissionViewModel.Create(permission, tabId, parentId, MultipleChangeAction, ControllerName, "SaveMultipleChangeAsChild", ChildContentService, userId, groupId, IDs); return(JsonHtml("ChildEntityPermissionProperties", model)); }
private ActionResult SaveAsChild(string tabId, int parentId, Action <ChildEntityPermissionViewModel> action) { try { var permission = ChildEntityPermission.Create(ChildContentService, parentId); var model = ChildEntityPermissionViewModel.Create(permission, tabId, parentId, SaveChildPermissionAction, ControllerName, null, ChildContentService, isPostBack: true); TryUpdateModel(model); try { action(model); } catch (ActionNotAllowedException nae) { ModelState.AddModelError("OperationIsNotAllowedForAggregated", nae.Message); return(JsonHtml("ChildEntityPermissionProperties", model)); } TempData[GetChildEntityPermissionModelKey(tabId, parentId)] = model; return(Redirect("SaveAsChild", new { tabId, parentId })); } catch { TempData.Remove(GetChildEntityPermissionModelKey(tabId, parentId)); throw; } }
public virtual async Task <ActionResult> MultipleChangeAsChild(string tabId, int parentId, [FromBody] SelectedItemsViewModel idsModel, int?userId, int?groupId) { var permission = ChildEntityPermission.Create(ChildContentService, parentId, userId, groupId); var model = ChildEntityPermissionViewModel.Create(permission, tabId, parentId, MultipleChangeAction, ControllerName, "SaveMultipleChangeAsChild", ChildContentService, userId, groupId, idsModel.Ids); return(await JsonHtml("ChildEntityPermissionProperties", model)); }
public override void ChangeAll(int parentId, ChildEntityPermission permissionSettings) { if (ContentRepository.IsAnyAggregatedFields(parentId)) { throw new ActionNotAllowedException(ArticleStrings.OperationIsNotAllowedForAggregated); } base.ChangeAll(parentId, permissionSettings); }
public override void Change(int parentId, int entityId, ChildEntityPermission permissionSettings) { if (permissionSettings.ExplicitPermissionToRelatedContents) { ExplicitPermissionToRelatedContents(new[] { entityId }, permissionSettings); } base.Change(parentId, entityId, permissionSettings); }
public override void MultipleChange(int parentId, List <int> entityIDs, ChildEntityPermission permissionSettings) { if (permissionSettings.ExplicitPermissionToRelatedContents) { ExplicitPermissionToRelatedContents(entityIDs, permissionSettings); } base.MultipleChange(parentId, entityIDs, permissionSettings); }
public void MultipleChange(int parentId, List <int> entityIDs, ChildEntityPermission permissionSettings) { using (var scope = new QPConnectionScope()) { Common.RemoveChildContentPermissions(scope.DbConnection, entityIDs, permissionSettings.UserId, permissionSettings.GroupId); Common.InsertChildContentPermissions(scope.DbConnection, entityIDs, permissionSettings.UserId, permissionSettings.GroupId, permissionSettings.PermissionLevelId, permissionSettings.PropagateToItems, QPContext.CurrentUserId, permissionSettings.Hide); } }
public void ChangeAll(int parentId, ChildEntityPermission permissionSettings) { using (var scope = new QPConnectionScope()) { Common.RemoveChildArticlePermissions(scope.DbConnection, parentId, permissionSettings.UserId, permissionSettings.GroupId); Common.InsertChildArticlePermissions(scope.DbConnection, parentId, permissionSettings.UserId, permissionSettings.GroupId, permissionSettings.PermissionLevelId, QPContext.CurrentUserId); } }
public virtual ActionResult AllChangeAsChild(string tabId, int parentId, int?userId, int?groupId) { if (!userId.HasValue && !groupId.HasValue) { return(new JsonNetResult <object>(new { success = false, message = EntityPermissionStrings.UserOrGroupAreNotSelected })); } var permission = ChildEntityPermission.Create(ChildContentService, parentId, userId, groupId); var model = ChildEntityPermissionViewModel.Create(permission, tabId, parentId, AllChangeAction, ControllerName, "AllChangeAsChild", ChildContentService, userId, groupId); return(JsonHtml("ChildEntityPermissionProperties", model)); }
public static ChildEntityPermissionViewModel Create(ChildEntityPermission permission, string tabId, int parentId, string actionCode, string controllerName, string saveActionName, IChildEntityPermissionService service, int?userId = null, int?groupId = null, IEnumerable <int> ids = null, bool isPostBack = false) { var model = Create <ChildEntityPermissionViewModel>(permission, tabId, parentId); model._service = service; model._settings = service?.ViewModelSettings; model._actionCode = actionCode; model.ControllerName = controllerName; model.SaveActionName = saveActionName; model.EntityIDs = ids ?? new int[0]; model.IsPostBack = isPostBack; return(model); }
public static ChildEntityPermissionViewModel Create(ChildEntityPermission permission, string tabId, int parentId, string actionCode, string controllerName, string saveActionName, IChildEntityPermissionService service, int?userId = null, int?groupId = null, IEnumerable <int> ids = null, bool isPostBack = false) { var model = Create <ChildEntityPermissionViewModel>(permission, tabId, parentId); model.CurrentActionCode = actionCode; model.IsPropagateable = service.ViewModelSettings.IsPropagateable; model.CurrentEntityTypeCode = service.ViewModelSettings.EntityTypeCode; model.CanHide = service.ViewModelSettings.CanHide; model.PermissionLevels = GetPermissionLevels(service); model.ControllerName = controllerName; model.SaveActionName = saveActionName; model.EntityIds = ids?.ToList() ?? new List <int>(); model.IsPostBack = isPostBack; return(model); }
public virtual void ChangeAll(int parentId, ChildEntityPermission permissionSettings) { if (permissionSettings.CopyParentPermission) { var parentPermission = Repository.GetParentPermission(parentId, permissionSettings.UserId, permissionSettings.GroupId); if (parentPermission != null) { var parentSettings = ChildEntityPermission.CreateFrom(parentPermission); Repository.ChangeAll(parentId, parentSettings); } else { Repository.RemoveAll(parentId, permissionSettings.UserId, permissionSettings.GroupId); } } else { Repository.ChangeAll(parentId, permissionSettings); } }
public virtual void MultipleChange(int parentId, List <int> entityIDs, ChildEntityPermission permissionSettings) { if (permissionSettings.CopyParentPermission) { var parentPermission = Repository.GetParentPermission(parentId, permissionSettings.UserId, permissionSettings.GroupId); if (parentPermission != null) { var parentSettings = ChildEntityPermission.CreateFrom(parentPermission); Repository.MultipleChange(parentId, entityIDs, parentSettings); } else { Repository.MultipleRemove(parentId, entityIDs, permissionSettings.UserId, permissionSettings.GroupId); } } else { Repository.MultipleChange(parentId, entityIDs, permissionSettings); } }
public ChildEntityPermission Read(int parentId, int entityId, int?userId, int?groupId) { using (var scope = new QPConnectionScope()) { DataRow row; if (userId.HasValue) { row = Common.GetChildArticlePermissionForUser(scope.DbConnection, parentId, entityId, userId.Value); } else if (groupId.HasValue) { row = Common.GetChildArticlePermissionForGroup(scope.DbConnection, parentId, entityId, groupId.Value); } else { throw new ArgumentNullException(nameof(groupId)); } return(row?.Field <decimal?>("LevelId") == null ? null : ChildEntityPermission.Create(null, parentId, userId, groupId, Convert.ToInt32(row.Field <decimal>("LevelId")))); } }
public virtual ActionResult ChangeAsChild(string tabId, int parentId, int id, int?userId, int?groupId) { var permission = ChildContentService.Read(parentId, id, userId, groupId) ?? ChildEntityPermission.Create(ChildContentService, parentId, userId, groupId); var model = ChildEntityPermissionViewModel.Create(permission, tabId, parentId, ChangeAction, ControllerName, "ChangeAsChild", ChildContentService, userId, groupId, new[] { id }); return(JsonHtml("ChildEntityPermissionProperties", model)); }