Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleListView.Designer.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleListView.Designer.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleListView.Designer.cs	(revision 7893)
@@ -24,17 +24,18 @@
     /// </summary>
     private void InitializeComponent() {
+      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RefreshableRoleListView));
       this.roleListView = new HeuristicLab.Clients.Access.Administration.RoleListView();
       this.storeButton = new System.Windows.Forms.Button();
       this.SuspendLayout();
       // 
-      // userListView
+      // roleListView
       // 
       this.roleListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
       this.roleListView.Caption = "UserList View";
       this.roleListView.Content = null;
       this.roleListView.Location = new System.Drawing.Point(3, 33);
-      this.roleListView.Name = "userListView";
+      this.roleListView.Name = "roleListView";
       this.roleListView.ReadOnly = false;
       this.roleListView.Size = new System.Drawing.Size(559, 375);
@@ -43,6 +44,7 @@
       // storeButton
       // 
+      this.storeButton.Enabled = false;
+      this.storeButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.PublishToWeb;
       this.storeButton.Location = new System.Drawing.Point(33, 3);
-      this.storeButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.PublishToWeb;
       this.storeButton.Name = "storeButton";
       this.storeButton.Size = new System.Drawing.Size(24, 24);
@@ -51,5 +53,5 @@
       this.storeButton.Click += new System.EventHandler(this.storeButton_Click);
       // 
-      // RefreshableUserListView
+      // RefreshableRoleListView
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -57,5 +59,5 @@
       this.Controls.Add(this.roleListView);
       this.Controls.Add(this.storeButton);
-      this.Name = "RefreshableUserListView";
+      this.Name = "RefreshableRoleListView";
       this.Size = new System.Drawing.Size(565, 411);
       this.Controls.SetChildIndex(this.storeButton, 0);
Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleListView.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleListView.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleListView.cs	(revision 7893)
@@ -37,4 +37,5 @@
         base.Content_Refreshing(sender, e);
         roleListView.Enabled = false;
