/// <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);
 }