Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/UserController.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/UserController.cs	(revision 13741)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/UserController.cs	(revision 13742)
@@ -27,5 +27,4 @@
             _environment = env;
         }
-        #region Users
         private void init()
         {
@@ -43,4 +42,6 @@
             }
         }
+        #region Users
+
         public IActionResult Index()
         {
@@ -75,4 +76,5 @@
                 {
                     vm.SelectedUser = vm.getUserById(curr);
+                    vm.SelectedUserSubscriptions = accessClient.getSubscribedGroups(curr);
                     ViewBag.title = vm.SelectedUser.UserName;
                 }
@@ -97,6 +99,5 @@
                 user = accessClient.Users.Find(x => x.Id == uid);
 
-            user.Id = uid;
-            user.UserName = inpusername;
+            
             user.FullName = inpfullname;
             user.Email = inpemail;
@@ -105,14 +106,36 @@
             if (uid == Guid.Empty)
             {
+                user.UserName = inpusername;
                 uid = accessClient.addUser(user);
-                ViewBag.Title = inpusername + " added - User";
+                ViewBag.Title = user.UserName + " added - User";
             }
             else
             {
                 accessClient.updateUser(user);
-                ViewBag.Title = inpusername + " updated - User";
+                ViewBag.Title = user.UserName + " updated - User";
             }
 
             return RedirectToAction( "SelectUser", new {  id =  uid.ToString()});
+
+        }
+        public IActionResult deleteUser(string id)
+        {
+            init();
+            var uid = Guid.Parse(id);
+            UserViewModel vm = new UserViewModel(accessClient).refreshUsers();
+            
+            if (uid == Guid.Empty)
+            {
+                vm.message = "Something went wrong, user is not deleted";
+                return View("Index", vm);
+            }
+            else
+            {
+                var user = vm.getUserById(uid);
+                vm.message = user.UserName + " ("+user.FullName+") has been deleted";
+                accessClient.DeleteUser(user);
+                vm.refreshUsers();
+                return View("Index", vm);
+            }
 
         }
@@ -128,14 +151,134 @@
 
                 ViewBag.Title = "Groups";
