[800] | 1 | using System;
|
---|
| 2 | using System.Collections.Generic;
|
---|
| 3 | using System.Linq;
|
---|
| 4 | using System.Text;
|
---|
| 5 | using HeuristicLab.Hive.Contracts.Interfaces;
|
---|
| 6 | using HeuristicLab.Hive.Contracts.BusinessObjects;
|
---|
[902] | 7 | using HeuristicLab.Hive.Server.Core.InternalInterfaces.DataAccess;
|
---|
| 8 | using System.Resources;
|
---|
| 9 | using System.Reflection;
|
---|
| 10 | using HeuristicLab.Hive.Contracts;
|
---|
[800] | 11 |
|
---|
| 12 | namespace 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 | }
|
---|