diff --git a/src/Umbraco.Core/Constants-Applications.cs b/src/Umbraco.Core/Constants-Applications.cs
index f24fb61610..22a803b3d8 100644
--- a/src/Umbraco.Core/Constants-Applications.cs
+++ b/src/Umbraco.Core/Constants-Applications.cs
@@ -118,6 +118,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 0bdb4a8453..e1939d5924 100644
--- a/src/Umbraco.Web.UI/Umbraco/config/lang/cs.xml
+++ b/src/Umbraco.Web.UI/Umbraco/config/lang/cs.xml
@@ -969,6 +969,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 3d422d0a9b..3cb8a4ae71 100644
--- a/src/Umbraco.Web.UI/Umbraco/config/lang/nb.xml
+++ b/src/Umbraco.Web.UI/Umbraco/config/lang/nb.xml
@@ -934,6 +934,7 @@ Vennlig hilsen Umbraco roboten
Maler
XSLT Filer
Analytics
+ Brukertillatelser
Brukertyper typer
Brukere
diff --git a/src/Umbraco.Web.UI/config/trees.Release.config b/src/Umbraco.Web.UI/config/trees.Release.config
index c5df870b4d..64f79e5d3f 100644
--- a/src/Umbraco.Web.UI/config/trees.Release.config
+++ b/src/Umbraco.Web.UI/config/trees.Release.config
@@ -13,7 +13,6 @@
-
@@ -24,9 +23,9 @@
-
+
-
+
diff --git a/src/Umbraco.Web.UI/config/trees.config b/src/Umbraco.Web.UI/config/trees.config
index e92d9adc17..0391c74229 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 3cbed82354..e15beeb747 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml
@@ -1009,6 +1009,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 3428323a71..37cfd78349 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/de.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/de.xml
@@ -952,6 +952,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 ebd1b19df6..829acf10b3 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml
@@ -1213,6 +1213,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 9505312459..f8f90bb76d 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
@@ -1218,6 +1218,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 931d18c41d..ef61857eac 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/es.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/es.xml
@@ -856,6 +856,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 55d25b4eff..5d434e2750 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/fr.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/fr.xml
@@ -990,6 +990,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 f1a2ed358f..74df29362e 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/he.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/he.xml
@@ -875,6 +875,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 fa125dc842..099f0a2bc5 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/it.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/it.xml
@@ -848,6 +848,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 21d85268fa..ddc3f240ad 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/ja.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/ja.xml
@@ -1179,6 +1179,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 58d5778892..b2e30ad57c 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/ko.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/ko.xml
@@ -852,6 +852,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 5bbe4f634c..6a2d409c13 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml
@@ -957,6 +957,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 db911b07b7..f9faa9c144 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/pl.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/pl.xml
@@ -748,6 +748,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 15ca527821..e35157aa1c 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/pt.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/pt.xml
@@ -836,6 +836,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 216de9f9ab..3f8342c78b 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/ru.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/ru.xml
@@ -1168,6 +1168,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 5ed13a0bf4..d25241dd90 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/sv.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/sv.xml
@@ -857,6 +857,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 d703dee135..f19e5e2cf9 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/zh.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/zh.xml
@@ -926,6 +926,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..0d546d6a42
--- /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();
+ long 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 22a5fdd2c4..33f25aa8d5 100644
--- a/src/Umbraco.Web/Umbraco.Web.csproj
+++ b/src/Umbraco.Web/Umbraco.Web.csproj
@@ -183,6 +183,7 @@
+
@@ -1381,7 +1382,6 @@
-
XmlTree.xsd
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 c52326e80d..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)
- {
- long 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);
}
}