-                // accessClient.RefreshUsers();
-                
-                return View("Groups");
-            }
-            else
-            {
-                return RedirectToAction("Index", "Home");
-            }
+                UserViewModel vm = new UserViewModel(accessClient).refreshGroups().refreshUsers();
+                return View("Groups", vm);
+            }
+            else
+            {
+                return RedirectToAction("Index", "Home");
+            }
+        }
+        public IActionResult SelectGroup(string id)
+        {
+            init();
+            if (serviceLocator.CheckLogin())
+            {
+                Guid curr = Guid.Parse(id);
+
+                UserViewModel vm = new UserViewModel(accessClient)
+                    .refreshGroups()
+                    .refreshUsers();
+                if (curr == Guid.Empty)
+                {
+                    ViewBag.Title = "Add group";
+                }
+                else
+                {
+                    vm.SelectedGroup = vm.getGroupById(curr);
+                    vm.SelectedGroupMembers = accessClient.getGroupMembers(curr);
+                    ViewBag.title = vm.SelectedGroup.Name;
+                }
+                ViewBag.Title += " - Group";
+                return View("Groups", vm);
+            }
+            else
+            {
+                return RedirectToAction("Index", "Home");
+            }
+        }
+        [HttpPost]
+        public IActionResult saveGroup(string inpgroupname, string u, string[] userstoadd, string[] groupstoadd)
+        {
+            init();
+            var uid = Guid.Parse(u);
+            var vm = new UserViewModel(accessClient).refreshGroups().refreshUsers();
+
+            Access.UserGroup group;
+            
+            if (uid == Guid.Empty)
+                group = new Access.UserGroup();
+            else
+                group = accessClient.Groups.Find(x => x.Id == uid);
+
+            group.Name = inpgroupname;
+
+            if (uid == Guid.Empty)
+            {
+                uid = accessClient.addGroup(group);
+                ViewBag.Title = group.Name + " added - Group";
+            }
+            else
+            {
+                accessClient.updateGroup(group);
+                ViewBag.Title = group.Name + " updated - Group";
+            }
+            vm.refreshGroups();
+            group = vm.getGroupById(uid);
+            foreach(var s in userstoadd)
+            {
+                var tempid = Guid.Parse(s);
+                var member = vm.getUserById(tempid);
+                accessClient.addMember(member, group);
+            }
+            foreach (var g in groupstoadd)
+            {
+                var tempid = Guid.Parse(g);
+                var member = vm.getGroupById(tempid);
+                accessClient.addMember(member, group);
+            }
+
+            return RedirectToAction("SelectGroup", new { id = uid.ToString() });
+
+        }
+        public IActionResult deleteGroup(string id)
+        {
+            init();
+            var uid = Guid.Parse(id);
+            UserViewModel vm = new UserViewModel(accessClient).refreshGroups();
+
+            if (uid == Guid.Empty)
+            {
+                vm.message = "Something went wrong, group is not deleted";
+                return View("Groups", vm);
+            }
+            else
+            {
+                var group = vm.getGroupById(uid);
+                vm.message = group.Name + " has been deleted";
+                accessClient.deleteUserGroup(group);
+                vm.refreshGroups();
+                return View("Groups", vm);
+            }
+
+        }
+        public IActionResult deleteMember(string g, string m)
+        {
+            init();
+            var gid = Guid.Parse(g);
+            var mid = Guid.Parse(m);
+            UserViewModel vm = new UserViewModel(accessClient).refreshGroups().refreshUsers() ;
+
+            if (gid == Guid.Empty || mid == Guid.Empty)
+            {
+                vm.message = "Something went wrong, member is not deleted";
+                return View("Groups", vm);
+            }
+            else
+            {
+                var group = vm.getGroupById(gid);
+                Access.UserGroupBase member = vm.getUserById(mid);
+                if(member == null)
+                {
+                    member = vm.getGroupById(mid);
+                }
+                vm.message = " Member deleted";
+                accessClient.deleteMember(member,group);
+                vm.refreshGroups();
+                return RedirectToAction("SelectGroup", new { id = g });
+            }
+
         }
         #endregion
+
         #region Roles
         public IActionResult Roles()
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Services/Imports/AccessAdministrationClient.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Services/Imports/AccessAdministrationClient.cs	(revision 13741)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Services/Imports/AccessAdministrationClient.cs	(revision 13742)
@@ -27,4 +27,5 @@
 using HeuristicLab.Clients.Hive.WebJobManager.ViewModels;
 using HeuristicLab.Clients.Hive.WebJobManager.Services;
+using System.Collections.Generic;
 
 namespace HeuristicLab.Clients.Access.Administration
@@ -169,4 +170,5 @@
         }
 
