Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/HomeController.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/HomeController.cs	(revision 13740)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/HomeController.cs	(revision 13741)
@@ -57,5 +57,5 @@
                 Common.Properties.Settings.Default.Save();
                 hiveServiceLocator.Username = loginName;
-                hiveServiceLocator.Password = password;
+                hiveServiceLocator.Password = password;//Not encrypted for login to service
                 hiveServiceLocator.UserId = model.userId;
 
@@ -73,4 +73,12 @@
                     model = new LoginViewModel();
                     model.errorMessage = "Wrong login, try again";
+                    return View("Index", model);
+                }
+                catch(SecurityAccessDeniedException e)
+                {
+                    ViewBag.Title = "Access denied - Login";
+                    model = new LoginViewModel();
+                    model.errorMessage = "Access denied, you have no permission to use this application." +
+                        "              Contact a HeuristicLab Hive admin to gain access.";
                     return View("Index", model);
                 }
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/UserController.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/UserController.cs	(revision 13740)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/UserController.cs	(revision 13741)
@@ -50,7 +50,6 @@
 
                 ViewBag.Title = "Users";
-                // accessClient.RefreshUsers();
-                UserViewModel vm = new UserViewModel();
-                vm.users = new List<string>() { "Jean" };
+                UserViewModel vm = new UserViewModel(accessClient).refreshUsers();
+                ViewBag.SessionId = HttpContext.Session.GetString("UserId");
                 return View("Index", vm);
             }
@@ -60,4 +59,5 @@
             }
         }
+
         public IActionResult SelectUser(string id)
         {
@@ -66,17 +66,17 @@
             {
                 Guid curr = Guid.Parse(id);
-                UserViewModel vm = new UserViewModel();
-                vm.users = new List<string>() { "Jean" };
+                
+                UserViewModel vm = new UserViewModel(accessClient).refreshUsers();
                 if (curr == Guid.Empty)
                 {
-                    vm.SelectedUser = "";
                     ViewBag.Title = "Add User";
                 }
                 else
                 {
-                    vm.SelectedUser = "Jean";
-                    ViewBag.Title = "Jean";
+                    vm.SelectedUser = vm.getUserById(curr);
+                    ViewBag.title = vm.SelectedUser.UserName;
                 }
                 ViewBag.Title += " - Users";
+                ViewBag.SessionId = HttpContext.Session.GetString("UserId");
                 return View("Index", vm);
             }
@@ -86,4 +86,36 @@
             }
         }
