/// <summary> /// PreRender action on which security settings are set. /// </summary> private void Page_PreRender(object sender, EventArgs e) { if (mDocumentSaved) { TreeNode editedNode = Form.EditedObject as TreeNode; // Create or rebuild department content index CreateDepartmentContentSearchIndex(editedNode); if (AclInfoProvider.HasOwnAcl(editedNode)) { ForumInfo fi = ForumInfoProvider.GetForumInfo("Default_department_" + editedNode.NodeGUID, SiteContext.CurrentSiteID); MediaLibraryInfo mi = MediaLibraryInfoProvider.GetMediaLibraryInfo("Department_" + editedNode.NodeGUID, SiteContext.CurrentSiteName); // Check if forum of media library exists if ((fi != null) || (mi != null)) { // Get allowed roles ID int aclID = ValidationHelper.GetInteger(editedNode.GetValue("NodeACLID"), 0); DataSet listRoles = AclItemInfoProvider.GetAllowedRoles(aclID, NodePermissionsEnum.Read, "RoleID"); string roleIDs = null; if (!DataHelper.DataSourceIsEmpty(listRoles)) { IList <string> roles = DataHelper.GetStringValues(listRoles.Tables[0], "RoleID"); roleIDs = TextHelper.Join(";", roles); } // Set permissions for forum if (fi != null) { // Get resource object ResourceInfo resForums = ResourceInfoProvider.GetResourceInfo("CMS.Forums"); // Get permissions IDs DataSet dsForumPerm = PermissionNameInfoProvider.GetPermissionNames("ResourceID = " + resForums.ResourceId + " AND (PermissionName != '" + CMSAdminControl.PERMISSION_READ + "' AND PermissionName != '" + CMSAdminControl.PERMISSION_MODIFY + "')", null, 0, "PermissionID"); string forumPermissions = null; if (!DataHelper.DataSourceIsEmpty(dsForumPerm)) { foreach (DataRow drForumPerm in dsForumPerm.Tables[0].Rows) { forumPermissions += drForumPerm["PermissionID"] + ";"; } forumPermissions = forumPermissions.TrimEnd(';'); } // Delete old permissions apart attach file permission ForumRoleInfoProvider.DeleteAllRoles("ForumID = " + fi.ForumID + " AND PermissionID IN (" + forumPermissions.Replace(";", ", ") + ")"); // Set forum permissions ForumRoleInfoProvider.SetPermissions(fi.ForumID, roleIDs, forumPermissions); // Log staging task SynchronizationHelper.LogObjectChange(fi, TaskTypeEnum.UpdateObject); } // Set permissions for media library if (mi != null) { // Get resource object ResourceInfo resMediaLibs = ResourceInfoProvider.GetResourceInfo("CMS.MediaLibrary"); // Get permissions IDs DataSet dsMediaLibPerm = PermissionNameInfoProvider.GetPermissionNames("ResourceID = " + resMediaLibs.ResourceId + " AND (PermissionName = 'LibraryAccess' OR PermissionName = 'FileCreate')", null, 0, "PermissionID"); string mediaLibPermissions = null; if (!DataHelper.DataSourceIsEmpty(dsMediaLibPerm)) { foreach (DataRow drMediaLibPerm in dsMediaLibPerm.Tables[0].Rows) { mediaLibPermissions += drMediaLibPerm["PermissionID"] + ";"; } mediaLibPermissions = mediaLibPermissions.TrimEnd(';'); } // Delete old permissions only for Create file and See library content permissions MediaLibraryRolePermissionInfoProvider.DeleteAllRoles("LibraryID = " + mi.LibraryID + " AND PermissionID IN (" + mediaLibPermissions.Replace(";", ", ") + ")"); // Set media library permissions MediaLibraryRolePermissionInfoProvider.SetPermissions(mi.LibraryID, roleIDs, mediaLibPermissions); // Log staging task SynchronizationHelper.LogObjectChange(mi, TaskTypeEnum.UpdateObject); } } } } }
public void Save() { CheckPermissions(true); int allowed = 0; int denied = 0; if (lstOperators.SelectedItem == null) { return; } string operatorID = lstOperators.SelectedValue; allowed += GetCheckBoxValue(chkReadAllow, NodePermissionsEnum.Read); allowed += GetCheckBoxValue(chkModifyAllow, NodePermissionsEnum.Modify); allowed += GetCheckBoxValue(chkCreateAllow, NodePermissionsEnum.Create); allowed += GetCheckBoxValue(chkDeleteAllow, NodePermissionsEnum.Delete); allowed += GetCheckBoxValue(chkDestroyAllow, NodePermissionsEnum.Destroy); allowed += GetCheckBoxValue(chkExploreTreeAllow, NodePermissionsEnum.ExploreTree); allowed += GetCheckBoxValue(chkManagePermissionsAllow, NodePermissionsEnum.ModifyPermissions); denied += GetCheckBoxValue(chkReadDeny, NodePermissionsEnum.Read); denied += GetCheckBoxValue(chkModifyDeny, NodePermissionsEnum.Modify); denied += GetCheckBoxValue(chkCreateDeny, NodePermissionsEnum.Create); denied += GetCheckBoxValue(chkDeleteDeny, NodePermissionsEnum.Delete); denied += GetCheckBoxValue(chkDestroyDeny, NodePermissionsEnum.Destroy); denied += GetCheckBoxValue(chkExploreTreeDeny, NodePermissionsEnum.ExploreTree); denied += GetCheckBoxValue(chkManagePermissionsDeny, NodePermissionsEnum.ModifyPermissions); string message; string operatorName = lstOperators.SelectedItem.Text; if (operatorID.StartsWithCSafe("U")) { int userId = int.Parse(operatorID.Substring(1)); UserInfo ui = UserInfoProvider.GetUserInfo(userId); AclItemInfoProvider.SetUserPermissions(Node, allowed, denied, ui); message = "security.documentuserpermissionschange"; } else { RoleInfo ri = RoleInfoProvider.GetRoleInfo(int.Parse(operatorID.Substring(1))); AclItemInfoProvider.SetRolePermissions(Node, allowed, denied, ri); message = "security.documentrolepermissionschange"; } ShowChangesSaved(); // Log synchronization task and flush cache DocumentSynchronizationHelper.LogDocumentChange(Node, TaskTypeEnum.UpdateDocument, Node.TreeProvider); CacheHelper.TouchKeys(TreeProvider.GetDependencyCacheKeys(Node, Node.NodeSiteName)); // Insert information about this event to event log. if (Tree.LogEvents) { EventLogProvider.LogEvent(EventType.INFORMATION, "Content", "DOCPERMISSIONSMODIFIED", string.Format(ResHelper.GetAPIString(message, "Permissions of the operator '{0}' have been modified for the document."), operatorName), eventUrl, Tree.UserInfo.UserID, Tree.UserInfo.UserName, Node.NodeID, DocumentName, ipAddress, Node.NodeSiteID); } if (Node != null) { // Invalidate permission data in current request TreeSecurityProvider.InvalidateTreeNodeAuthorizationResults(MembershipContext.AuthenticatedUser, NodeID, Node.DocumentCulture); AclItemInfoProvider.ClearRequestCache(Node, MembershipContext.AuthenticatedUser.UserID); } CheckPermissions(false, true); pnlUpdate.Update(); }
/// <summary> /// On items selected event handling. /// </summary> private void usRoles_OnItemsSelected(object sender, EventArgs e) { // Remove old items string newValues = ValidationHelper.GetString(usRoles.Value, null); string items = DataHelper.GetNewItemsInList(newValues, CurrentValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); // Add all new items to site foreach (string item in newItems) { int roleID = ValidationHelper.GetInteger(item, 0); if (PollID > 0) { // Remove role from poll ModuleCommands.PollsRemoveRoleFromPoll(roleID, PollID); } else if (FormID > 0) { // Remove role from form BizFormRoleInfoProvider.DeleteBizFormRoleInfo(roleID, FormID); } else if (BoardID > 0) { // Remove message board from board ModuleCommands.MessageBoardRemoveRoleFromBoard(roleID, BoardID); } else if (Node != null) { RoleInfo ri = RoleInfoProvider.GetRoleInfo(roleID); // Remove role from treenode AclItemInfoProvider.RemoveRole(NodeID, ri); } } } // Add new items items = DataHelper.GetNewItemsInList(CurrentValues, newValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); // Add all new items to site foreach (string item in newItems) { int roleID = ValidationHelper.GetInteger(item, 0); if (PollID > 0) { // Add poll role ModuleCommands.PollsAddRoleToPoll(roleID, PollID); } else if (FormID > 0) { // Add BizForm role BizFormRoleInfoProvider.SetBizFormRoleInfo(roleID, FormID); } else if (BoardID > 0) { // Add role to the message board ModuleCommands.MessageBoardAddRoleToBoard(roleID, BoardID); } else if (Node != null) { RoleInfo ri = RoleInfoProvider.GetRoleInfo(roleID); // Add role to treenode AclItemInfoProvider.SetRolePermissions(Node, 0, 0, ri); } } } // Log synchronization task if (Node != null) { DocumentSynchronizationHelper.LogDocumentChange(Node, TaskTypeEnum.UpdateDocument, Node.TreeProvider); } RaiseOnChanged(); }
/// <summary> /// After node created, solver role permissions. /// </summary> private void AddRoles(object sender, EventArgs e) { string roleIds = ";" + usRoles.Value + ";"; // Check if ACL should inherit from parent if (InheritParentPermissions) { AclInfoProvider.EnsureOwnAcl(EditedNode); } else { // If node has already own ACL don't leave permissions, otherwise break inheritance if (!AclInfoProvider.HasOwnAcl(EditedNode)) { AclInfoProvider.BreakInherintance(EditedNode, false); } } int aclId = ValidationHelper.GetInteger(EditedNode.GetValue("NodeACLID"), 0); // Get original ACLItems DataSet ds = AclItemInfoProvider.GetAclItems(EditedNode.NodeID, "Operator LIKE N'R%' AND ACLID = " + aclId, null, 0, "Operator, Allowed, Denied"); // Change original values if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { string op = DataHelper.GetNotEmpty(dr["Operator"], "R"); int allowed = ValidationHelper.GetInteger(dr["Allowed"], 0); int denied = ValidationHelper.GetInteger(dr["Denied"], 0); int aclRoleId = ValidationHelper.GetInteger(op.Substring(1), 0); if (aclRoleId != 0) { // Check if read permission should be set or removed if (roleIds.Contains(";" + aclRoleId + ";")) { // Remove role from processed role and adjust permissions in database roleIds = roleIds.Replace(";" + aclRoleId + ";", ";"); allowed |= 1; } else { allowed &= 126; } RoleInfo ri = RoleInfoProvider.GetRoleInfo(aclRoleId); AclItemInfoProvider.SetRolePermissions(EditedNode, allowed, denied, ri); } } } // Create ACL items for new roles if (roleIds.Trim(';') != "") { // Process rest of the roles string[] roles = roleIds.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); foreach (string role in roles) { RoleInfo ri = RoleInfoProvider.GetRoleInfo(int.Parse(role)); AclItemInfoProvider.SetRolePermissions(EditedNode, 1, 0, ri); } } }
/// <summary> /// Initializes the control properties. /// </summary> protected void SetupControl() { if (StopProcessing) { // Do nothing srcUsers.StopProcessing = true; } else { TreeNode node = null; TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser); // Check if path is set if (String.IsNullOrEmpty(Path)) { TreeNode curDoc = DocumentContext.CurrentDocument; // Check if current document is department if ((curDoc != null) && (curDoc.NodeClassName.ToLowerCSafe() == DEPARTMENT_CLASS_NAME)) { node = DocumentContext.CurrentDocument; } } else { // Obtain document from specified path node = tree.SelectSingleNode(SiteName, Path, LocalizationContext.PreferredCultureCode, true, DEPARTMENT_CLASS_NAME, false, false, false); } // If department document exists and has own ACL continue with initializing controls if ((node != null) && node.NodeIsACLOwner) { // Get users and roles with read permission for department document int aclId = ValidationHelper.GetInteger(node.GetValue("NodeACLID"), 0); DataSet dsRoles = AclItemInfoProvider.GetAllowedRoles(aclId, NodePermissionsEnum.Read, "RoleID"); DataSet dsUsers = AclItemInfoProvider.GetAllowedUsers(aclId, NodePermissionsEnum.Read, "UserID"); string where = null; // Process users dataset to where condition if (!DataHelper.DataSourceIsEmpty(dsUsers)) { // Get allowed users ids IList <string> users = DataHelper.GetStringValues(dsUsers.Tables[0], "UserID"); string userIds = TextHelper.Join(", ", users); // Populate where condition with user condition where = SqlHelper.AddWhereCondition("UserID IN (" + userIds + ")", where); } // Process roles dataset to where condition if (!DataHelper.DataSourceIsEmpty(dsRoles)) { // Get allowed roles ids IList <string> roles = DataHelper.GetStringValues(dsRoles.Tables[0], "RoleID"); string roleIds = TextHelper.Join(", ", roles); // Populate where condition with role condition where = SqlHelper.AddWhereCondition("UserID IN (SELECT UserID FROM View_CMS_UserRole_MembershipRole_ValidOnly_Joined WHERE RoleID IN (" + roleIds + "))", where, "OR"); } if (!String.IsNullOrEmpty(where)) { // Check if exist where condition and add it to current where condition where = SqlHelper.AddWhereCondition(WhereCondition, where); // Set datasource properties srcUsers.WhereCondition = where; srcUsers.OrderBy = OrderBy; srcUsers.TopN = SelectTopN; srcUsers.FilterName = ValidationHelper.GetString(GetValue("WebPartControlID"), ID); srcUsers.SourceFilterName = FilterName; srcUsers.SiteName = SiteName; srcUsers.CacheItemName = CacheItemName; srcUsers.CacheDependencies = CacheDependencies; srcUsers.CacheMinutes = CacheMinutes; srcUsers.SelectOnlyApproved = SelectOnlyApproved; srcUsers.SelectHidden = SelectHidden; srcUsers.SelectedColumns = Columns; } else { srcUsers.StopProcessing = true; } } else { srcUsers.StopProcessing = true; } } }
protected void usUsers_OnItemsSelected(object sender, EventArgs e) { // Remove old items string newValues = ValidationHelper.GetString(usUsers.Value, null); string items = DataHelper.GetNewItemsInList(newValues, CurrentValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new items to site foreach (string item in newItems) { int userID = ValidationHelper.GetInteger(item, 0); if (BoardID > 0) { // Remove message board from board ModuleCommands.MessageBoardRemoveModeratorFromBoard(userID, BoardID); } else if (Node != null) { UserInfo ui = UserInfoProvider.GetUserInfo(userID); if (ui != null) { // Remove user from treenode AclItemInfoProvider.RemoveUser(NodeID, ui); } } else if (ForumID > 0) { // Remove user from forum moderators ModuleCommands.ForumsRemoveForumModerator(userID, ForumID); } } } } // Add new items items = DataHelper.GetNewItemsInList(CurrentValues, newValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new items to site foreach (string item in newItems) { int userID = ValidationHelper.GetInteger(item, 0); if (BoardID > 0) { // Add user to the message board ModuleCommands.MessageBoardAddModeratorToBoard(userID, BoardID); } else if (Node != null) { UserInfo ui = UserInfoProvider.GetUserInfo(userID); if (ui != null) { // Remove user from treenode AclItemInfoProvider.SetUserPermissions(Node, 0, 0, ui); } } else if (ForumID > 0) { // Add user to the forum moderators ModuleCommands.ForumsAddForumModerator(userID, ForumID); } } } } // Log synchronization task if (Node != null) { DocumentSynchronizationHelper.LogDocumentChange(Node, TaskTypeEnum.UpdateDocument, Node.TreeProvider); } RaiseOnChanged(); }
public void Save() { CheckPermissions(true); int allowed = 0; int denied = 0; if (lstOperators.SelectedItem == null) { return; } string operatorID = lstOperators.SelectedValue; allowed += GetCheckBoxValue(chkReadAllow, NodePermissionsEnum.Read); allowed += GetCheckBoxValue(chkModifyAllow, NodePermissionsEnum.Modify); allowed += GetCheckBoxValue(chkCreateAllow, NodePermissionsEnum.Create); allowed += GetCheckBoxValue(chkDeleteAllow, NodePermissionsEnum.Delete); allowed += GetCheckBoxValue(chkDestroyAllow, NodePermissionsEnum.Destroy); allowed += GetCheckBoxValue(chkExploreTreeAllow, NodePermissionsEnum.ExploreTree); allowed += GetCheckBoxValue(chkManagePermissionsAllow, NodePermissionsEnum.ModifyPermissions); denied += GetCheckBoxValue(chkReadDeny, NodePermissionsEnum.Read); denied += GetCheckBoxValue(chkModifyDeny, NodePermissionsEnum.Modify); denied += GetCheckBoxValue(chkCreateDeny, NodePermissionsEnum.Create); denied += GetCheckBoxValue(chkDeleteDeny, NodePermissionsEnum.Delete); denied += GetCheckBoxValue(chkDestroyDeny, NodePermissionsEnum.Destroy); denied += GetCheckBoxValue(chkExploreTreeDeny, NodePermissionsEnum.ExploreTree); denied += GetCheckBoxValue(chkManagePermissionsDeny, NodePermissionsEnum.ModifyPermissions); var originalValues = hdnOriginalValues.Value.Split('|'); if ((originalValues.Length != 2) || (allowed == ValidationHelper.GetInteger(originalValues[0], 0)) && (denied == ValidationHelper.GetInteger(originalValues[1], 0))) { // Don't modify an ACL item without any change or when hidden field value is removed return; } // Update values for next saving hdnOriginalValues.Value = allowed + "|" + denied; string message; string operatorName = lstOperators.SelectedItem.Text; if (operatorID.StartsWith("U", StringComparison.InvariantCulture)) { int userId = int.Parse(operatorID.Substring(1)); UserInfo ui = UserInfoProvider.GetUserInfo(userId); AclItemInfoProvider.SetUserPermissions(Node, allowed, denied, ui); message = "security.documentuserpermissionschange"; } else { RoleInfo ri = RoleInfoProvider.GetRoleInfo(int.Parse(operatorID.Substring(1))); AclItemInfoProvider.SetRolePermissions(Node, allowed, denied, ri); message = "security.documentrolepermissionschange"; } ShowChangesSaved(); // Log synchronization task and flush cache DocumentSynchronizationHelper.LogDocumentChange(Node, TaskTypeEnum.UpdateDocument, Node.TreeProvider); Node.ClearCache(); // Insert information about this event to event log. if (Tree.LogEvents) { EventLogProvider.LogEvent(EventType.INFORMATION, "Content", "DOCPERMISSIONSMODIFIED", string.Format(ResHelper.GetAPIString(message, "Permissions of the operator '{0}' have been modified for the document."), operatorName), eventUrl, Tree.UserInfo.UserID, Tree.UserInfo.UserName, Node.NodeID, DocumentName, ipAddress, Node.NodeSiteID); } if (Node != null) { // Invalidate permission data in current request TreeSecurityProvider.InvalidateTreeNodeAuthorizationResults(MembershipContext.AuthenticatedUser, NodeID, Node.DocumentCulture); AclItemInfoProvider.ClearRequestCache(Node, MembershipContext.AuthenticatedUser.UserID); } CheckPermissions(false, true); pnlUpdate.Update(); }
/// <summary> /// Initializes the control properties. /// </summary> protected void SetupControl() { // Set general properties repUsers.DataBindByDefault = false; pagerElem.PageControl = repUsers.ID; if (StopProcessing) { // Do nothing filterUsers.StopProcessing = true; srcUsers.StopProcessing = true; } else { filterUsers.Visible = ShowFilterControl; filterUsers.OnFilterChanged += filterUsers_OnFilterChanged; srcUsers.OnFilterChanged += filterUsers_OnFilterChanged; // Basic control properties repUsers.HideControlForZeroRows = HideControlForZeroRows; repUsers.ZeroRowsText = ZeroRowsText; TreeNode node = null; TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser); // Check if path is set if (String.IsNullOrEmpty(Path)) { TreeNode curDoc = DocumentContext.CurrentDocument; // Check if current document is department if ((curDoc != null) && (curDoc.NodeClassName.ToLowerCSafe() == DEPARTMENT_CLASS_NAME)) { node = DocumentContext.CurrentDocument; } } else { // Obtain document from specified path node = tree.SelectSingleNode(SiteName, Path, LocalizationContext.PreferredCultureCode, true, DEPARTMENT_CLASS_NAME, false, false, false); } // If department document exists and has own ACL continue with initializing controls if ((node != null) && AclInfoProvider.HasOwnAcl(node)) { // Get users and roles with read permission for department document int aclId = ValidationHelper.GetInteger(node.GetValue("NodeACLID"), 0); DataSet dsRoles = AclItemInfoProvider.GetAllowedRoles(aclId, NodePermissionsEnum.Read, "RoleID"); DataSet dsUsers = AclItemInfoProvider.GetAllowedUsers(aclId, NodePermissionsEnum.Read, "UserID"); string where = null; // Process users dataset to where condition if (!DataHelper.DataSourceIsEmpty(dsUsers)) { // Get allowed users ids IList <string> users = DataHelper.GetStringValues(dsUsers.Tables[0], "UserID"); string userIds = TextHelper.Join(", ", users); // Populate where condition with user condition where = SqlHelper.AddWhereCondition("UserID IN (" + userIds + ")", where); } // Process roles dataset to where condition if (!DataHelper.DataSourceIsEmpty(dsRoles)) { // Get allowed roles ids IList <string> roles = DataHelper.GetStringValues(dsRoles.Tables[0], "RoleID"); string roleIds = TextHelper.Join(", ", roles); // Populate where condition with role condition where = SqlHelper.AddWhereCondition("UserID IN (SELECT UserID FROM View_CMS_UserRole_MembershipRole_ValidOnly_Joined WHERE RoleID IN (" + roleIds + "))", where, "OR"); } if (!String.IsNullOrEmpty(where)) { // Check if exist where condition and add it to current where condition where = SqlHelper.AddWhereCondition(WhereCondition, where); // Data source properties srcUsers.WhereCondition = where; srcUsers.OrderBy = OrderBy; srcUsers.TopN = SelectTopN; srcUsers.SelectedColumns = Columns; srcUsers.SiteName = SiteName; srcUsers.FilterName = filterUsers.ID; srcUsers.SourceFilterName = FilterName; srcUsers.CacheItemName = CacheItemName; srcUsers.CacheDependencies = CacheDependencies; srcUsers.CacheMinutes = CacheMinutes; srcUsers.SelectOnlyApproved = SelectOnlyApproved; srcUsers.SelectHidden = SelectHidden; // Init data properties filterUsers.InitDataProperties(srcUsers); #region "Repeater template properties" // Apply transformations if they exist if (!String.IsNullOrEmpty(TransformationName)) { repUsers.ItemTemplate = CMSDataProperties.LoadTransformation(this, TransformationName); } if (!String.IsNullOrEmpty(AlternatingItemTransformationName)) { repUsers.AlternatingItemTemplate = CMSDataProperties.LoadTransformation(this, AlternatingItemTransformationName); } if (!String.IsNullOrEmpty(FooterTransformationName)) { repUsers.FooterTemplate = CMSDataProperties.LoadTransformation(this, FooterTransformationName); } if (!String.IsNullOrEmpty(HeaderTransformationName)) { repUsers.HeaderTemplate = CMSDataProperties.LoadTransformation(this, HeaderTransformationName); } if (!String.IsNullOrEmpty(SeparatorTransformationName)) { repUsers.SeparatorTemplate = CMSDataProperties.LoadTransformation(this, SeparatorTransformationName); } #endregion // UniPager properties pagerElem.PageSize = PageSize; pagerElem.GroupSize = GroupSize; pagerElem.QueryStringKey = QueryStringKey; pagerElem.DisplayFirstLastAutomatically = DisplayFirstLastAutomatically; pagerElem.DisplayPreviousNextAutomatically = DisplayPreviousNextAutomatically; pagerElem.HidePagerForSinglePage = HidePagerForSinglePage; pagerElem.Enabled = EnablePaging; switch (PagingMode.ToLowerCSafe()) { case "querystring": pagerElem.PagerMode = UniPagerMode.Querystring; break; default: pagerElem.PagerMode = UniPagerMode.PostBack; break; } #region "UniPager template properties" // UniPager template properties if (!String.IsNullOrEmpty(PagesTemplate)) { pagerElem.PageNumbersTemplate = CMSDataProperties.LoadTransformation(pagerElem, PagesTemplate); } if (!String.IsNullOrEmpty(CurrentPageTemplate)) { pagerElem.CurrentPageTemplate = CMSDataProperties.LoadTransformation(pagerElem, CurrentPageTemplate); } if (!String.IsNullOrEmpty(SeparatorTemplate)) { pagerElem.PageNumbersSeparatorTemplate = CMSDataProperties.LoadTransformation(pagerElem, SeparatorTemplate); } if (!String.IsNullOrEmpty(FirstPageTemplate)) { pagerElem.FirstPageTemplate = CMSDataProperties.LoadTransformation(pagerElem, FirstPageTemplate); } if (!String.IsNullOrEmpty(LastPageTemplate)) { pagerElem.LastPageTemplate = CMSDataProperties.LoadTransformation(pagerElem, LastPageTemplate); } if (!String.IsNullOrEmpty(PreviousPageTemplate)) { pagerElem.PreviousPageTemplate = CMSDataProperties.LoadTransformation(pagerElem, PreviousPageTemplate); } if (!String.IsNullOrEmpty(NextPageTemplate)) { pagerElem.NextPageTemplate = CMSDataProperties.LoadTransformation(pagerElem, NextPageTemplate); } if (!String.IsNullOrEmpty(PreviousGroupTemplate)) { pagerElem.PreviousGroupTemplate = CMSDataProperties.LoadTransformation(pagerElem, PreviousGroupTemplate); } if (!String.IsNullOrEmpty(NextGroupTemplate)) { pagerElem.NextGroupTemplate = CMSDataProperties.LoadTransformation(pagerElem, NextGroupTemplate); } if (!String.IsNullOrEmpty(DirectPageTemplate)) { pagerElem.DirectPageTemplate = CMSDataProperties.LoadTransformation(pagerElem, DirectPageTemplate); } if (!String.IsNullOrEmpty(LayoutTemplate)) { pagerElem.LayoutTemplate = CMSDataProperties.LoadTransformation(pagerElem, LayoutTemplate); } #endregion // Connects repeater with data source repUsers.DataSource = srcUsers.DataSource; } else { // Disable datasource srcUsers.StopProcessing = true; } } else { // Disable datasource srcUsers.StopProcessing = true; } pagerElem.RebindPager(); repUsers.DataBind(); } }
/// <summary> /// PreRender action on which security settings are set. /// </summary> private void Page_PreRender(object sender, EventArgs e) { if ((Form == null) || !mDocumentSaved) { return; } TreeNode editedNode = Form.EditedObject as TreeNode; // Create or rebuild department content index CreateDepartmentContentSearchIndex(editedNode); if ((editedNode == null) || !editedNode.NodeIsACLOwner) { return; } ForumInfo fi = ForumInfoProvider.GetForumInfo("Default_department_" + editedNode.NodeGUID, SiteContext.CurrentSiteID); MediaLibraryInfo mi = MediaLibraryInfoProvider.GetMediaLibraryInfo("Department_" + editedNode.NodeGUID, SiteContext.CurrentSiteName); // Check if forum of media library exists if ((fi == null) && (mi == null)) { return; } // Get allowed roles ID int aclID = ValidationHelper.GetInteger(editedNode.GetValue("NodeACLID"), 0); DataSet listRoles = AclItemInfoProvider.GetAllowedRoles(aclID, NodePermissionsEnum.Read, "RoleID"); IList <int> roleIds = null; if (!DataHelper.DataSourceIsEmpty(listRoles)) { roleIds = DataHelper.GetIntegerValues(listRoles.Tables[0], "RoleID") as List <int>; } // Set permissions for forum if (fi != null) { // Get resource object ResourceInfo resForums = ResourceInfoProvider.GetResourceInfo("CMS.Forums"); // Get permissions IDs var forumPermissions = PermissionNameInfoProvider.GetPermissionNames() .Column("PermissionID") .WhereEquals("ResourceID", resForums.ResourceID) .WhereNotEquals("PermissionName", CMSAdminControl.PERMISSION_READ) .WhereNotEquals("PermissionName", CMSAdminControl.PERMISSION_MODIFY); // Delete old permissions apart attach file permission ForumRoleInfoProvider.DeleteAllRoles(new WhereCondition().WhereEquals("ForumID", fi.ForumID).WhereIn("PermissionID", forumPermissions)); // Set forum permissions ForumRoleInfoProvider.SetPermissions(fi.ForumID, roleIds, forumPermissions.Select(p => p.PermissionId).ToArray()); // Log staging task SynchronizationHelper.LogObjectChange(fi, TaskTypeEnum.UpdateObject); } // Set permissions for media library if (mi == null) { return; } // Get resource object ResourceInfo resMediaLibs = ResourceInfoProvider.GetResourceInfo("CMS.MediaLibrary"); // Get permissions IDs var where = new WhereCondition() .WhereEquals("ResourceID", resMediaLibs.ResourceID) .And() .Where(new WhereCondition() .WhereEquals("PermissionName", "LibraryAccess") .Or() .WhereEquals("PermissionName", "FileCreate")); DataSet dsMediaLibPerm = PermissionNameInfoProvider.GetPermissionNames().Where(where).Column("PermissionID"); IList <int> mediaLibPermissionsIds = null; if (!DataHelper.DataSourceIsEmpty(dsMediaLibPerm)) { mediaLibPermissionsIds = DataHelper.GetIntegerValues(dsMediaLibPerm.Tables[0], "PermissionID"); } var deleteWhere = new WhereCondition() .WhereEquals("LibraryID", mi.LibraryID) .WhereIn("PermissionID", mediaLibPermissionsIds); // Delete old permissions only for Create file and See library content permissions MediaLibraryRolePermissionInfoProvider.DeleteAllRoles(deleteWhere.ToString(true)); MediaLibraryRolePermissionInfoProvider.SetPermissions(mi.LibraryID, roleIds, mediaLibPermissionsIds); // Log staging task; SynchronizationHelper.LogObjectChange(mi, TaskTypeEnum.UpdateObject); }