+        /* BROKEN 
         public void DeleteUserGroup(UserGroup u)
         {
@@ -179,5 +181,5 @@
             ExecuteActionAsync(deleteUserGroupAction, exceptionCallback);
         }
-
+        */
         public void DeleteRole(Role u)
         {
@@ -233,21 +235,102 @@
         #endregion
 
+        #region User
+
+        public string resetPassword(Guid id)
+        {
+            return CallAccessService<string>(s => s.ResetPassword(id));
+        }
+        public Guid addUser(Access.User u)
+        {
+            return CallAccessService(s => s.AddUser(u).Id);
+        }
+        
+        public void updateUser(Access.User u)
+        {
+            
+             CallAccessService(s => s.UpdateUser(u));
+        }
+        #endregion
+
+        #region Group
+        public Guid addGroup(Access.UserGroup g)
+        {
+            return CallAccessService(s => s.AddUserGroup(g));
+        }
+        public void updateGroup(UserGroup g)
+        {
+            CallAccessService(s => s.UpdateUserGroup(g));
+        }
+        public List<Access.UserGroup> getSubscribedGroups(Guid id)
+        {
+            var maps = CallAccessService(s => s.GetUserGroupMapping());
+            maps = maps.FindAll(x => x.Child == id);
+
+            RefreshUserGroups();
+            RefreshUsers();
+
+            List<Access.UserGroup> members = new List<Access.UserGroup>();
+            foreach (var map in maps)
+            {
+                    UserGroup g = Groups.Find(x => x.Id == map.Parent);
+                    if (g != null)
+                    {
+                        members.Add( g);
+                    }
+            }
+            return members;
+        }
+        public List<Access.UserGroupBase> getGroupMembers(Guid id)
+        {
+            var maps = CallAccessService(s => s.GetUserGroupMapping());
+            maps = maps.FindAll(x => x.Parent == id);
+
+            RefreshUserGroups();
+            RefreshUsers();
+
+            List<Access.UserGroupBase> members = new List<Access.UserGroupBase>();
+            foreach (var map in maps)
+            {
+                User t = users.Find(x => x.Id == map.Child);
+                if (t == null)
+                {
+                    UserGroup g = Groups.Find(x => x.Id == map.Child);
+                    if (g != null)
+                    {
+                        members.Insert(0,g);//Groups always in the front
+                    }
+                }
+                else
+                {
+                    members.Add(t);//members in the back
+                }
+            }
+            return members;
+        }
+
+        public void deleteUserGroup(UserGroup group)
+        {
+            deleteAllMembers(group);
+            CallAccessService(s => s.DeleteUserGroup(group));
+        }
+        private void deleteAllMembers(UserGroup group)
+        {
+            var list = getGroupMembers(group.Id);
+            foreach (var member in list)
+            {//Empties all member connections
+                CallAccessService(s => s.RemoveUserGroupBaseFromGroup(member, group));
+            }
+        }
+        public void addMember(UserGroupBase member, UserGroup group)
+        {
+            CallAccessService(s => s.AddUserGroupBaseToGroup(member, group));
+        }
+        public void deleteMember(UserGroupBase member,UserGroup group)
+        {
+            CallAccessService(s => s.RemoveUserGroupBaseFromGroup(member, group));
+        }
+        #endregion
+
         #region Helpers
-        public string resetPassword(Guid id)
-        {
-            return CallAccessService<string>(s => s.ResetPassword(id));
-        }
-        public Guid addUser(Access.User u)
-        {
-            return CallAccessService(s => s.AddUser(u).Id);
-        }
-        public void updateUser(Access.User u)
-        {
-             CallAccessService(s => s.UpdateUser(u));
-        }
-        public void deleteUser(Access.User u)
-        {
-            CallAccessService(s => s.DeleteUser(u));
-        }
         private void getAccessClient()
         {
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/User/UserViewModel.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/User/UserViewModel.cs	(revision 13741)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/User/UserViewModel.cs	(revision 13742)
@@ -17,4 +17,7 @@
 
         public Access.User SelectedUser { get; set; }
+        public List<Access.UserGroup> SelectedUserSubscriptions { get; set; }
+        public Access.UserGroup SelectedGroup { get; set; }
+        public List<Access.UserGroupBase> SelectedGroupMembers { get; set; }
 
         public UserViewModel(AccessAdministrationClient ac)
@@ -23,4 +26,8 @@
             accessClient = ac;
             SelectedUser = new Access.User();
+            SelectedGroup = new Access.UserGroup();
+            SelectedUserSubscriptions = new List<Access.UserGroup>();
+            SelectedGroupMembers = new List<Access.UserGroupBase>();
+            
             
         }
@@ -47,4 +54,8 @@
             return users.Find(x => x.Id == id);
         }