+        [HttpPost]
+        public IActionResult saveUser(string inpusername, string inpfullname, string inpemail, string u)
+        {
+            init();
+            var uid = Guid.Parse(u);
+            Access.User user;
+            if (uid == Guid.Empty)
+                user = new Access.User();
+            else
+                user = accessClient.Users.Find(x => x.Id == uid);
+
+            user.Id = uid;
+            user.UserName = inpusername;
+            user.FullName = inpfullname;
+            user.Email = inpemail;
+
+
+            if (uid == Guid.Empty)
+            {
+                uid = accessClient.addUser(user);
+                ViewBag.Title = inpusername + " added - User";
+            }
+            else
+            {
+                accessClient.updateUser(user);
+                ViewBag.Title = inpusername + " updated - User";
+            }
+
+            return RedirectToAction( "SelectUser", new {  id =  uid.ToString()});
+
+        }
+
         #endregion
 
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Hubs/UserInfoHub.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Hubs/UserInfoHub.cs	(revision 13741)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Hubs/UserInfoHub.cs	(revision 13741)
@@ -0,0 +1,41 @@
+﻿using HeuristicLab.Clients.Access.Administration;
+using HeuristicLab.Clients.Hive.WebJobManager.Services;
+using HeuristicLab.Clients.Hive.WebJobManager.ViewModels.User;
+using Microsoft.AspNet.SignalR;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace HeuristicLab.Clients.Hive.WebJobManager.Hubs
+{
+    public class UserInfoHub: Hub
+    {
+        private WebLoginService weblog;
+        private Guid userId;
+        private AccessAdministrationClient aac;
+        private void loader()
+        {
+            weblog = WebLoginService.Instance;
+            string uid = Context.QueryString["userid"];
+            if (uid == null || uid == "" || Guid.Parse(uid) == Guid.Empty)
+            {
+                userId = Guid.Empty;
+            }
+            else
+            {
+                userId = Guid.Parse(uid);
+                aac = weblog.getAccessAdminClient(userId);
+            }
+        }
+
+        public void resetPassword(string user)
+        {
+            loader();
+            Guid userid = Guid.Parse(user);
+            Access.User u = new UserViewModel(aac).refreshUsers().getUserById(userid);
+            var pass = aac.resetPassword(userid);
+            Clients.Caller.showNewPass(pass);
+        }
+    }
+}
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 13741)
@@ -0,0 +1,341 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Clients.Common;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using System.ServiceModel;
+using HeuristicLab.Clients.Hive.WebJobManager.ViewModels;
+using HeuristicLab.Clients.Hive.WebJobManager.Services;
+
+namespace HeuristicLab.Clients.Access.Administration
+{
+    [Item("AccessAdministrationClient", "AccessAdministration client.")]
+    public class AccessAdministrationClient : IContent
+    {
+
+        private  WebLoginService weblog;
+        private AccessServiceClient client;
+        public Guid userId { get; set; }
+        #region Properties
+        private ItemList<User> users;
+        public ItemList<User> Users
+        {
+            get
+            {
+                return users;
+            }
+        }
+
+        public ItemList<UserGroup> Groups { get; set; }
+        public ItemList<Role> Roles { get; set; }
+        #endregion
+
+        public AccessAdministrationClient(Guid u) {
+            weblog = WebLoginService.Instance;
+            userId = u;
+        }
+
+        #region Refresh
+        public void RefreshUsers()
+        {
+            users = new ItemList<User>();
+            users.AddRange(CallAccessService<ItemList<User>>(s => new ItemList<User>(s.GetAllUsers())));
+        }
+
+        public void RefreshUsersAsync(Action<Exception> exceptionCallback)
+        {
+            ExecuteActionAsync(RefreshUsers, exceptionCallback);
+        }
+
+        public void RefreshUserGroups()
+        {
+            Groups = new ItemList<UserGroup>();
+            Groups.AddRange(CallAccessService<ItemList<UserGroup>>(s => new ItemList<UserGroup>(s.GetAllUserGroups())));
+        }
+
+        public void RefreshUserGroupsAsync(Action<Exception> exceptionCallback)
+        {
+            ExecuteActionAsync(RefreshUserGroups, exceptionCallback);
+        }
+
+        public void RefreshRoles()
+        {
+            Roles = new ItemList<Role>();
+            Roles.AddRange(CallAccessService<ItemList<Role>>(s => new ItemList<Role>(s.GetRoles())));
+        }
+
+        public void RefreshRolesAsync(Action<Exception> exceptionCallback)
+        {
+            ExecuteActionAsync(RefreshRoles, exceptionCallback);
+        }
+
+        #endregion
+
+        #region Store
+        public void StoreUsers()
+        {
+            foreach (User u in users)
+            {
+                if (u.Modified)
+                {
+                    if (u.Id == Guid.Empty)
+                    {
+                        CallAccessService(s => u.Id = s.AddUser(u).Id);
+                    }
+                    else {
+                        CallAccessService(s => s.UpdateUser(u));
+                    }
+                    u.SetUnmodified();
+                }
+            }
+        }
+
+        public void StoreUsersAsync(Action<Exception> exceptionCallback)
+        {
+            ExecuteActionAsync(StoreUsers, exceptionCallback);
+        }
+
+        public void StoreUserGroups()
+        {
+            foreach (UserGroup g in Groups)
+            {
+                if (g.Modified)
+                {
+                    if (g.Id == Guid.Empty)
+                    {
+                        CallAccessService(s => g.Id = s.AddUserGroup(g));
+                    }
+                    else {
+                        CallAccessService(s => s.UpdateUserGroup(g));
+                    }
+                    g.SetUnmodified();
+                }
+            }
+        }
+
+        public void StoreUserGroupsAsync(Action<Exception> exceptionCallback)
+        {
+            ExecuteActionAsync(StoreUserGroups, exceptionCallback);
+        }
+
+        public void StoreRoles()
+        {
+            foreach (Role g in Roles)
+            {
+                if (g.Modified)
+                {
+                    CallAccessService(s => s.AddRole(g));
+                    g.SetUnmodified();
+                }
+            }
+        }
+
+        public void StoreRolesAsync(Action<Exception> exceptionCallback)
+        {
+            ExecuteActionAsync(StoreRoles, exceptionCallback);
+        }
+        #endregion
+
+        #region Delete
+        public void DeleteUser(User u)
+        {
+            CallAccessService(s => s.DeleteUser(u));
+        }
+
+        public void DeleteUserAsync(User u, Action<Exception> exceptionCallback)
+        {
+            Action deleteUserAction = new Action(delegate { DeleteUser(u); });
+            ExecuteActionAsync(deleteUserAction, exceptionCallback);
+        }
+
+        public void DeleteUserGroup(UserGroup u)
+        {
+            CallAccessService(s => s.DeleteUserGroup(u));
+        }
+
+        public void DeleteUserGroupAsync(UserGroup u, Action<Exception> exceptionCallback)
+        {
+            Action deleteUserGroupAction = new Action(delegate { DeleteUserGroup(u); });
+            ExecuteActionAsync(deleteUserGroupAction, exceptionCallback);
+        }
+
+        public void DeleteRole(Role u)
+        {
+            CallAccessService(s => s.DeleteRole(u));
+        }
+
+        public void DeleteRoleAsync(Role u, Action<Exception> exceptionCallback)
+        {
+            Action deleteRoleAction = new Action(delegate { DeleteRole(u); });
+            ExecuteActionAsync(deleteRoleAction, exceptionCallback);
+        }
+        #endregion
+
+        public void ExecuteActionAsync(Action action, Action<Exception> exceptionCallback)
+        {
+            var call = new Func<Exception>(delegate ()
+            {
+                try
+                {
+                    OnRefreshing();
+                    action();
+                }
+                catch (Exception ex)
+                {
+                    return ex;
+                }
+                finally
+                {
+                    OnRefreshed();
+                }
+                return null;
+            });
+            call.BeginInvoke(delegate (IAsyncResult result)
+            {
+                Exception ex = call.EndInvoke(result);
+                if (ex != null) exceptionCallback(ex);
+            }, null);
+        }
+
+        #region Events
+        public event EventHandler Refreshing;
+        private void OnRefreshing()
+        {
+            EventHandler handler = Refreshing;
+            if (handler != null) handler(this, EventArgs.Empty);
+        }
+        public event EventHandler Refreshed;
+        private void OnRefreshed()
+        {
+            EventHandler handler = Refreshed;
+            if (handler != null) handler(this, EventArgs.Empty);
+        }
+        #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()
+        {
+            //build config by code
+            WSHttpBinding binding = new WSHttpBinding();
+            binding.Name = "WSHttpBinding_IAccessService";
+            binding.CloseTimeout = TimeSpan.FromMinutes(1);
+            binding.OpenTimeout = TimeSpan.FromMinutes(1);
+            binding.ReceiveTimeout = TimeSpan.FromMinutes(10);
+            binding.SendTimeout = TimeSpan.FromMinutes(1);
+            binding.BypassProxyOnLocal = false;
+
+            binding.TransactionFlow = false;
+
+            binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
+            binding.MaxBufferPoolSize = 524288;
+            binding.MaxReceivedMessageSize = 65536;
+            binding.MessageEncoding = WSMessageEncoding.Text;
+
+            binding.TextEncoding = System.Text.Encoding.UTF8;
+            binding.UseDefaultWebProxy = true;
+            binding.AllowCookies = false;
+
+            binding.ReaderQuotas.MaxDepth = 32;
+            binding.ReaderQuotas.MaxStringContentLength = 8192;
+            binding.ReaderQuotas.MaxArrayLength = 16384;
+            binding.ReaderQuotas.MaxBytesPerRead = 4096;
+            binding.ReaderQuotas.MaxNameTableCharCount = 16384;
+
+            binding.ReliableSession.Ordered = true;
+            binding.ReliableSession.InactivityTimeout = TimeSpan.Parse("00:10:00");
+            binding.ReliableSession.Enabled = false;
+
+
+            binding.Security.Mode = SecurityMode.Message;
+            binding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;
+            binding.Security.Message.NegotiateServiceCredential = true;
+            binding.Security.Message.AlgorithmSuite = System.ServiceModel.Security.SecurityAlgorithmSuite.Default;
+
+            binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
+            binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
+            binding.Security.Transport.Realm = "";
+            
+            var end = new EndpointAddress("http://services.heuristiclab.com/AccessService-3.3/AccessService.svc");
+            client = new AccessServiceClient(binding, end);
+            client.ClientCredentials.UserName.UserName = weblog.getLoginViewModel(userId).loginName;
+            //PASSWORD CANNOT BE ENCRYPTED
+            client.ClientCredentials.UserName.Password = weblog.getServiceLocator(userId).Password;
+            client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None;
+        }
+        public  void CallAccessService(Action<IAccessService> call)
+        {
+            getAccessClient();
+            try
+            {
+                call(client);
+            }
+            finally
+            {
+                try
+                {
+                    client.Close();
+                }
+                catch (Exception)
+                {
+                    client.Abort();
+                }
+            }
+        }
+        public T CallAccessService<T>(Func<IAccessService, T> call)
+        {
+            getAccessClient();
+            try
+            {
+                return call(client);
+            }
+            finally
+            {
+                try
+                {
+                    client.Close();
+                }
+                catch (Exception)
+                {
+                    client.Abort();
+                }
+            }
+        }
+        #endregion
+    }
+}
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/User/UserViewModel.cs
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/User/UserViewModel.cs	(revision 13740)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/User/UserViewModel.cs	(revision 13741)
@@ -1,3 +1,4 @@
-﻿using System;
+﻿using HeuristicLab.Clients.Access.Administration;
+using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -10,11 +11,39 @@
 
         public string message { get; set; }
