Free cookie consent management tool by TermsFeed Policy Generator

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

Last change on this file since 995 was 995, checked in by svonolfe, 15 years ago

Refactored DAL, Improved Caching (#372)

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
[995]29      List<User> allUsers = new List<User>(userAdapter.GetAll());
[907]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
[995]40      if (user.Id != 0) {
[907]41        response.Success = false;
[937]42        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_ID_MUST_NOT_BE_SET;
[907]43        return response;
44      }
[995]45      if (userAdapter.GetByName(user.Name) != null) {
[969]46        response.Success = false;
47        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERNAME_EXISTS_ALLREADY;
48        return response;
49      }
50
[995]51      userAdapter.Update(user);
[952]52      response.Obj = user;
[907]53      response.Success = true;
54      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USER_SUCCESSFULLY_ADDED;
55     
56      return response;
[842]57    }
58
[902]59    public ResponseList<UserGroup> GetAllUserGroups() {
[907]60      ResponseList<UserGroup> response = new ResponseList<UserGroup>();
61
[995]62      response.List = new List<UserGroup>(userGroupAdapter.GetAll());
[934]63      response.Success = true;
64      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_GET_ALL_USERGROUPS;
65
[907]66      return response;
[800]67    }
68
[902]69    public Response RemoveUser(long userId) {
[907]70      Response response = new Response();
[995]71      User user = userAdapter.GetById(userId);
[907]72      if (user == null) {
73        response.Success = false;
74        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USER_DOESNT_EXIST;
75        return response;
76      }
[995]77      userAdapter.Delete(user);
[907]78      response.Success = true;
79      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USER_REMOVED;
[929]80                         
[907]81      return response;
[902]82    }
83
[952]84    public ResponseObject<UserGroup> AddNewUserGroup(UserGroup userGroup) {
85      ResponseObject<UserGroup> response = new ResponseObject<UserGroup>();
[937]86     
[995]87      if (userGroup.Id != 0) {
[934]88        response.Success = false;
[937]89        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_ID_MUST_NOT_BE_SET;
[934]90        return response;
91      }
[969]92
[995]93      userGroupAdapter.Update(userGroup);
[952]94      response.Obj = userGroup;
[934]95      response.Success = false;
96      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_ADDED;
97
98      return response;
[902]99    }
100
101    public Response RemoveUserGroup(long groupId) {
[934]102      Response response = new Response();
103
[995]104      UserGroup userGroupFromDb = userGroupAdapter.GetById(groupId);
[934]105      if (userGroupFromDb == null) {
106        response.Success = false;
107        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
108        return response;
109      }
[995]110      userGroupAdapter.Delete(userGroupFromDb);
[934]111      response.Success = false;
112      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_ADDED;
113
114      return response;
[902]115    }
116
[945]117    public Response AddUserToGroup(long groupId, long userId) {
[934]118      Response response = new Response();
[937]119
[995]120      User user = userAdapter.GetById(userId);
[945]121      if (user == null) {
[937]122        response.Success = false;
[945]123        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USER_DOESNT_EXIST;
[937]124        return response;
125      }
126
[995]127      UserGroup userGroup = userGroupAdapter.GetById(groupId);
[934]128      if (userGroup == null) {
129        response.Success = false;
130        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
131        return response;
132      }
[945]133      userGroup.Members.Add(user);
[995]134      userGroupAdapter.Update(userGroup);
[934]135
136      response.Success = true;
137      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_ADDED;
138
139      return response;
[902]140    }
141
[945]142    public Response AddUserGroupToGroup(long groupId, long groupToAddId) {
143      Response response = new Response();
144
[995]145      UserGroup userGroup = userGroupAdapter.GetById(groupId);
146      UserGroup userGroupToAdd = userGroupAdapter.GetById(groupToAddId);
[947]147
148      if (userGroup == null || userGroupToAdd == null) {
149        response.Success = false;
150        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
151        return response;
152      }
153      userGroup.Members.Add(userGroupToAdd);
154      response.Success = true;
155      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_ADDED_TO_USERGROUP;
156
[945]157      return response;
158    }
159
[934]160    public Response RemovePermissionOwnerFromGroup(long groupId, long permissionOwnerId) {
161      Response response = new Response();
162
[995]163      UserGroup userGroup = userGroupAdapter.GetById(groupId);
[934]164      if (userGroup == null) {
165        response.Success = false;
166        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
167        return response;
168      }
[995]169      User user = userAdapter.GetById(permissionOwnerId);
[934]170      if (user == null) {
171        response.Success = false;
172        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_DOESNT_EXIST;
173        return response;
174      }
175      foreach (PermissionOwner permissionOwner in userGroup.Members) {
[995]176        if (permissionOwner.Id == permissionOwnerId) {
[934]177          userGroup.Members.Remove(permissionOwner);
[995]178          userGroupAdapter.Update(userGroup);
[934]179          response.Success = true;
180          response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_REMOVED;
181          return response;
182        }
183      }
184      response.Success = false;
185      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_DOESNT_EXIST;
186     
187      return response;
[902]188    }
189
[800]190    #endregion
191  }
192}
Note: See TracBrowser for help on using the repository browser.