Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Hive.Server.Core/UserRoleManager.cs @ 947

Last change on this file since 947 was 947, checked in by msteinbi, 15 years ago

Implementation of UserRoleManager (#417)

File size: 6.4 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using HeuristicLab.Hive.Contracts.Interfaces;
6using HeuristicLab.Hive.Contracts.BusinessObjects;
7using HeuristicLab.Hive.Server.Core.InternalInterfaces.DataAccess;
8using System.Resources;
9using System.Reflection;
10using HeuristicLab.Hive.Contracts;
11
12namespace HeuristicLab.Hive.Server.Core {
13  class UserRoleManager: IUserRoleManager {
14
15    IUserAdapter userAdapter;
16    IUserGroupAdapter userGroupAdapter;
17    IPermissionOwnerAdapter permissionOwnerAdapter;
18
19    public UserRoleManager() {
20      userAdapter = ServiceLocator.GetUserAdapter();
21      userGroupAdapter = ServiceLocator.GetUserGroupAdapter();
22    }
23
24    #region IUserRoleManager Members
25
26    public ResponseList<User> GetAllUsers() {
27      ResponseList<User> response = new ResponseList<User>();
28
29      List<User> allUsers = new List<User>(userAdapter.GetAllUsers());
30      response.List = allUsers;
31      response.Success = true;
32      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_GET_ALL_USERS;
33
34      return response;
35    }
36
37    public Response AddNewUser(User user) {
38      Response response = new Response();
39
40      if (user.PermissionOwnerId != 0) {
41        response.Success = false;
42        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_ID_MUST_NOT_BE_SET;
43        return response;
44      }
45      userAdapter.UpdateUser(user);
46      response.Success = true;
47      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USER_SUCCESSFULLY_ADDED;
48     
49      return response;
50    }
51
52    public ResponseList<UserGroup> GetAllUserGroups() {
53      ResponseList<UserGroup> response = new ResponseList<UserGroup>();
54
55      response.List = new List<UserGroup>(userGroupAdapter.GetAllUserGroups());
56      response.Success = true;
57      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_GET_ALL_USERGROUPS;
58
59      return response;
60    }
61
62    public Response RemoveUser(long userId) {
63      Response response = new Response();
64      User user = userAdapter.GetUserById(userId);
65      if (user == null) {
66        response.Success = false;
67        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USER_DOESNT_EXIST;
68        return response;
69      }
70      userAdapter.DeleteUser(user);
71      response.Success = true;
72      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USER_REMOVED;
73                         
74      return response;
75    }
76
77    public Response AddNewUserGroup(UserGroup userGroup) {
78      Response response = new Response();
79     
80      if (userGroup.PermissionOwnerId != 0) {
81        response.Success = false;
82        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_ID_MUST_NOT_BE_SET;
83        return response;
84      }
85      userGroupAdapter.UpdateUserGroup(userGroup);
86      response.Success = false;
87      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_ADDED;
88
89      return response;
90    }
91
92    public Response RemoveUserGroup(long groupId) {
93      Response response = new Response();
94
95      UserGroup userGroupFromDb = userGroupAdapter.GetUserGroupById(groupId);
96      if (userGroupFromDb == null) {
97        response.Success = false;
98        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
99        return response;
100      }
101      userGroupAdapter.DeleteUserGroup(userGroupFromDb);
102      response.Success = false;
103      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_ADDED;
104
105      return response;
106    }
107
108    public Response AddUserToGroup(long groupId, long userId) {
109      Response response = new Response();
110
111      User user = userAdapter.GetUserById(userId);
112      if (user == null) {
113        response.Success = false;
114        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USER_DOESNT_EXIST;
115        return response;
116      }
117
118      UserGroup userGroup = userGroupAdapter.GetUserGroupById(groupId);
119      if (userGroup == null) {
120        response.Success = false;
121        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
122        return response;
123      }
124      userGroup.Members.Add(user);
125      userGroupAdapter.UpdateUserGroup(userGroup);
126
127      response.Success = true;
128      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_ADDED;
129
130      return response;
131    }
132
133    public Response AddUserGroupToGroup(long groupId, long groupToAddId) {
134      Response response = new Response();
135
136      UserGroup userGroup = userGroupAdapter.GetUserGroupById(groupId);
137      UserGroup userGroupToAdd = userGroupAdapter.GetUserGroupById(groupToAddId);
138
139      if (userGroup == null || userGroupToAdd == null) {
140        response.Success = false;
141        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
142        return response;
143      }
144      userGroup.Members.Add(userGroupToAdd);
145      response.Success = true;
146      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_ADDED_TO_USERGROUP;
147
148      return response;
149    }
150
151    public Response RemovePermissionOwnerFromGroup(long groupId, long permissionOwnerId) {
152      Response response = new Response();
153
154      UserGroup userGroup = userGroupAdapter.GetUserGroupById(groupId);
155      if (userGroup == null) {
156        response.Success = false;
157        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
158        return response;
159      }
160      User user = userAdapter.GetUserById(permissionOwnerId);
161      if (user == null) {
162        response.Success = false;
163        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_DOESNT_EXIST;
164        return response;
165      }
166      foreach (PermissionOwner permissionOwner in userGroup.Members) {
167        if (permissionOwner.PermissionOwnerId == permissionOwnerId) {
168          userGroup.Members.Remove(permissionOwner);
169          userGroupAdapter.UpdateUserGroup(userGroup);
170          response.Success = true;
171          response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_REMOVED;
172          return response;
173        }
174      }
175      response.Success = false;
176      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_DOESNT_EXIST;
177     
178      return response;
179    }
180
181    #endregion
182  }
183}
Note: See TracBrowser for help on using the repository browser.