-        public List<string> users { get; set; }//temp
+        public AccessAdministrationClient accessClient { get; set; }
+        public List<Access.User> users { get; set; }
+        public List<Access.Role> roles { get; set; }
+        public List<Access.UserGroup> ugroups { get; set; }
 
-        public string SelectedUser { get; set; }//temp
+        public Access.User SelectedUser { get; set; }
 
-        public UserViewModel()
+        public UserViewModel(AccessAdministrationClient ac)
         {
-            users = new List<string>();
+            users = new List<Access.User>();
+            accessClient = ac;
+            SelectedUser = new Access.User();
+            
+        }
+        public UserViewModel refreshUsers()
+        {
+            accessClient.RefreshUsers();
+            users = accessClient.Users.ToList();
+            return this;
+        }
+        public UserViewModel refreshRoles()
+        {
+            accessClient.RefreshRoles();
+            roles = accessClient.Roles.ToList();
+            return this;
+        }
+        public UserViewModel refreshGroups()
+        {
+            accessClient.RefreshUserGroups();
+            ugroups= accessClient.Groups.ToList();
+            return this;
+        }
+        public Access.User getUserById(Guid id)
+        {
+            return users.Find(x => x.Id == id);
         }
     }
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/UploaderPartial/_UploaderPartial.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/UploaderPartial/_UploaderPartial.cshtml	(revision 13740)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/UploaderPartial/_UploaderPartial.cshtml	(revision 13741)
@@ -58,5 +58,5 @@
                 </div>
             </div>