+        public Access.UserGroup getGroupById(Guid id)
+        {
+            return ugroups.Find(x => x.Id == id);
+        }
     }
 }
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/Index.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/Index.cshtml	(revision 13741)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/Index.cshtml	(revision 13742)
@@ -10,5 +10,5 @@
             <a asp-controller="Job"
                asp-action="Index">
-                Jobs
+                <i class="fa fa-tasks"></i> Jobs
             </a>
         </li>
@@ -17,5 +17,5 @@
             <a asp-controller="Job"
                asp-action="Uploads">
-                Uploads
+                <i class="fa fa-cloud"></i>  Uploads
             </a>
         </li>
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/OpenFile.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/OpenFile.cshtml	(revision 13741)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/OpenFile.cshtml	(revision 13742)
@@ -19,5 +19,5 @@
             <a asp-controller="Job"
                asp-action="Index">
-                Jobs
+                <i class="fa fa-tasks"></i> Jobs
             </a>
         </li>
@@ -26,5 +26,5 @@
             <a asp-controller="Job"
                asp-action="Uploads">
-                Uploads
+                <i class="fa fa-cloud"></i>  Uploads
             </a>
         </li>
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/Uploads.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/Uploads.cshtml	(revision 13741)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/Uploads.cshtml	(revision 13742)
@@ -10,5 +10,5 @@
             <a asp-controller="Job"
                asp-action="Index">
-                Jobs
+                <i class="fa fa-tasks"></i> Jobs
             </a>
         </li>
@@ -17,5 +17,5 @@
             <a asp-controller="Job"
                asp-action="Uploads">
-                Uploads
+                <i class="fa fa-cloud"></i>  Uploads
             </a>
         </li>
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Groups.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Groups.cshtml	(revision 13741)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Groups.cshtml	(revision 13742)
@@ -1,4 +1,5 @@
 ﻿@using HeuristicLab.Clients.Hive.WebJobManager.ViewModels.User;
-
+@using HeuristicLab.Clients.Access;
+@model UserViewModel
 
 <div>
@@ -11,5 +12,5 @@
             <a asp-controller="User"
                asp-action="Index">
-                Users
+                <i class="fa fa-user"></i> Users
             </a>
         </li>
@@ -18,5 +19,5 @@
             <a asp-controller="User"
                asp-action="Groups">
-                Groups
+                <i class="fa fa-group"></i> Groups
             </a>
         </li>
@@ -25,5 +26,5 @@
             <a asp-controller="User"
                asp-action="Roles">
-                Roles
+                <i class="fa fa-sitemap"></i> Roles
             </a>
         </li>
@@ -31,9 +32,321 @@
     <div class="row"
          style="text-align:center">
-        Model.message
+        @Model.message
     </div>
     <div class="row"
          style="padding:10px; margin-right:0px!important">
