/// <summary> /// The any. /// </summary> /// <param name="request"> /// The request. /// </param> /// <returns> /// The <see cref="CurrentUserResponse"/>. /// </returns> public CurrentUserResponse Get(CurrentUserRequest request) { var session = this.GetSession() as CustomUserSession; if (session == null || session.User == null) { return new CurrentUserResponse { IsLoggedIn = false }; } this.rightsHelper.CurrentUser = session.User; var rights = new WinShooterCompetitionPermissions[0]; if (!string.IsNullOrEmpty(request.CompetitionId)) { rights = this.rightsHelper.GetRightsForCompetitionIdAndTheUser(Guid.Parse(request.CompetitionId)); } rights = this.rightsHelper.AddRightsWithNoDuplicate(rights, this.rightsHelper.GetSystemRightsForTheUser()); return new CurrentUserResponse { IsLoggedIn = true, DisplayName = session.User.DisplayName, Email = session.User.Email, CompetitionRights = (from right in rights select right.ToString()).ToArray() }; }
/// <summary> /// Check if a user has a certain permission. /// </summary> /// <param name="requestedPermission"> /// The permission. /// </param> /// <returns> /// The <see cref="bool"/>. /// </returns> internal bool HasPermission(WinShooterCompetitionPermissions requestedPermission) { return this.Permissions.Contains(requestedPermission); }