Index: /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupView.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupView.cs	(revision 15566)
+++ /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupView.cs	(revision 15567)
@@ -68,4 +68,10 @@
     }
 
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      bool enabled = Content != null && !Locked;
+      groupNameTextBox.ReadOnly = enabled;
+    }
+
     private void groupNameTextBox_TextChanged(object sender, EventArgs e) {
       if (Content != null && Content.Name != groupNameTextBox.Text)
Index: /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserView.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserView.cs	(revision 15566)
+++ /branches/HiveProjectManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserView.cs	(revision 15567)
@@ -64,4 +64,10 @@
     protected override void SetEnabledStateOfControls() {
       base.SetEnabledStateOfControls();
+      bool enabled = Content != null && !Locked;
+      
+      userNameTextBox.ReadOnly = enabled;
+      fullNameTextBox.ReadOnly = enabled;
+      emailTextBox.ReadOnly = enabled;
+
       if (Content == null) {
         resetPasswordButton.Enabled = false;
Index: /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectPermissionsView.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectPermissionsView.cs	(revision 15566)
+++ /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectPermissionsView.cs	(revision 15567)
@@ -65,4 +65,6 @@
         var top = BuildPermissionsList(AccessClient.Instance.UsersAndGroups);
         detailsViewHost.Content = top;
+        detailsViewHost.ActiveView.Locked = true;
+        
       }
     }
Index: /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectResourcesView.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectResourcesView.cs	(revision 15566)
+++ /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectResourcesView.cs	(revision 15567)
@@ -29,4 +29,5 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
+using System.Collections;
 
 namespace HeuristicLab.Clients.Hive.Administrator.Views {
@@ -45,7 +46,9 @@
     private readonly Dictionary<Guid, HashSet<Resource>> resourceAncestors = new Dictionary<Guid, HashSet<Resource>>();
     private readonly Dictionary<Guid, HashSet<Resource>> resourceDescendants = new Dictionary<Guid, HashSet<Resource>>();
-    //private readonly Color ownedResourceColor = Color.LightGreen;
-    private readonly Color changedAssignmentColor = Color.FromArgb(255, Color.LightGreen);
-    private readonly Color changedInheritanceColor = Color.FromArgb(255, Color.LightGray);
+    //private readonly Color addedAssignmentColor = Color.FromArgb(255, 0, 174, 179); // #00aeb3
+    private readonly Color addedAssignmentColor = Color.FromArgb(255, 87, 191, 193); // #57bfc1
+    private readonly Color removedAssignmentColor = Color.FromArgb(255, 236, 159, 72); // #ec9f48
+    private readonly Color addedIncludeColor = Color.FromArgb(25, 169, 221, 221); // #a9dddd
+    private readonly Color removedIncludeColor = Color.FromArgb(25, 249, 210, 145); // #f9d291
 
     public new Project Content {
@@ -76,4 +79,5 @@
         var top = BuildResourceTree(HiveAdminClient.Instance.Resources);
         detailsViewHost.Content = top;
+        detailsViewHost.ActiveView.Locked = true;
       }
     }
@@ -250,8 +254,14 @@
       Resource currentResource = null;
 
-      var assignmentDiff = new HashSet<Resource>(newAssignedResources);
-      assignmentDiff.SymmetricExceptWith(assignedResources);
-      var inheritanceDiff = new HashSet<Resource>(newInheritedResources);
-      inheritanceDiff.SymmetricExceptWith(inheritedResources);
+
+      var addedAssignments = newAssignedResources.Except(assignedResources);
+      var removedAssignments = assignedResources.Except(newAssignedResources);
+      var addedIncludes = newInheritedResources.Except(inheritedResources);
+      var removedIncludes = inheritedResources.Except(newInheritedResources);
+
+      //var assignmentDiff = new HashSet<Resource>(newAssignedResources);
+      //assignmentDiff.SymmetricExceptWith(assignedResources);
+      //var inheritanceDiff = new HashSet<Resource>(newInheritedResources);
+      //inheritanceDiff.SymmetricExceptWith(inheritedResources);
 
       while (stack.Any()) {
@@ -273,19 +283,30 @@
         }
 
-
         if (newAssignedResources.Contains(newResource)) {
           newNode.Checked = true;
         } else if (newInheritedResources.Contains(newResource)) {
           newNode.Checked = true;
-          newNode.Text += " (Inherited)";
           newNode.ForeColor = SystemColors.GrayText;
         }
 
-        if (assignmentDiff.Contains(newResource)) {
-          newNode.BackColor = changedAssignmentColor;
-          newNode.Text += " [changed]";
-        } else if(inheritanceDiff.Contains(newResource)) {
-          newNode.BackColor = changedInheritanceColor;
-          newNode.Text += " [changed]";
+          if (inheritedResources.Contains(newResource) && newInheritedResources.Contains(newResource)) {
+          newNode.Text += " [included]";
+        } else if (addedIncludes.Contains(newResource)) {
+          newNode.BackColor = addedIncludeColor;
+          newNode.ForeColor = SystemColors.GrayText;
+          newNode.Text += " [+included]";
+        } else if (removedIncludes.Contains(newResource)) {
+          newNode.BackColor = removedIncludeColor;
+          newNode.Text += " [-included]";
+        }
+
+        if (addedAssignments.Contains(newResource)) {
+          newNode.BackColor = addedAssignmentColor;
+          newNode.ForeColor = SystemColors.ControlText;
+          newNode.Text += " [added]";
+        } else if (removedAssignments.Contains(newResource)) {
+          newNode.BackColor = removedAssignmentColor;
+          newNode.ForeColor = SystemColors.ControlText;
+          newNode.Text += " [removed]";
         }
 
Index: /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectsView.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectsView.cs	(revision 15566)
+++ /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectsView.cs	(revision 15567)
@@ -40,6 +40,6 @@
     private const int greenFlagImageIndex = 0;
     private const int redFlagImageIndex = 1;
-    private readonly Color changedColor = Color.FromArgb(255, Color.LightGreen);
-    private readonly Color selectedColor = Color.SkyBlue;
+    private readonly Color changedColor = Color.FromArgb(255, 87, 191, 193); // #57bfc1
+    private readonly Color selectedColor = Color.FromArgb(255, 240, 194, 59); // #f0c23b
 
     private readonly object locker = new object();
Index: /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ResourceView.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ResourceView.cs	(revision 15566)
+++ /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ResourceView.cs	(revision 15567)
@@ -58,5 +58,5 @@
     protected override void SetEnabledStateOfControls() {
       base.SetEnabledStateOfControls();
-      bool enabled = Content != null;
+      bool enabled = Content != null && !Locked;
       nameTextBox.Enabled = enabled;
       descriptionTextBox.Enabled = enabled;
Index: /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ResourcesView.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ResourcesView.cs	(revision 15566)
+++ /branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ResourcesView.cs	(revision 15567)
@@ -98,5 +98,5 @@
     protected override void SetEnabledStateOfControls() {
       base.SetEnabledStateOfControls();
-      bool enabled = Content != null;
+      bool enabled = Content != null && !Locked;
       btnAddGroup.Enabled = enabled;
       btnRemoveGroup.Enabled = enabled;