-       
+        <div class="col-sm-4">
+            <div class="btn-group-vertical btn-block">
+                <a class="btn btn-info btn-lg btn-block disabled"
+                   style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+                            text-shadow:2px 2px black;">
+                    <i class="fa fa-group"></i> @Model.ugroups.Count Group@(Model.ugroups.Count != 1 ? "s" : "")
+                </a>
+                <a class="btn btn-success btn-block
+                       @(Model.SelectedGroup.Id == Guid.Empty ? "active" : "")
+                       "
+                   asp-controller="User"
+                   asp-action="SelectGroup"
+                   asp-route-id="@Guid.Empty"
+                   onclick="showGroup()"
+                   style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+                            text-shadow:2px 2px black;">
+                    <i class="fa fa-plus-circle"></i> Add new group
+                </a>
+                @foreach (var group in Model.ugroups)
+                {
+                    <a class="btn  btn-default @( group.Id == Model.SelectedGroup.Id ? "active" : "" )"
+                       style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);"
+                       asp-controller="User"
+                       asp-action="SelectGroup"
+                       asp-route-id="@group.Id"
+                       onclick="showGroup()">
+                        @group.Name
+                    </a>
+                }
+            </div>
+        </div>
+        <p style="display:none"
+           id="saver"
+           class="text-center">
+            <br /><br /><br /><br /><br /><br /><br />
+            <i class="fa fa-save fa-spin fa-5x" id="spinner">
+            </i>
+        </p>
+        <p style="display:none"
+           id="group"
+           class="text-center">
+            <br /><br /><br /><br /><br /><br /><br />
+            <i class="fa fa-group fa-spin fa-5x" id="spinner">
+            </i>
+        </p>
+        <p style="display:none"
+           id="deleter"
+           class="text-center">
+            <br /><br /><br /><br /><br /><br /><br />
+            <i class="fa fa-trash-o fa-spin fa-5x" id="spinner">
+            </i>
+        </p>
+
+        <div class="col-sm-8"
+             id="content"
+             style="padding:5px; padding-left:10px;">
+            @if (Model.SelectedGroup != null)
+            {
+                <div class="panel panel-default"
+                     style="border-width:2px!important;padding:17px;
+                        box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);">
+                    <div class="row">
+                        <h2 style="padding-left:20px">
+                            @if (Model.SelectedGroup.Id != Guid.Empty)
+                            {
+                                <i class="fa fa-group"></i> @Model.SelectedGroup.Name
+                            }
+                            else
+                            {
+                                <i class='fa fa-plus-circle'></i> @("Add new group")
+
+                            }
+                        </h2>
+                        <form class="form-horizontal"
+                              method="post"
+                              asp-action="saveGroup"
+                              asp-controller="User" enctype="multipart/form-data">
+                            <div class="form-group">
+                                <label for="inpgroupname"
+                                       class="col-sm-3 control-label">
+                                    Group name
+                                </label>
+                                <div class="col-sm-8">
+                                    <input type="text"
+                                           class="form-control"
+                                           id="inpgroupname"
+                                           name="inpgroupname"
+                                           placeholder="Group name"
+                                           onkeydown="triggerSave()"
+                                           value="@Model.SelectedGroup.Name">
+                                </div>
+                            </div>
+
+                            <div class="form-group">
+                                <label class="col-sm-3 control-label">
+                                    Group id
+                                </label>
+                                <label class="col-sm-8 control-label" style="text-align:left">
+                                    @Model.SelectedGroup.Id
+                                </label>
+                                <input type="text"
+                                       style="display:none"
+                                       id="u"
+                                       name="u"
+                                       value="@Model.SelectedGroup.Id" />
+                            </div>
+                            @if (Model.SelectedGroup.Id != Guid.Empty)
+                            {
+                                <div style="padding-left:20px">
+                                    <h3>@Model.SelectedGroupMembers.Count Member@(Model.SelectedGroupMembers.Count != 1 ? "s" : "")</h3>
+                                    @foreach (var member in Model.SelectedGroupMembers)
+                                    {
+                                        <p>
+                                            <a class="btn btn-danger"
+                                               asp-controller="User"
+                                               asp-action="deleteMember"
+                                               asp-route-g="@Model.SelectedGroup.Id"
+                                               asp-route-m="@member.Id"
+                                               onclick="showDeleter()">
+                                                <i class="fa fa-trash-o"></i>
+                                            </a>
+                                            @if (member is User)
+                                            {
+                                                var umember = (User)member;
+                                                <i class="fa fa-user"></i> @(umember.UserName + "(" + umember.FullName + ")")
+
+
+                                            }
+                                            else if (member is UserGroup)
+                                            {
+                                                var gmember = (UserGroup)member;
+                                                <i class="fa fa-group"></i> @(gmember.Name)
+
+                                            }
+
+                                        </p>
+                                    }
+                                    @if (Model.SelectedGroupMembers.Count == 0)
+                                    {
+                                        <p>This group currently has no members</p>
+
+                                    }
+                                </div>
+                            }
+                            <div class="row" style="margin-left:10px;margin-right:10px;margin-top:-10px">
+                                <a class="btn btn-primary"
+                                   data-toggle="collapse"
+                                   href="#addmembers"
+                                   aria-expanded="false"
+                                   aria-controls="addmembers"
+                                   style="margin:10px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+                            text-shadow:2px 2px black;">
+                                    Add members
+                                </a>
+                                <div class="collapse"
+                                     id="addmembers">
+                                    <div class="panel panel-primary col-sm-6" style="padding:0px">
+                                        <div class="panel-heading">
+                                            <p>
+                                                <i class="fa fa-user"></i> Users
+                                                <button class="btn btn-sm btn-default" 
+                                                        type="button"
+                                                        onclick="selectAll('userstoadd'); triggerSave()">Select all</button> 
+                                                <button class="btn btn-sm btn-default"
+                                                         type="button"
+                                                        onclick="deselectAll('userstoadd'); triggerSave()">Deselect all</button> 
+                                            </p>
+                                        </div>
+                                        <div class="panel-body">
+                                            @foreach (var user in Model.users)
+                                            {
+                                                <div class="checkbox">
+                                                    <label>
+                                                        <input type="checkbox"
+                                                               name="userstoadd"
+                                                               @(Model.SelectedGroupMembers.Contains(user) ? "checked disabled" : "")
+                                                               value="@user.Id"
+                                                               onclick="triggerSave()">
+                                                        @user.UserName (@user.FullName)
+                                                    </label>
+                                                </div>
+
+                                            }
+                                        </div>
+                                    </div>
+                                    <div class="panel panel-primary col-sm-6" style="padding:0px">
+                                        <div class="panel-heading">
+                                            <p><i class="fa fa-group"></i> Groups
+                                            
+                                                <button class="btn btn-sm btn-default"
+                                                        type="button"
+                                                        onclick="selectAll('groupstoadd'); triggerSave()">
+                                                    Select all
+                                                </button>
+                                                <button class="btn btn-sm btn-default"
+                                                        type="button"
+                                                        onclick="deselectAll('groupstoadd'); triggerSave()">
+                                                    Deselect all
+                                                </button> 
+                                            </p>
+                                        </div>
+                                        <div class="panel-body">
+                                            @foreach (var group in Model.ugroups)
+                                            {
+                                                <div class="checkbox">
+                                                    <label>
+                                                        <input type="checkbox"
+                                                               name="groupstoadd"
+                                                               @(Model.SelectedGroupMembers.Contains(group) ? "checked disabled" : "")
+                                                               value="@group.Id"
+                                                               onclick="triggerSave()">
+                                                        @group.Name
+                                                    </label>
+                                                </div>
+
+                                            }
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            @if (Model.SelectedGroup.Id == Guid.Empty)
+                            {//New goup
+                                <div class="form-group">
+                                    <div class="col-sm-offset-3 col-sm-9">
+                                        <button type="submit"
+                                                id="inpsaver"
+                                                disabled
+                                                class="btn btn-default"
+                                                onclick="showSaver()">
+                                            <i class="fa fa-plus-circle"></i> Add group
+                                        </button>
+                                    </div>
+                                </div>
+
+
+                            }
+                            else
+                            {//Changing an existing group
+
+                                <div class="form-group">
+                                    <div class="col-sm-offset-3 col-sm-3">
+                                        <button type="submit"
+                                                id="inpsaver"
+                                                disabled
+                                                class="btn btn-default"
+                                                onclick="showSaver()">
+                                            <i class="fa fa-save"></i> Save changes
+                                        </button>
+                                    </div>
+                                    <div class="col-sm-5">
+                                        <a class="btn btn-danger pull-right"
+                                           asp-controller="User"
+                                           asp-action="deleteGroup"
+                                           asp-route-id="@Model.SelectedGroup.Id"
+                                           onclick="showDeleter()">
+                                            <i class="fa fa-trash-o"></i> Delete group
+                                        </a>
+                                    </div>
+                                </div>
+
+
+
+                            }
+                            <script type="text/javascript">
+                                function triggerSave() {
+                                    if ($("#inpgroupname").val() != "") {
+                                        document.getElementById("inpsaver").className = "btn btn-lg btn-success";
+                                        document.getElementById("inpsaver").disabled = false;
+                                    }
+                                    else {
+                                        document.getElementById("inpsaver").className = "btn btn-default";
+                                        document.getElementById("inpsaver").disabled = true;
+
+                                    }
+
+                                }
+                            </script>
+                        </form>
+
+                    </div>
+                </div>
+
+            }
+        </div>
     </div>
