Free cookie consent management tool by TermsFeed Policy Generator

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

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

Implementation of UserRoleManager (#417)

File size: 5.7 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;
[902]17
[820]18    public UserRoleManager() {
[902]19      userAdapter = ServiceLocator.GetUserAdapter();
[934]20      userGroupAdapter = ServiceLocator.GetUserGroupAdapter();
[820]21    }
22
[800]23    #region IUserRoleManager Members
24
[902]25    public ResponseList<User> GetAllUsers() {
[907]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;
[800]34    }
35
[902]36    public Response AddNewUser(User user) {
[907]37      Response response = new Response();
38
[937]39      if (user.PermissionOwnerId != null) {
[907]40        response.Success = false;
[937]41        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_ID_MUST_NOT_BE_SET;
[907]42        return response;
43      }
44      userAdapter.UpdateUser(user);
45      response.Success = true;
46      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USER_SUCCESSFULLY_ADDED;
47     
48      return response;
[842]49    }
50
[902]51    public ResponseList<UserGroup> GetAllUserGroups() {
[907]52      ResponseList<UserGroup> response = new ResponseList<UserGroup>();
53
[934]54      response.List = new List<UserGroup>(userGroupAdapter.GetAllUserGroups());
55      response.Success = true;
56      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_GET_ALL_USERGROUPS;
57
[907]58      return response;
[800]59    }
60
[902]61    public Response RemoveUser(long userId) {
[907]62      Response response = new Response();
63      User user = userAdapter.GetUserById(userId);
64      if (user == null) {
65        response.Success = false;
66        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USER_DOESNT_EXIST;
67        return response;
68      }
[934]69      userAdapter.DeleteUser(user);
[907]70      response.Success = true;
71      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USER_REMOVED;
[929]72                         
[907]73      return response;
[902]74    }
75
76    public Response AddNewUserGroup(UserGroup userGroup) {
[934]77      Response response = new Response();
[937]78     
79      if (userGroup.PermissionOwnerId != null) {
[934]80        response.Success = false;
[937]81        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_ID_MUST_NOT_BE_SET;
[934]82        return response;
83      }
84      userGroupAdapter.UpdateUserGroup(userGroup);
85      response.Success = false;
86      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_ADDED;
87
88      return response;
[902]89    }
90
91    public Response RemoveUserGroup(long groupId) {
[934]92      Response response = new Response();
93
94      UserGroup userGroupFromDb = userGroupAdapter.GetUserGroupById(groupId);
95      if (userGroupFromDb == null) {
96        response.Success = false;
97        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
98        return response;
99      }
100      userGroupAdapter.DeleteUserGroup(userGroupFromDb);
101      response.Success = false;
102      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_ADDED;
103
104      return response;
[902]105    }
106
[934]107    public Response AddPermissionOwnerToGroup(long groupId, PermissionOwner permissionOwner) {
108      Response response = new Response();
[937]109
110      if (permissionOwner.PermissionOwnerId != null) {
111        response.Success = false;
112        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_ID_MUST_NOT_BE_SET;
113        return response;
114      }
115
[934]116      UserGroup userGroup = userGroupAdapter.GetUserGroupById(groupId);
117      if (userGroup == null) {
118        response.Success = false;
119        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
120        return response;
121      }
122      userGroup.Members.Add(permissionOwner);
123      userGroupAdapter.UpdateUserGroup(userGroup);
124
125      response.Success = true;
126      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_ADDED;
127
128      return response;
[902]129    }
130
[934]131    public Response RemovePermissionOwnerFromGroup(long groupId, long permissionOwnerId) {
132      Response response = new Response();
133
134      UserGroup userGroup = userGroupAdapter.GetUserGroupById(groupId);
135      if (userGroup == null) {
136        response.Success = false;
137        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST;
138        return response;
139      }
140      User user = userAdapter.GetUserById(permissionOwnerId);
141      if (user == null) {
142        response.Success = false;
143        response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_DOESNT_EXIST;
144        return response;
145      }
146      foreach (PermissionOwner permissionOwner in userGroup.Members) {
147        if (permissionOwner.PermissionOwnerId == permissionOwnerId) {
148          userGroup.Members.Remove(permissionOwner);
149          userGroupAdapter.UpdateUserGroup(userGroup);
150          response.Success = true;
151          response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_REMOVED;
152          return response;
153        }
154      }
155      response.Success = false;
156      response.StatusMessage = ApplicationConstants.RESPONSE_USERROLE_PERMISSIONOWNER_DOESNT_EXIST;
157     
158      return response;
[902]159    }
160
[800]161    #endregion
162  }
163}
Note: See TracBrowser for help on using the repository browser.