Free cookie consent management tool by TermsFeed Policy Generator

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

Last change on this file since 934 was 934, checked in by msteinbi, 16 years ago

Implementation of UserRoleManager (#417)

File size: 5.6 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
18    public UserRoleManager() {
19      userAdapter = ServiceLocator.GetUserAdapter();
20      userGroupAdapter = ServiceLocator.GetUserGroupAdapter();
21    }
22
23    #region IUserRoleManager Members
24
25    public ResponseList<User> GetAllUsers() {
26      ResponseList<User> response = new ResponseList<User>();
27
28      List<User> allUsers = new List<User>(userAdapter.GetAllUsers());
29      response.List = allUsers;
30      response.Success = true;
31      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_GET_ALL_USERS;
32
33      return response;
34    }
35
36    public Response AddNewUser(User user) {
37      Response response = new Response();
38
39      User dbUser = userAdapter.GetUserByName(user.Name);
40      if (dbUser != null) {
41        response.Success = false;
42        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USER_EXISTS_ALLREADY;
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      UserGroup userGroupFromDb = userGroupAdapter.GetUserGroupById(userGroup.PermissionOwnerId);
81      if (userGroupFromDb != null) {
82        response.Success = false;
83        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_EXISTS_ALLREADY;
84        return response;
85      }
86      userGroupAdapter.UpdateUserGroup(userGroup);
87      response.Success = false;
88      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_ADDED;
89
90      return response;
91    }
92
93    public Response RemoveUserGroup(long groupId) {
94      Response response = new Response();
95
96      UserGroup userGroupFromDb = userGroupAdapter.GetUserGroupById(groupId);
97      if (userGroupFromDb == null) {
98        response.Success = false;
99        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
100        return response;
101      }
102      userGroupAdapter.DeleteUserGroup(userGroupFromDb);
103      response.Success = false;
104      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_ADDED;
105
106      return response;
107    }
108
109    public Response AddPermissionOwnerToGroup(long groupId, PermissionOwner permissionOwner) {
110      Response response = new Response();
111     
112      UserGroup userGroup = userGroupAdapter.GetUserGroupById(groupId);
113      if (userGroup == null) {
114        response.Success = false;
115        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
116        return response;
117      }
118      userGroup.Members.Add(permissionOwner);
119      userGroupAdapter.UpdateUserGroup(userGroup);
120
121      response.Success = true;
122      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_ADDED;
123
124      return response;
125    }
126
127    public Response RemovePermissionOwnerFromGroup(long groupId, long permissionOwnerId) {
128      Response response = new Response();
129
130      UserGroup userGroup = userGroupAdapter.GetUserGroupById(groupId);
131      if (userGroup == null) {
132        response.Success = false;
133        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
134        return response;
135      }
136      User user = userAdapter.GetUserById(permissionOwnerId);
137      if (user == null) {
138        response.Success = false;
139        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_DOESNT_EXIST;
140        return response;
141      }
142      foreach (PermissionOwner permissionOwner in userGroup.Members) {
143        if (permissionOwner.PermissionOwnerId == permissionOwnerId) {
144          userGroup.Members.Remove(permissionOwner);
145          userGroupAdapter.UpdateUserGroup(userGroup);
146          response.Success = true;
147          response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_REMOVED;
148          return response;
149        }
150      }
151      response.Success = false;
152      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_DOESNT_EXIST;
153     
154      return response;
155    }
156
157    #endregion
158  }
159}
Note: See TracBrowser for help on using the repository browser.