+    <script type="text/javascript">
+        function showSaver() {
+            document.getElementById("content").style.display = "none";
+            document.getElementById("saver").style.display = "";
+
+        }
+        function showGroup() {
+            document.getElementById("content").style.display = "none";
+            document.getElementById("group").style.display = "";
+
+        }
+        function showDeleter() {
+            document.getElementById("content").style.display = "none";
+            document.getElementById("deleter").style.display = "";
+        }
+        function selectAll(name) {
+            checkboxes = document.getElementsByName(name);
+            for(var i=0, n=checkboxes.length;i<n;i++) {
+                checkboxes[i].checked = true;
+            }
+        }
+        function deselectAll(name) {
+            checkboxes = document.getElementsByName(name);
+            for (var i = 0, n = checkboxes.length; i < n; i++) {
+                if(checkboxes[i].disabled == false)
+                checkboxes[i].checked = false;
+            }
+        }
+    </script>
 </div>
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Index.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Index.cshtml	(revision 13741)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Index.cshtml	(revision 13742)
@@ -11,5 +11,5 @@
             <a asp-controller="User"
                asp-action="Index">
-                Users
+                <i class="fa fa-user"></i> Users
             </a>
         </li>
@@ -18,5 +18,5 @@
             <a asp-controller="User"
                asp-action="Groups">