-            <button style=" box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+            <button 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;"
                    disabled
Index: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Index.cshtml
===================================================================
--- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Index.cshtml	(revision 13740)
+++ branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Index.cshtml	(revision 13741)
@@ -1,4 +1,5 @@
 ﻿@using HeuristicLab.Clients.Hive.WebJobManager.ViewModels.User;
 @model UserViewModel
+<div id="userId" style="display:none">@ViewBag.SessionId</div>
 <div>
 
@@ -53,5 +54,5 @@
                     </a>
                     <a class="btn btn-success btn-block
-                       @(Model.SelectedUser == "" ? "active" : "")
+                       @(Model.SelectedUser.Id == Guid.Empty ? "active" : "")
                        "
                        asp-controller="User"
@@ -63,13 +64,13 @@
                         <i class="fa fa-user-plus"></i> Add new user
                     </a>
-                    @foreach(var user in Model.users)
+                    @foreach (var user in Model.users)
                     {
-                        <a class="btn  btn-default @(user == Model.SelectedUser ? "active" : "" )"
+                        <a class="btn  btn-default @( user.Id == Model.SelectedUser.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="SelectUser"
-                           asp-route-id="@Guid.NewGuid()"
+                           asp-route-id="@user.Id"
                            onclick="showUser()">
-                            @user
+                            @user.UserName (@user.FullName)
                         </a>
                     }
@@ -97,9 +98,175 @@
                 </i>
             </p>
