예제 #1
0
        /// <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;
            }
        }
예제 #2
0
 /// <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;
 }
예제 #3
0
        /// <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);
        }
예제 #4
0
        /// <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);
        }
예제 #5
0
        /// <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);
        }
예제 #6
0
 private static MembershipLevels TestMembership(AccessLevel accessLevel, MembershipLevels membershipLevel)
 {
     return(((int)accessLevel & (int)membershipLevel) == (int)membershipLevel ? membershipLevel : MembershipLevels.None);
 }
예제 #7
0
 /// <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)));
 }
예제 #8
0
 /// <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);
 }
예제 #9
0
 /// <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;
 }
예제 #10
0
 /// <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));
 }