Free cookie consent management tool by TermsFeed Policy Generator

source: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ViewModels/User/UserViewModel.cs @ 13847

Last change on this file since 13847 was 13847, checked in by jlodewyc, 8 years ago

#2582 Security access implemented, directory renaming and choosing, adding more partials

File size: 4.0 KB
Line 
1using HeuristicLab.Clients.Access.Administration;
2using HeuristicLab.Clients.Hive.WebJobManager.Models;
3using System;
4using System.Collections.Generic;
5using System.Linq;
6using System.Threading.Tasks;
7
8namespace HeuristicLab.Clients.Hive.WebJobManager.ViewModels.User
9{
10    /// <summary>
11    /// ViewModel containing User/Group/Role data
12    /// </summary>
13    public class UserViewModel
14    {
15        public HiveWebUser currentUser { get; set; }
16        public string message { get; set; }
17        public AccessAdministrationClient accessClient { get; set; }
18        public List<Access.User> users { get; set; }
19        public List<Access.Role> roles { get; set; }
20        public List<Access.UserGroup> ugroups { get; set; }
21
22        public Access.User SelectedUser { get; set; }
23        public List<Access.UserGroup> SelectedUserSubscriptions { get; set; }
24        public List<Access.Role> SelectedUserRoles { get; set; }
25        public Access.UserGroup SelectedGroup { get; set; }
26        public List<Access.UserGroupBase> SelectedGroupMembers { get; set; }
27        public Access.Role SelectedRole { get; set; }
28        public List<Access.UserGroupBase> SelectedRoleEnrolled { get; set; }
29
30        /// <summary>
31        /// Initialize viewmodel and set up connection
32        /// </summary>
33        /// <param name="ac">AccessAdminClient for connection</param>
34        public UserViewModel(AccessAdministrationClient ac, HiveWebUser hwu)
35        {
36            currentUser = hwu;
37            users = new List<Access.User>();
38            accessClient = ac;
39
40            SelectedUser = new Access.User();
41            SelectedGroup = new Access.UserGroup();
42            SelectedRole = new Access.Role();
43            SelectedRole.Name = "";
44
45            SelectedUserSubscriptions = new List<Access.UserGroup>();
46            SelectedUserRoles = new List<Access.Role>();
47            SelectedGroupMembers = new List<Access.UserGroupBase>();
48           
49           
50        }
51        /// <summary>
52        /// Refreshes Users, Groups and Roles
53        /// </summary>
54        /// <returns></returns>
55        public UserViewModel refreshAll()
56        {
57            refreshUsers();
58            refreshGroups();
59            refreshRoles();
60            return this;
61        }
62        /// <summary>
63        /// Refreshes only the Users
64        /// </summary>
65        /// <returns></returns>
66        public UserViewModel refreshUsers()
67        {
68            accessClient.RefreshUsers();
69            users = accessClient.Users.ToList();
70            return this;
71        }
72        /// <summary>
73        /// Refreshes only the Roles
74        /// </summary>
75        /// <returns></returns>
76        public UserViewModel refreshRoles()
77        {
78            accessClient.RefreshRoles();
79            roles = accessClient.Roles.ToList();
80            return this;
81        }
82        /// <summary>
83        /// Refreshes only the User Groups
84        /// </summary>
85        /// <returns></returns>
86        public UserViewModel refreshGroups()
87        {
88            accessClient.RefreshUserGroups();
89            ugroups= accessClient.Groups.ToList();
90            return this;
91        }
92        /// <summary>
93        /// Returns a user by its Id
94        /// </summary>
95        /// <param name="id">User Id</param>
96        /// <returns></returns>
97        public Access.User getUserById(Guid id)
98        {
99            return users.Find(x => x.Id == id);
100        }
101        /// <summary>
102        /// Returns a group by its Id
103        /// </summary>
104        /// <param name="id">Group id</param>
105        /// <returns></returns>
106        public Access.UserGroup getGroupById(Guid id)
107        {
108            return ugroups.Find(x => x.Id == id);
109        }
110        /// <summary>
111        /// Returns a role by its name
112        /// </summary>
113        /// <param name="name">Role name</param>
114        /// <returns></returns>
115        public Access.Role getRoleByName(string name)
116        {
117            return roles.Find(x => x.Name == name);
118        }
119    }
120}
Note: See TracBrowser for help on using the repository browser.