/// <summary> /// Gets the current users department rights /// </summary> /// <returns>DepartmentRightsResult object with the department rights and group memberships</returns> public DepartmentRightsResult GetCurrentUsersRights() { var result = new DepartmentRightsResult(); var department = _departmentsService.GetDepartmentById(DepartmentId, false); var departmentMembership = _departmentsService.GetDepartmentMember(UserId, DepartmentId, false); var roles = _personnelRolesService.GetRolesForUser(UserId, DepartmentId); if (departmentMembership == null) { throw HttpStatusCode.Unauthorized.AsException(); } if (departmentMembership.IsAdmin.HasValue) { result.Adm = departmentMembership.IsAdmin.Value; } if (department.ManagingUserId == UserId) { result.Adm = true; } bool isGroupAdmin = false; result.Grps = new List <GroupRight>(); var group = _departmentGroupsService.GetGroupForUser(UserId, DepartmentId); if (group != null) { var groupRight = new GroupRight(); groupRight.Gid = group.DepartmentGroupId; groupRight.Adm = group.IsUserGroupAdmin(UserId); if (groupRight.Adm) { isGroupAdmin = true; } result.Grps.Add(groupRight); } var createCallPermission = _permissionsService.GetPermisionByDepartmentType(DepartmentId, PermissionTypes.CreateCall); var viewPIIPermission = _permissionsService.GetPermisionByDepartmentType(DepartmentId, PermissionTypes.ViewPersonalInfo); var createNotePermission = _permissionsService.GetPermisionByDepartmentType(DepartmentId, PermissionTypes.CreateNote); var createMessagePermission = _permissionsService.GetPermisionByDepartmentType(DepartmentId, PermissionTypes.CreateMessage); result.VPii = _permissionsService.IsUserAllowed(viewPIIPermission, result.Adm, isGroupAdmin, roles); result.CCls = _permissionsService.IsUserAllowed(createCallPermission, result.Adm, isGroupAdmin, roles); result.ANot = _permissionsService.IsUserAllowed(createNotePermission, result.Adm, isGroupAdmin, roles); result.CMsg = _permissionsService.IsUserAllowed(createMessagePermission, result.Adm, isGroupAdmin, roles); if (!String.IsNullOrWhiteSpace(Config.FirebaseConfig.ResponderJsonFile) && !String.IsNullOrWhiteSpace(Config.FirebaseConfig.ResponderProjectEmail)) { result.FirebaseApiToken = _firebaseService.CreateToken(UserId, null); } return(result); }