+        storeButton.Enabled = false;
         if (Content.Roles != null) {
           Content.Roles.ItemsRemoved -= new Collections.CollectionItemsChangedEventHandler<Collections.IndexedItem<Role>>(Roles_ItemsRemoved);
@@ -49,4 +50,5 @@
         base.Content_Refreshed(sender, e);
         roleListView.Enabled = true;
+        storeButton.Enabled = true;
         roleListView.Content = Content.Roles;
         if (Content.Roles != null) {
Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleSelectionListView.Designer.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleSelectionListView.Designer.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleSelectionListView.Designer.cs	(revision 7893)
@@ -31,4 +31,5 @@
       // storeButton
       // 
+      this.storeButton.Enabled = false;
       this.storeButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.PublishToWeb;
       this.storeButton.Location = new System.Drawing.Point(33, 3);
Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleSelectionListView.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleSelectionListView.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleSelectionListView.cs	(revision 7893)
@@ -32,5 +32,14 @@
 
     public List<Role> CurrentRoles = new List<Role>();
-    public User CurrentUser { get; set; }
+
+    private User currentUser;
+    public User CurrentUser {
+      get { return currentUser; }
+      set {
+        currentUser = value;
+        roleSelectionListView.Content = null;
+        storeButton.Enabled = false;
+      }
+    }
 
     protected override void RefreshData() {
@@ -50,4 +59,5 @@
       } else {
         base.Content_Refreshing(sender, e);
+        storeButton.Enabled = false;
         roleSelectionListView.Enabled = false;
       }
@@ -59,19 +69,18 @@
       } else {
         base.Content_Refreshed(sender, e);
-        roleSelectionListView.Enabled = true;
+        if (Content.Roles != null) {
+          roleSelectionListView.Enabled = true;
+          storeButton.Enabled = true;
 
-        roleSelectionListView.Content = new ItemList<Role>(Content.Roles);
-        foreach (var role in CurrentRoles) {
-          foreach (ListViewItem lstRole in roleSelectionListView.ItemsListView.Items) {
-            if (((Role)lstRole.Tag).Equals(role)) {
-              lstRole.Checked = true;
+          roleSelectionListView.Content = new ItemList<Role>(Content.Roles);
+          foreach (var role in CurrentRoles) {
+            foreach (ListViewItem lstRole in roleSelectionListView.ItemsListView.Items) {
+              if (((Role)lstRole.Tag).Equals(role)) {
+                lstRole.Checked = true;
+              }
             }
           }
         }
       }
-    }
-
-    protected override void DeregisterContentEvents() {
-      base.DeregisterContentEvents();
     }
 
Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserGroupListView.Designer.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserGroupListView.Designer.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserGroupListView.Designer.cs	(revision 7893)
@@ -44,4 +44,5 @@
       // storeButton
       // 
+      this.storeButton.Enabled = false;
       this.storeButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.PublishToWeb;
       this.storeButton.Location = new System.Drawing.Point(33, 3);
Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserGroupListView.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserGroupListView.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserGroupListView.cs	(revision 7893)
@@ -37,4 +37,5 @@
         base.Content_Refreshing(sender, e);
         userGroupListView.Enabled = false;
+        storeButton.Enabled = false;
         if (Content.Groups != null) {
           Content.Groups.ItemsRemoved -= new Collections.CollectionItemsChangedEventHandler<Collections.IndexedItem<UserGroup>>(Groups_ItemsRemoved);
@@ -49,4 +50,5 @@
         base.Content_Refreshed(sender, e);
         userGroupListView.Enabled = true;
+        storeButton.Enabled = true;
         userGroupListView.Content = Content.Groups;
         if (Content.Groups != null) {
Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserListView.Designer.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserListView.Designer.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserListView.Designer.cs	(revision 7893)
@@ -43,4 +43,5 @@
       // storeButton
       // 
+      this.storeButton.Enabled = false;
       this.storeButton.Location = new System.Drawing.Point(33, 3);
       this.storeButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.PublishToWeb;
Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserListView.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserListView.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserListView.cs	(revision 7893)
@@ -37,4 +37,5 @@
         base.Content_Refreshing(sender, e);
         userListView.Enabled = false;
+        storeButton.Enabled = false;
         if (Content.Users != null) {
           Content.Users.ItemsRemoved -= new Collections.CollectionItemsChangedEventHandler<Collections.IndexedItem<User>>(Users_ItemsRemoved);
@@ -49,4 +50,5 @@
         base.Content_Refreshed(sender, e);
         userListView.Enabled = true;
+        storeButton.Enabled = true;
         userListView.Content = Content.Users;
         if (Content.Users != null) {
@@ -65,5 +67,7 @@
     void Users_ItemsRemoved(object sender, Collections.CollectionItemsChangedEventArgs<Collections.IndexedItem<User>> e) {
       foreach (var u in e.Items) {
-        Content.DeleteUserAsync(u.Value, PluginInfrastructure.ErrorHandling.ShowErrorDialog);
+        if (u.Value.Id != Guid.Empty) {
+          Content.DeleteUserAsync(u.Value, PluginInfrastructure.ErrorHandling.ShowErrorDialog);
+        }
       }
     }
Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RoleListView.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RoleListView.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RoleListView.cs	(revision 7893)
@@ -32,4 +32,11 @@
     public RoleListView() {
       InitializeComponent();
+      itemsGroupBox.Text = "Roles";
+    }
+
+    protected override Role CreateItem() {
+      var role = new Role();
+      role.Name = "New Role";
+      return role;
     }
   }
Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RoleSelectionListView.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RoleSelectionListView.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/RoleSelectionListView.cs	(revision 7893)
@@ -20,4 +20,5 @@
 #endregion
 
+using System;
 using System.Windows.Forms;
 using HeuristicLab.Core;
@@ -32,8 +33,26 @@
     public RoleSelectionListView() {
       InitializeComponent();
-      this.ItemsListView.CheckBoxes = true;
-      this.ItemsListView.View = System.Windows.Forms.View.Details;
+      ItemsListView.CheckBoxes = true;
+      ItemsListView.View = System.Windows.Forms.View.Details;
+      showDetailsCheckBox.Checked = false;
+      itemsGroupBox.Text = "Roles";
     }
 
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+
+      addButton.Enabled = false;
+      removeButton.Enabled = false;
+      showDetailsCheckBox.Enabled = false;
+      moveUpButton.Enabled = false;
+      moveDownButton.Enabled = false;
+    }
+
+    protected override void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
+      base.itemsListView_SelectedIndexChanged(sender, e);
+      moveUpButton.Enabled = false;
+      moveDownButton.Enabled = false;
+      removeButton.Enabled = false;
+    }
   }
 }
Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserAdministrationDialog.Designer.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserAdministrationDialog.Designer.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserAdministrationDialog.Designer.cs	(revision 7893)
@@ -47,5 +47,5 @@
       this.refreshableUserListView.Name = "refreshableUserListView";
       this.refreshableUserListView.ReadOnly = false;
-      this.refreshableUserListView.Size = new System.Drawing.Size(762, 364);
+      this.refreshableUserListView.Size = new System.Drawing.Size(921, 527);
       this.refreshableUserListView.TabIndex = 0;
       // 
@@ -61,5 +61,5 @@
       this.mainTabControl.Name = "mainTabControl";
       this.mainTabControl.SelectedIndex = 0;
-      this.mainTabControl.Size = new System.Drawing.Size(782, 402);
+      this.mainTabControl.Size = new System.Drawing.Size(941, 565);
       this.mainTabControl.TabIndex = 1;
       // 
@@ -70,5 +70,5 @@
       this.usersTabPage.Name = "usersTabPage";
       this.usersTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.usersTabPage.Size = new System.Drawing.Size(774, 376);
+      this.usersTabPage.Size = new System.Drawing.Size(933, 539);
       this.usersTabPage.TabIndex = 0;
       this.usersTabPage.Text = "Users";
@@ -127,5 +127,5 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.ClientSize = new System.Drawing.Size(806, 426);
+      this.ClientSize = new System.Drawing.Size(965, 589);
       this.Controls.Add(this.mainTabControl);
       this.MaximizeBox = false;
Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupListView.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupListView.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupListView.cs	(revision 7893)
@@ -32,4 +32,11 @@
     public UserGroupListView() {
       InitializeComponent();
+      itemsGroupBox.Text = "Groups";
+    }
+
+    protected override UserGroup CreateItem() {
+      var group = new UserGroup();
+      group.Name = "New Group";
+      return group;
     }
   }
Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserListView.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserListView.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserListView.cs	(revision 7893)
@@ -32,4 +32,11 @@
     public UserListView() {
       InitializeComponent();
+      itemsGroupBox.Text = "Users";
+    }
+
+    protected override User CreateItem() {
+      var user = new User();
+      user.UserName = "New User";
+      return user;
     }
   }
Index: branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserView.Designer.cs
===================================================================
--- branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserView.Designer.cs	(revision 7876)
+++ branches/ClientUserManagement/HeuristicLab.Clients.Access.Administration/3.3/Views/UserView.Designer.cs	(revision 7893)
@@ -62,5 +62,4 @@
       this.userNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
-      this.userNameTextBox.Enabled = false;
       this.userNameTextBox.Location = new System.Drawing.Point(76, 3);
       this.userNameTextBox.Name = "userNameTextBox";
