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));
        }
Exemple #5
0
        public override void ChangeAll(int parentId, ChildEntityPermission permissionSettings)
        {
            if (ContentRepository.IsAnyAggregatedFields(parentId))
            {
                throw new ActionNotAllowedException(ArticleStrings.OperationIsNotAllowedForAggregated);
            }

            base.ChangeAll(parentId, permissionSettings);
        }
Exemple #6
0
        public override void Change(int parentId, int entityId, ChildEntityPermission permissionSettings)
        {
            if (permissionSettings.ExplicitPermissionToRelatedContents)
            {
                ExplicitPermissionToRelatedContents(new[] { entityId }, permissionSettings);
            }

            base.Change(parentId, entityId, permissionSettings);
        }
Exemple #7
0
        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);
        }
Exemple #12
0
        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));
        }