/// <summary> /// Sends the invitation to user. /// </summary> private void SendInvitationToUser() { string invitationPageLink = GetInvitationPageLink(); SendOkPanel.Visible = false; SendErrorPanel.Visible = false; if (String.IsNullOrEmpty(EPiServerProfile.Current.Email)) { SendErrorPanel.Visible = true; SendInvitationErrorMessage.Text = Translate("/workroom/membershipmanager/inviteunfiledsenderemail"); return; } if (InviteMembershipDropDown.SelectedValue.Equals(MembershipLevels.None.ToString())) { SendErrorPanel.Visible = true; SendInvitationErrorMessage.Text = Translate("/workroom/membershipmanager/invitewithoutstatus"); return; } NotificationSender invitationSender = new InvitationSender(EPiServerProfile.Current.Email, EPiServerProfile.Current.FirstName, EPiServerProfile.Current.LastName, invitationPageLink); try { MembershipLevels memberLevel = (MembershipLevels)Enum.Parse(typeof(MembershipLevels), InviteMembershipDropDown.SelectedValue); invitationSender.Send(Page as WorkroomPageBase, InviteUserName.Text, InviteEmail.Text, memberLevel); SendOkPanel.Visible = true; } catch (Exception ex) { SendErrorPanel.Visible = true; SendInvitationErrorMessage.Text = ex.Message; } }
/// <summary> /// Initializes a new instance of the <see cref="MembershipEntry"/>. /// </summary> /// <param name="userName">Name of the member.</param> /// <param name="membership">The membeship level for the member.</param> public MembershipEntry(string userName, MembershipLevels membership) { _name = userName; _membership = membership; _eMail = null; _firstName = null; _lastName = null; }
/// <summary> /// Converts an <see cref="EPiServer.Security.AccessLevel"/> to a corresponding <see cref="MembershipLevel"/>. /// </summary> /// <param name="accessLevel">The access level to convert.</param> /// <returns>The corresponding <see cref="MembershipLevel"/>.</returns> public static MembershipLevels ConvertAccessLevel(AccessLevel accessLevel) { MembershipLevels workroomAccess = 0; workroomAccess |= TestMembership(accessLevel, MembershipLevels.Read); workroomAccess |= TestMembership(accessLevel, MembershipLevels.Modify); workroomAccess |= TestMembership(accessLevel, MembershipLevels.Administer); return(workroomAccess); }
/// <summary> /// Sends the notification e-mail /// </summary> /// <param name="workroom">Workroom to invite user to</param> /// <param name="userName">Name of user to invite</param> /// <param name="eMail">Invited user e-mail</param> /// <param name="memberLevel">Invited user member level</param> public void Send(WorkroomPageBase workroom, string userName, string email, MembershipLevels memberLevel) { WorkroomPage = workroom; UserName = userName; EmailTo = email; MemberLevel = memberLevel; MailMessage message = GetMessage(); SmtpClient smtpClient = new SmtpClient(); smtpClient.Send(message); }
/// <summary> /// Translates the membership level to a localized string. /// </summary> /// <param name="level">The <see cref="MembershipLevel"/> to get a string description for.</param> /// <returns>A string describing the membership level.</returns> public static string TranslateMembershipLevel(MembershipLevels level) { switch (level) { case MembershipLevels.Modify: return(LanguageManager.Instance.Translate("/workroom/membershiplevel/modify")); case MembershipLevels.Read: return(LanguageManager.Instance.Translate("/workroom/membershiplevel/read")); case MembershipLevels.Administer: return(LanguageManager.Instance.Translate("/workroom/membershiplevel/administer")); } return(String.Empty); }
private static MembershipLevels TestMembership(AccessLevel accessLevel, MembershipLevels membershipLevel) { return(((int)accessLevel & (int)membershipLevel) == (int)membershipLevel ? membershipLevel : MembershipLevels.None); }
/// <summary> /// Checks whether the current user has the supplied <see cref="MembershipLevel"/> on a <see cref="EPiServer.Core.PageData"/>. /// </summary> /// <param name="page">The <see cref="EPiServer.Core.PageData"/> to query permissions on.</param> /// <param name="membershipLevel">The membership level.</param> /// <returns><c>true</c> if the user has at least the permission supplied <c>membershipLevel</c> on the <c>page</c>; otherwise <c>false</c>.</returns> public static bool QueryDistinctMembershipLevel(PageData page, MembershipLevels membershipLevel) { return(page.ACL.QueryDistinctAccess(ConvertAccessLevel(membershipLevel))); }
/// <summary> /// Converts a <see cref="MembershipLevel"/> to a corresponding <see cref="EPiServer.Security.AccessLevel"/>. /// </summary> /// <param name="membershipLevel">The membership to convert.</param> /// <returns>The corresponding <see cref="EPiServer.Security.AccessLevel"/></returns> public static AccessLevel ConvertAccessLevel(MembershipLevels membershipLevel) { return((AccessLevel)membershipLevel); }
/// <summary> /// Creates invitation /// </summary> /// <param name="workroomStartPage">Id of workroom</param> /// <param name="membershipLevel">User access level</param> /// <param name="email">Email of user</param> public InvitationTicket(PageReference workroomStartPage, MembershipLevels membershipLevel, string email) { WorkroomStartPage = workroomStartPage; MembershipLevel = membershipLevel; Email = email; }
/// <summary> /// Gets a value indicating whether the current user has at least the supplied membership level for the Workroom. /// </summary> /// <param name="membershipLevel">The membership level to test.</param> /// <returns><c>true</c> if the user has sufficent membership level; otherwise <c>false</c>.</returns> public bool QueryDistinctMembershipLevel(MembershipLevels membershipLevel) { return(Membership.QueryDistinctMembershipLevel(CurrentPage, membershipLevel)); }