-                Groups
+                <i class="fa fa-group"></i> Groups
             </a>
         </li>
@@ -25,5 +25,5 @@
             <a asp-controller="User"
                asp-action="Roles">
-                Roles
+                <i class="fa fa-sitemap"></i> Roles
             </a>
         </li>
@@ -51,5 +51,5 @@
                        style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
                             text-shadow:2px 2px black;">
-                        <i class="fa fa-users"></i> Users
+                        <i class="fa fa-user"></i> @Model.users.Count User@(Model.users.Count != 1 ? "s" : "")
                     </a>
                     <a class="btn btn-success btn-block
@@ -110,17 +110,17 @@
                                 @if (Model.SelectedUser.Id != Guid.Empty)
                                 {
-                                    @Model.SelectedUser.UserName;
+                                    <i class="fa fa-user "></i> @Model.SelectedUser.UserName;
                                 }
                                 else
                                 {
-                                   @("Add new user")
+                                    <i class="fa fa-user-plus "></i> @("Add new user")
 
                                 }
                             </h2>
                             <form class="form-horizontal"
-                                   method="post"
+                                  method="post"
                                   asp-action="saveUser"
                                   asp-controller="User" enctype="multipart/form-data">
-                                <div class="form-group">
+                                <div class="form-group" style="@(Model.SelectedUser.Id == Guid.Empty ? "" : "display:none")">
                                     <label for="inpusername"
                                            class="col-sm-3 control-label">
@@ -133,5 +133,5 @@
                                                name="inpusername"
                                                placeholder="Username"
-                                               onchange="triggerSave()"
+                                               onkeydown="triggerSave()"
                                                value="@Model.SelectedUser.UserName">
                                     </div>
@@ -148,5 +148,5 @@
                                                name="inpfullname"
                                                placeholder="Full name"
-                                               onchange="triggerSave()"
+                                               onkeydown="triggerSave()"
                                                value="@Model.SelectedUser.FullName">
                                     </div>
@@ -163,5 +163,5 @@
                                                name="inpemail"
                                                placeholder="Email"