-            <div id="content">
-
-                </div>
+            <div class="col-sm-8"
+                 id="content"
+                 style="padding:5px; padding-left:10px;">
+                @if (Model.SelectedUser != 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.SelectedUser.Id != Guid.Empty)
+                                {
+                                    @Model.SelectedUser.UserName;
+                                }
+                                else
+                                {
+                                   @("Add new user")
+
+                                }
+                            </h2>
+                            <form class="form-horizontal"
+                                   method="post"
+                                  asp-action="saveUser"
+                                  asp-controller="User" enctype="multipart/form-data">
+                                <div class="form-group">
+                                    <label for="inpusername"
+                                           class="col-sm-3 control-label">
+                                        Username
+                                    </label>
+                                    <div class="col-sm-8">
+                                        <input type="text"
+                                               class="form-control"
+                                               id="inpusername"
+                                               name="inpusername"
+                                               placeholder="Username"
+                                               onchange="triggerSave()"
+                                               value="@Model.SelectedUser.UserName">
+                                    </div>
+                                </div>
+                                <div class="form-group">
+                                    <label for="inpfullname"
+                                           class="col-sm-3 control-label">
+                                        Full name
+                                    </label>
+                                    <div class="col-sm-8">
+                                        <input type="text"
+                                               class="form-control"
+                                               id="inpfullname"
+                                               name="inpfullname"
+                                               placeholder="Full name"
+                                               onchange="triggerSave()"
+                                               value="@Model.SelectedUser.FullName">
+                                    </div>
+                                </div>
+                                <div class="form-group">
+                                    <label for="inpemail"
+                                           class="col-sm-3 control-label">
+                                        Email
+                                    </label>
+                                    <div class="col-sm-8">
+                                        <input type="email"
+                                               class="form-control"
+                                               id="inpemail"
+                                               name="inpemail"
+                                               placeholder="Email"
+                                               onchange="triggerSave()"
+                                               value="@Model.SelectedUser.Email">
+                                    </div>
+                                </div>
+                                <div class="form-group">
+                                    <label class="col-sm-3 control-label">
+                                        User id
+                                    </label>
+                                    <label class="col-sm-8 control-label" style="text-align:left">
+                                        @Model.SelectedUser.Id
+                                    </label>
+                                    <input type="text"
+                                           style="display:none"
+                                           id="u"
+                                           name="u"
+                                           value="@Model.SelectedUser.Id" />
+                                </div>
+                                <div class="form-group">
+                                    <label class="col-sm-3 control-label">
+                                        Last login
+                                    </label>
+                                    <label class="col-sm-8 control-label" style="text-align:left">
+                                        @Model.SelectedUser.LastLoginDate.AddHours(2).ToString()
+                                    </label>
+                                </div>
+                                <div class="form-group">
+                                    <label class="col-sm-3 control-label">
+                                        Last activity
+                                    </label>
+                                    <label class="col-sm-8 control-label" style="text-align:left">
+                                        @Model.SelectedUser.LastActivityDate.AddHours(2).ToString()
+                                    </label>
+                                </div>
+                                @if (Model.SelectedUser.Id == Guid.Empty)
+                                {
+                                    <div class="form-group">
+                                        <div class="col-sm-offset-3 col-sm-9">
+                                            <button type="submit"
+                                                    id="inpsaver"
+                                                    disabled
+                                                    class="btn btn-lg btn-default">
+                                                Add user
+                                            </button>
+                                        </div>
+                                    </div>
+
+
+                                }
+                                else
+                                {
+                                    <div class="form-group">
+                                        <label class="col-sm-3 control-label">
+                                            Last activity
+                                        </label>
+                                        <div id="inppassreset">
+                                            <button type="button"
+                                                    onclick="resetPass('@(Model.SelectedUser.Id)')"
+                                                    class="btn btn-lg btn-default">
+                                                Reset password
+                                            </button>
+                                        </div>
+                                    </div>
+                                    <div class="form-group">
+                                        <div class="col-sm-offset-3 col-sm-9">
+                                            <button type="submit"
+                                                    id="inpsaver"
+                                                    disabled
+                                                    class="btn btn-lg btn-default">
+                                                Save changes
+                                            </button>
+                                        </div>
+                                    </div>
+
+
+                                }
+                                <script type="text/javascript">
+                                    function triggerSave() {
+                                        if ($("#inpusername").val() != "" &&
+                                            $("#inpfullname").val() != "" &&
+                                            $("#inpemail").val() != "") {
+                                            document.getElementById("inpsaver").className = "btn btn-lg btn-success";
+                                            document.getElementById("inpsaver").disabled = false;
+                                        }
+                                        else {
+                                            document.getElementById("inpsaver").className = "btn btn-lg btn-default";
+                                            document.getElementById("inpsaver").disabled = true;
+
+                                        }
+
+                                    }
+                                </script>
+                            </form>
+
+                        </div>
+                    </div>
+
+                }
+
+
+
+
+            </div>
         }
     </div>
+
+    <script src="~/js/scripts/userinfohubber.js" type="text/javascript"></script>
     <script type="text/javascript">
         function showSaver() {
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 13741)
@@ -0,0 +1,17 @@
+﻿var hubber = $.connection.userInfoHub;
+
+$(function () {
+    $.connection.hub.logging = true;
+    var v = document.getElementById("userId").innerHTML;
+    console.log(v);
+    $.connection.hub.qs = { 'userid': v };
+    $.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>");
+                                      
+    };
+});
+function resetPass(uid) {
+    hubber.server.resetPassword(uid);
+
+}
