From 1b4d7c37331027e71e9cf52ffc8f45a062949cfd Mon Sep 17 00:00:00 2001 From: AndyButland Date: Sat, 7 May 2016 23:52:47 +0200 Subject: [PATCH 1/3] Migrated user permissions tree to new format; updated icon to indicate single user being acted on --- src/Umbraco.Core/Constants-Applications.cs | 5 ++ src/Umbraco.Web.UI/Umbraco/config/lang/cs.xml | 1 + src/Umbraco.Web.UI/Umbraco/config/lang/nb.xml | 1 + src/Umbraco.Web.UI/config/trees.config | 2 +- src/Umbraco.Web.UI/umbraco/config/lang/da.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/de.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/en.xml | 1 + .../umbraco/config/lang/en_us.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/es.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/fr.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/he.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/it.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/ja.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/ko.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/nl.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/pl.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/pt.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/ru.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/sv.xml | 1 + src/Umbraco.Web.UI/umbraco/config/lang/zh.xml | 1 + .../Trees/UserPermissionsTreeController.cs | 53 +++++++++++++++++++ src/Umbraco.Web/Umbraco.Web.csproj | 1 + 22 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web/Trees/UserPermissionsTreeController.cs diff --git a/src/Umbraco.Core/Constants-Applications.cs b/src/Umbraco.Core/Constants-Applications.cs index 2feae59bad..39ab8ea37f 100644 --- a/src/Umbraco.Core/Constants-Applications.cs +++ b/src/Umbraco.Core/Constants-Applications.cs @@ -114,6 +114,11 @@ /// public const string UserTypes = "userTypes"; + /// + /// alias for the user permissions tree. + /// + public const string UserPermissions = "userPermissions"; + /// /// alias for the users tree. /// diff --git a/src/Umbraco.Web.UI/Umbraco/config/lang/cs.xml b/src/Umbraco.Web.UI/Umbraco/config/lang/cs.xml index 20e252c431..ddb7263681 100644 --- a/src/Umbraco.Web.UI/Umbraco/config/lang/cs.xml +++ b/src/Umbraco.Web.UI/Umbraco/config/lang/cs.xml @@ -963,6 +963,7 @@ Stylopisy Šablony XSLT soubory + Oprávnění Uživatele Typy Uživatelů Uživatelé diff --git a/src/Umbraco.Web.UI/Umbraco/config/lang/nb.xml b/src/Umbraco.Web.UI/Umbraco/config/lang/nb.xml index 12031dc0e0..fe8ad9d4ca 100644 --- a/src/Umbraco.Web.UI/Umbraco/config/lang/nb.xml +++ b/src/Umbraco.Web.UI/Umbraco/config/lang/nb.xml @@ -928,6 +928,7 @@ Vennlig hilsen Umbraco roboten Maler XSLT Filer Analytics + Brukertillatelser Brukertyper typer Brukere diff --git a/src/Umbraco.Web.UI/config/trees.config b/src/Umbraco.Web.UI/config/trees.config index e2e1e7dc10..c0a9155d75 100644 --- a/src/Umbraco.Web.UI/config/trees.config +++ b/src/Umbraco.Web.UI/config/trees.config @@ -25,7 +25,7 @@ - + diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml index df4318ec2a..4de625c299 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml @@ -998,6 +998,7 @@ Mange hilsner fra Umbraco robotten Skabeloner XSLT-filer Analytics + Brugertilladelser Bruger Typer Brugere diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/de.xml b/src/Umbraco.Web.UI/umbraco/config/lang/de.xml index 4bb906f983..3f3c3dcfc5 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/de.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/de.xml @@ -946,6 +946,7 @@ Ihr freundlicher Umbraco-Robot Vorlagen XSLT-Dateien Auswertungen + Berechtigungen Benutzertypen Benutzer diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index 1360c09667..e8ef07bf01 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -1202,6 +1202,7 @@ To manage your website, simply open the Umbraco back office and start adding con Templates XSLT Files Analytics + User Permissions User Types Users diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml index 700c252cde..ba5298af7b 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml @@ -1207,6 +1207,7 @@ To manage your website, simply open the Umbraco back office and start adding con Templates XSLT Files Analytics + User Permissions User Types Users diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/es.xml b/src/Umbraco.Web.UI/umbraco/config/lang/es.xml index 097c028d2b..257411cae4 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/es.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/es.xml @@ -850,6 +850,7 @@ Hojas de estilo Plantillas Archivos XSLT + Permisos de Usuarios Tipos de Usuarios Usuarios diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/fr.xml b/src/Umbraco.Web.UI/umbraco/config/lang/fr.xml index 853f1b11f1..a8b48492a1 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/fr.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/fr.xml @@ -984,6 +984,7 @@ Pour gérer votre site, ouvrez simplement le backoffice Umbraco et commencez à Feuilles de style Modèles Fichiers XSLT + Permissions utilisateur Types d'utilisateurs Utilisateurs diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/he.xml b/src/Umbraco.Web.UI/umbraco/config/lang/he.xml index e42c382b20..75c5dc5e85 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/he.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/he.xml @@ -869,6 +869,7 @@ To manage your website, simply open the Umbraco back office and start adding con גיליונות סגנון תבניות קבצי XSLT + הרשאות משתמש משתמש מקליד משתמש diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/it.xml b/src/Umbraco.Web.UI/umbraco/config/lang/it.xml index 039d727044..a25e49b4a0 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/it.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/it.xml @@ -842,6 +842,7 @@ Per gestire il tuo sito web, è sufficiente aprire il back office di Umbraco e i Fogli di stile Templates Files XSLT + Permessi Utente Tipi di Utente Utenti diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/ja.xml b/src/Umbraco.Web.UI/umbraco/config/lang/ja.xml index bbe3152464..de47edefff 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/ja.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/ja.xml @@ -1173,6 +1173,7 @@ Runwayをインストールして作られた新しいウェブサイトがど テンプレート XSLT ファイル アナリティクス + ユーザーの権限 ユーザータイプ ユーザー diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/ko.xml b/src/Umbraco.Web.UI/umbraco/config/lang/ko.xml index 8435cb9c48..ac25c123a7 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/ko.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/ko.xml @@ -846,6 +846,7 @@ 스타일시트 템플릿 XSLT 파일 + 사용자권한 사용자 유형 사용자 diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml b/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml index d69d5954dd..fab92f2e61 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml @@ -951,6 +951,7 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de Stylesheets Sjablonen XSLT Bestanden + Gebruikersrechten Gebruiker Types Gebruikers diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/pl.xml b/src/Umbraco.Web.UI/umbraco/config/lang/pl.xml index dbdefcb6c2..45f0159fdf 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/pl.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/pl.xml @@ -742,6 +742,7 @@ Miłego dnia!]]> Arkusze stylów Szablony Pliki XSLT + Prawa dostępu użytkownika Typy Użytkowników Użytkowników diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/pt.xml b/src/Umbraco.Web.UI/umbraco/config/lang/pt.xml index 86887b00df..0b3ae99e12 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/pt.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/pt.xml @@ -830,6 +830,7 @@ Para fechar a tarefa de tradução vá até os detalhes e clique no botão "Fech Stylesheets Modelos Arquivos XSLT + Permissões de usuário Tipos de Usuários Usuários diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/ru.xml b/src/Umbraco.Web.UI/umbraco/config/lang/ru.xml index 09edfdeb6a..3e9aafb954 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/ru.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/ru.xml @@ -1162,6 +1162,7 @@ Стили CSS Шаблоны Файлы XSLT + Разрешения для пользователя Типы пользователей пользователи diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/sv.xml b/src/Umbraco.Web.UI/umbraco/config/lang/sv.xml index ae7e8a479e..4d9c111fd1 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/sv.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/sv.xml @@ -851,6 +851,7 @@ Stilmallar Sidmallar XSLT-filer + Användarrättigheter Användartyper Användare diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/zh.xml b/src/Umbraco.Web.UI/umbraco/config/lang/zh.xml index 4e25e92ef2..9239eeabee 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/zh.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/zh.xml @@ -920,6 +920,7 @@ 样式表 模板 XSLT文件 + 用户权限 用户类型 Users diff --git a/src/Umbraco.Web/Trees/UserPermissionsTreeController.cs b/src/Umbraco.Web/Trees/UserPermissionsTreeController.cs new file mode 100644 index 0000000000..3ed2b2b9d1 --- /dev/null +++ b/src/Umbraco.Web/Trees/UserPermissionsTreeController.cs @@ -0,0 +1,53 @@ +using System; +using System.Linq; +using System.Net.Http.Formatting; +using Umbraco.Core; +using Umbraco.Core.Services; +using Umbraco.Web.Models.Trees; +using Umbraco.Web.Mvc; +using Umbraco.Web.WebApi.Filters; +using Umbraco.Web._Legacy.Actions; +using Constants = Umbraco.Core.Constants; + +namespace Umbraco.Web.Trees +{ + [UmbracoTreeAuthorize(Constants.Trees.UserPermissions)] + [Tree(Constants.Applications.Users, Constants.Trees.UserPermissions, null, sortOrder: 2)] + [PluginController("UmbracoTrees")] + [CoreTree] + public class UserPermissionsTreeController : TreeController + { + protected override TreeNodeCollection GetTreeNodes(string id, FormDataCollection queryStrings) + { + var nodes = new TreeNodeCollection(); + int totalUsers; + nodes.AddRange( + Services.UserService.GetAll(0, int.MaxValue, out totalUsers) + .Where(x => x.Id > 0 && x.IsApproved) + .Select(x => CreateTreeNode(x.Id.ToString(), + id, + queryStrings, + x.Name, + "icon-user", + false, + "/" + queryStrings.GetValue("application") + "/framed/" + + Uri.EscapeDataString("users/PermissionEditor.aspx?id=" + x.Id)))); + + return nodes; + } + + protected override MenuItemCollection GetMenuForNode(string id, FormDataCollection queryStrings) + { + var menu = new MenuItemCollection(); + + if (id == Constants.System.Root.ToInvariantString()) + { + // root actions + menu.Items.Add(Services.TextService.Localize("actions", ActionRefresh.Instance.Alias), true); + return menu; + } + + return menu; + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index bd8a6b102d..e1da74100c 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -340,6 +340,7 @@ + From aed198652011327f08d99bf3353f7098b2754ec9 Mon Sep 17 00:00:00 2001 From: AndyButland Date: Sun, 8 May 2016 08:06:11 +0200 Subject: [PATCH 2/3] Removed legacy tree --- .../umbraco/Trees/UserPermissions.cs | 76 ------------------- .../umbraco/users/PermissionEditor.aspx.cs | 2 +- 2 files changed, 1 insertion(+), 77 deletions(-) delete mode 100644 src/Umbraco.Web/umbraco.presentation/umbraco/Trees/UserPermissions.cs diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/UserPermissions.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/UserPermissions.cs deleted file mode 100644 index f6b0a0e145..0000000000 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/UserPermissions.cs +++ /dev/null @@ -1,76 +0,0 @@ -using Umbraco.Core.Services; -using System; -using System.Collections.Generic; -using System.Text; -using Umbraco.Core; -using Umbraco.Web.Trees; -using Umbraco.Web._Legacy.Actions; - -namespace umbraco.cms.presentation.Trees -{ - [Tree(Constants.Applications.Users, "userPermissions", "User Permissions", sortOrder: 2)] - public class UserPermissions : BaseTree - { - - public UserPermissions(string application) : base(application) { } - - /// - /// don't allow any actions on this tree - /// - /// - protected override void CreateAllowedActions(ref List actions) - { - actions.Clear(); - } - - /// - /// no actions should be able to be performed on the parent node except for refresh - /// - /// - protected override void CreateRootNodeActions(ref List actions) - { - actions.Clear(); - actions.Add(ActionRefresh.Instance); - } - - public override void Render(ref XmlTree tree) - { - int totalusers; - foreach (var user in Services.UserService.GetAll(0, int.MaxValue, out totalusers)) - { - if (user.Id > 0 && user.IsApproved) - { - XmlTreeNode node = XmlTreeNode.Create(this); - node.NodeID = user.Id.ToString(); - node.Text = user.Name; - node.Action = "javascript:openUserPermissions('" + user.Id + "');"; - node.Icon = "icon-users"; - - OnBeforeNodeRender(ref tree, ref node, EventArgs.Empty); - if (node != null) - { - tree.Add(node); - OnAfterNodeRender(ref tree, ref node, EventArgs.Empty); - } - - } - } - } - - protected override void CreateRootNode(ref XmlTreeNode rootNode) - { - rootNode.Text = Services.TextService.Localize("user/userPermissions"); - } - - public override void RenderJS(ref StringBuilder Javascript) - { - Javascript.Append( - @" -function openUserPermissions(id) { - UmbClientMgr.contentFrame('users/PermissionEditor.aspx?id=' + id); -} -"); - } - - } -} diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/users/PermissionEditor.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/users/PermissionEditor.aspx.cs index 93643ee77b..4c564e2b95 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/users/PermissionEditor.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/users/PermissionEditor.aspx.cs @@ -52,7 +52,7 @@ namespace umbraco.cms.presentation.user if (!IsPostBack) { ClientTools cTools = new ClientTools(this); - cTools.SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree().Tree.Alias) + cTools.SetActiveTreeType(Constants.Trees.UserPermissions) .SyncTree(Request.QueryString["id"], false); } } From 1e0602bc459f41a2d6190948d351e81881f4a717 Mon Sep 17 00:00:00 2001 From: AndyButland Date: Sun, 8 May 2016 08:52:14 +0200 Subject: [PATCH 3/3] Updated project reference to deleted file --- src/Umbraco.Web/Umbraco.Web.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index e1da74100c..de7a7f9fd6 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -1555,7 +1555,6 @@ - XmlTree.xsd