-                                               onchange="triggerSave()"
+                                               onkeydown="triggerSave()"
                                                value="@Model.SelectedUser.Email">
                                     </div>
@@ -203,6 +203,7 @@
                                                     id="inpsaver"
                                                     disabled
-                                                    class="btn btn-lg btn-default">
-                                                Add user
+                                                    class="btn btn-default"
+                                                    onclick="showSaver()">
+                                                <i class="fa fa-plus-square-o"></i> Add user
                                             </button>
                                         </div>
@@ -215,24 +216,54 @@
                                     <div class="form-group">
                                         <label class="col-sm-3 control-label">
-                                            Last activity
+                                            Password
                                         </label>
-                                        <div id="inppassreset">
+                                        <div id="inppassreset" class="col-sm-8">
                                             <button type="button"
                                                     onclick="resetPass('@(Model.SelectedUser.Id)')"
-                                                    class="btn btn-lg btn-default">
-                                                Reset password
+                                                    class="btn btn-default">
+                                                <i class="fa fa-unlock"></i> Reset password
                                             </button>
                                         </div>
                                     </div>
+
                                     <div class="form-group">
-                                        <div class="col-sm-offset-3 col-sm-9">
+                                        <label class="col-sm-3 control-label">
+                                            Member of
+                                        </label>
+                                        <div class="col-sm-8">
+                                            @if (Model.SelectedUserSubscriptions.Count > 0)
+                                            {
+                                                @foreach (var g in Model.SelectedUserSubscriptions)
+                                                {
+                                                    <p><i class="fa fa-group"></i> @g.Name</p>
+                                                }
+                                            }
+                                            else
+                                            {
+                                                <p>Not a member of any groups</p>
+                                            }
+                                        </div>
+                                    </div>
+                                    <div class="form-group">
+                                        <div class="col-sm-offset-3 col-sm-3">
                                             <button type="submit"
                                                     id="inpsaver"
                                                     disabled
-                                                    class="btn btn-lg btn-default">
-                                                Save changes
+                                                    class="btn btn-default"
+                                                    onclick="showSaver()">
+                                                <i class="fa fa-save"></i> Save changes
                                             </button>
                                         </div>
-                                    </div>
+                                        <div class="col-sm-5">
+                                            <a class="btn btn-danger pull-right"
+                                               asp-controller="User"
+                                               asp-action="deleteUser"
+                                               asp-route-id="@Model.SelectedUser.Id"
+                                               onclick="showDeleter()">
+                                                <i class="fa fa-trash-o"></i> Delete user
+                                            </a>
+                                        </div>
+                                    </div>
+
 
 
@@ -240,6 +271,5 @@
                                 <script type="text/javascript">
                                     function triggerSave() {
-                                        if ($("#inpusername").val() != "" &&
-                                            $("#inpfullname").val() != "" &&
+                                        if ($("#inpfullname").val() != "" &&
                                             $("#inpemail").val() != "") {
                                             document.getElementById("inpsaver").className = "btn btn-lg btn-success";
@@ -247,5 +277,5 @@
                                         }
                                         else {
-                                            document.getElementById("inpsaver").className = "btn btn-lg btn-default";
+                                            document.getElementById("inpsaver").className = "btn btn-default";
                                             document.getElementById("inpsaver").disabled = true;
 
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/wwwroot/js/Scripts/UserInfoHubber.js
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/wwwroot/js/Scripts/UserInfoHubber.js	(revision 13741)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/wwwroot/js/Scripts/UserInfoHubber.js	(revision 13742)
@@ -8,5 +8,5 @@
     $.connection.hub.start();
     hubber.client.showNewPass = function (pass) {
-        $("#inppassreset").html("<label class='col-sm-8 control-label' style='text-align:left'>New password: " + pass + "</label>");
+        $("#inppassreset").html("<label class=' control-label' style='text-align:left'>New password: " + pass + "</label>");
                                       
     };
