Free cookie consent management tool by TermsFeed Policy Generator

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

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

Implementation of UserRoleManager (#417)

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