From 2db0daf7738d10d1d7280b9fdbf18e00cd43cfb5 Mon Sep 17 00:00:00 2001 From: Shandem Date: Mon, 21 Jun 2010 15:24:35 +0000 Subject: [PATCH] updates permission tree [TFS Changeset #70542] --- umbraco/cms/businesslogic/Permission.cs | 17 +++++++++++ .../umbraco/Trees/UserPermissions.cs | 2 +- .../umbraco/users/UserPermissions.cs | 29 ++----------------- 3 files changed, 21 insertions(+), 27 deletions(-) diff --git a/umbraco/cms/businesslogic/Permission.cs b/umbraco/cms/businesslogic/Permission.cs index 2ce97feb40..41291aa995 100644 --- a/umbraco/cms/businesslogic/Permission.cs +++ b/umbraco/cms/businesslogic/Permission.cs @@ -114,6 +114,23 @@ namespace umbraco.BusinessLogic SqlHelper.CreateParameter("@userId", user.Id)); } + public static void DeletePermissions(int iUserID, int[] iNodeIDs) + { + string sql = "DELETE FROM umbracoUser2NodePermission WHERE nodeID IN ({0}) AND userID=@userID"; + string nodeIDs = string.Join(",", Array.ConvertAll(iNodeIDs, Converter)); + sql = string.Format(sql, nodeIDs); + SqlHelper.ExecuteNonQuery(sql, + new IParameter[] { SqlHelper.CreateParameter("@userID", iUserID) }); + } + public static void DeletePermissions(int iUserID, int iNodeID) + { + DeletePermissions(iUserID, new int[] { iNodeID }); + } + private static string Converter(int from) + { + return from.ToString(); + } + /// /// delete all permissions for this node /// diff --git a/umbraco/presentation/umbraco/Trees/UserPermissions.cs b/umbraco/presentation/umbraco/Trees/UserPermissions.cs index 09cc6e2b05..b683fc9e5d 100644 --- a/umbraco/presentation/umbraco/Trees/UserPermissions.cs +++ b/umbraco/presentation/umbraco/Trees/UserPermissions.cs @@ -45,7 +45,7 @@ namespace umbraco.cms.presentation.Trees { foreach (umbraco.BusinessLogic.User user in umbraco.BusinessLogic.User.getAll()) { - if (user.Id > 0) + if (user.Id > 0 && !user.Disabled) { XmlTreeNode node = XmlTreeNode.Create(this); node.NodeID = user.Id.ToString(); diff --git a/umbraco/presentation/umbraco/users/UserPermissions.cs b/umbraco/presentation/umbraco/users/UserPermissions.cs index 729944bc94..e2ee304244 100644 --- a/umbraco/presentation/umbraco/users/UserPermissions.cs +++ b/umbraco/presentation/umbraco/users/UserPermissions.cs @@ -14,7 +14,6 @@ using umbraco.BusinessLogic.Actions; using umbraco.DataLayer; using umbraco.cms.businesslogic; using umbraco.interfaces; -using System.Xml.XPath; using umbraco.BasePages; using umbraco.cms.businesslogic.web; @@ -22,12 +21,7 @@ namespace umbraco.cms.presentation.user { /// /// Provides umbraco user permission functionality on various nodes. Only nodes that are published are queried via the cache. - /// - /// - /// Uses the Umbraco API for the majority of operations, however, there is 1 manual SQL operation performed since using the Umbraco API to perform these - /// tasks would have been very database intensive. Also, there are quite a few XPath queries on the Umbraco cache file since using the Umbraco API to look up - /// these values would also have been very database intensive. - /// + /// public class UserPermissions { @@ -87,7 +81,7 @@ namespace umbraco.cms.presentation.user allNodes.AddRange(nodeIDs); //First remove all permissions for all nodes in question - DeletePermissions(m_user.Id, allNodes.ToArray()); + Permission.DeletePermissions(m_user.Id, allNodes.ToArray()); //if permissions are to be assigned, then assign them if (permissions.Count > 0) @@ -172,24 +166,7 @@ namespace umbraco.cms.presentation.user Permission.MakeNew(m_user, node, permission.Letter); } - private static void DeletePermissions(int iUserID, int iNodeID) - { - DeletePermissions(iUserID, new int[] { iNodeID }); - } - - private static void DeletePermissions(int iUserID, int[] iNodeIDs) - { - string sql = "DELETE FROM umbracoUser2NodePermission WHERE nodeID IN ({0}) AND userID=@userID"; - string nodeIDs = string.Join(",", Array.ConvertAll(iNodeIDs, Converter)); - sql = string.Format(sql, nodeIDs); - SqlHelper.ExecuteNonQuery(sql, - new IParameter[] { SqlHelper.CreateParameter("@userID", iUserID) }); - } - - private static string Converter(int from) - { - return from.ToString(); - } + } } \ No newline at end of file