Beispiel #1
0
        public void bindMember(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                if (cms.businesslogic.member.Member.InUmbracoMemberMode())
                {
                    cms.businesslogic.member.Member mem = (cms.businesslogic.member.Member)e.Item.DataItem;
                    Literal _name   = (Literal)e.Item.FindControl("lt_name");
                    Literal _email  = (Literal)e.Item.FindControl("lt_email");
                    Literal _login  = (Literal)e.Item.FindControl("lt_login");
                    Button  _button = (Button)e.Item.FindControl("bt_delete");

                    _name.Text  = "<a href='editMember.aspx?id=" + mem.Id.ToString() + "'>" + mem.Text + "</a>";
                    _login.Text = mem.LoginName;
                    _email.Text = mem.Email;

                    _button.CommandArgument = mem.Id.ToString();
                    _button.OnClientClick   = "return confirm(\"" + ui.Text("confirmdelete") + "'" + mem.Text + "' ?\")";
                    _button.Text            = ui.Text("delete");
                }
                else
                {
                    System.Web.Security.MembershipUser mem = (System.Web.Security.MembershipUser)e.Item.DataItem;
                    Literal _name   = (Literal)e.Item.FindControl("lt_name");
                    Literal _email  = (Literal)e.Item.FindControl("lt_email");
                    Literal _login  = (Literal)e.Item.FindControl("lt_login");
                    Button  _button = (Button)e.Item.FindControl("bt_delete");

                    _name.Text      = "<a href='editMember.aspx?id=" + mem.UserName + "'>" + mem.UserName + "</a>";
                    _login.Text     = mem.UserName;
                    _email.Text     = mem.Email;
                    _button.Visible = false;
                }
            }
        }
Beispiel #2
0
        private static bool HasAccess(int DocumentId, string Path, cms.businesslogic.member.Member Member)
        {
            bool hasAccess = false;

            if (!IsProtected(DocumentId, Path))
            {
                hasAccess = true;
            }
            else
            {
                XmlNode currentNode = getPage(getProtectedPage(Path));
                if (Member != null)
                {
                    IDictionaryEnumerator ide = Member.Groups.GetEnumerator();
                    while (ide.MoveNext())
                    {
                        cms.businesslogic.member.MemberGroup mg = (cms.businesslogic.member.MemberGroup)ide.Value;
                        if (currentNode.SelectSingleNode("./group [@id=" + mg.Id.ToString() + "]") != null)
                        {
                            hasAccess = true;
                            break;
                        }
                    }
                }
            }

            return(hasAccess);
        }
Beispiel #3
0
        public bool Save()
        {
            string[] nameAndMail = Alias.Split("|".ToCharArray());
            string   name        = nameAndMail[0];
            string   email       = nameAndMail.Length > 0 ? nameAndMail[1] : "";
            string   password    = nameAndMail.Length > 1 ? nameAndMail[2] : "";
            string   loginName   = nameAndMail.Length > 2 ? nameAndMail[3] : "";

            if (cms.businesslogic.member.Member.InUmbracoMemberMode() && TypeID != -1)
            {
                cms.businesslogic.member.MemberType dt = new cms.businesslogic.member.MemberType(TypeID);
                cms.businesslogic.member.Member     m  = cms.businesslogic.member.Member.MakeNew(name, loginName, email, dt, BusinessLogic.User.GetUser(_userID));
                m.Password  = password;
                m.LoginName = loginName.Replace(" ", "").ToLower();

                NewMemberUIEventArgs e = new NewMemberUIEventArgs();
                this.OnNewMember(e, password, m);

                _returnUrl = "members/editMember.aspx?id=" + m.Id.ToString();
            }
            else
            {
                MembershipCreateStatus mc = new MembershipCreateStatus();
                Membership.CreateUser(name, password, email, "empty", "empty", true, out mc);
                if (mc != MembershipCreateStatus.Success)
                {
                    throw new Exception("Error creating Member: " + mc.ToString());
                }
                _returnUrl = "members/editMember.aspx?id=" + System.Web.HttpContext.Current.Server.UrlEncode(name);
            }

            return(true);
        }
        protected void Page_Load(object sender, System.EventArgs e)
        {
            // Add password changer
            MemberPasswordTxt.Controls.Add(new UserControl().LoadControl(SystemDirectories.Umbraco + "/controls/passwordChanger.ascx"));

            if (Member.InUmbracoMemberMode())
            {
                _document  = new cms.businesslogic.member.Member(int.Parse(Request.QueryString["id"]));
                m_Member   = Membership.GetUser(_document.Id);
                tmp        = new controls.ContentControl(_document, controls.ContentControl.publishModes.NoPublish, "TabView1");
                tmp.Width  = Unit.Pixel(666);
                tmp.Height = Unit.Pixel(666);
                plc.Controls.Add(tmp);

                if (!IsPostBack)
                {
                    MemberLoginNameTxt.Text = _document.LoginName;
                    MemberEmail.Text        = _document.Email;
                }
                PlaceHolder ph = new PlaceHolder();
                MemberLoginNameTxt.ID = "loginname";
                ph.Controls.Add(MemberLoginNameTxt);
                ph.Controls.Add(MemberLoginNameVal);
                MemberLoginNameVal.ControlToValidate = MemberLoginNameTxt.ID;
                string[] errorVars = { ui.Text("login") };
                MemberLoginNameVal.ErrorMessage       = " " + ui.Text("errorHandling", "errorMandatoryWithoutTab", errorVars, null);
                MemberLoginNameVal.EnableClientScript = false;
                MemberLoginNameVal.Display            = ValidatorDisplay.Dynamic;

                tmp.PropertiesPane.addProperty(ui.Text("login"), ph);
                tmp.PropertiesPane.addProperty(ui.Text("password"), MemberPasswordTxt);
                tmp.PropertiesPane.addProperty("Email", MemberEmail);
            }
            else
            {
                m_Member = Membership.GetUser(Request.QueryString["id"]);
                MemberLoginNameTxt.Text = m_Member.UserName;
                if (!IsPostBack)
                {
                    MemberEmail.Text = m_Member.Email;
                }

                m_MemberShipPanel.Width = 300;
                m_MemberShipPanel.Text  = ui.Text("edit") + " " + m_Member.UserName;
                umbraco.uicontrols.Pane props = new umbraco.uicontrols.Pane();
                MemberLoginNameTxt.Enabled = false;

                // check for pw support
                if (!Membership.Provider.EnablePasswordRetrieval)
                {
                    MemberPasswordTxt.Controls.Clear();
                    MemberPasswordTxt.Controls.Add(
                        new LiteralControl("<em>" + ui.Text("errorHandling", "errorChangingProviderPassword") + "</em>"));
                }

                props.Controls.Add(AddProperty(ui.Text("login"), MemberLoginNameTxt));
                props.Controls.Add(AddProperty(ui.Text("password"), MemberPasswordTxt));
                props.Controls.Add(AddProperty("Email", MemberEmail));
                m_MemberShipPanel.Controls.Add(props);
                plc.Controls.Add(m_MemberShipPanel);
            }

            // Groups
            umbraco.uicontrols.Pane p = new umbraco.uicontrols.Pane();
            _memberGroups.ID    = "Membergroups";
            _memberGroups.Width = 175;
            string selectedMembers = "";

            foreach (string role in Roles.GetAllRoles())
            {
                // if a role starts with __umbracoRole we won't show it as it's an internal role used for public access
                if (!role.StartsWith("__umbracoRole"))
                {
                    ListItem li = new ListItem(role);
                    if (!IsPostBack)
                    {
                        if (Roles.IsUserInRole(m_Member.UserName, role))
                        {
                            selectedMembers += role + ",";
                        }
                    }
                    _memberGroups.Items.Add(li);
                }
            }
            _memberGroups.Value = selectedMembers;

            p.addProperty(ui.Text("membergroup"), _memberGroups);

            if (Member.InUmbracoMemberMode())
            {
                tmp.tpProp.Controls.Add(p);
                tmp.Save += new System.EventHandler(tmp_save);
            }
            else
            {
                m_MemberShipPanel.Controls.Add(p);
            }
        }
Beispiel #5
0
        protected void protect_Click(object sender, CommandEventArgs e)
        {
            if (string.IsNullOrEmpty(errorPagePicker.Text))
            {
                cv_errorPage.IsValid = false;
            }

            if (string.IsNullOrEmpty(loginPagePicker.Text))
            {
                cv_loginPage.IsValid = false;
            }


            if (Page.IsValid)
            {
                int pageId = int.Parse(helper.Request("nodeId"));
                p_buttons.Visible     = false;
                pane_advanced.Visible = false;
                pane_simple.Visible   = false;

                if (e.CommandName == "simple")
                {
                    MembershipUser member = Membership.GetUser(simpleLogin.Text);
                    if (member == null)
                    {
                        // this needs to work differently depending on umbraco members or external membership provider
                        if (!cms.businesslogic.member.Member.InUmbracoMemberMode())
                        {
                            member = Membership.CreateUser(simpleLogin.Text, simplePassword.Text);
                        }
                        else
                        {
                            try
                            {
                                if (cms.businesslogic.member.MemberType.GetByAlias("_umbracoSystemDefaultProtectType") == null)
                                {
                                    cms.businesslogic.member.MemberType.MakeNew(BusinessLogic.User.GetUser(0), "_umbracoSystemDefaultProtectType");
                                }
                            }
                            catch
                            {
                                cms.businesslogic.member.MemberType.MakeNew(BusinessLogic.User.GetUser(0), "_umbracoSystemDefaultProtectType");
                            }
                            // create member
                            cms.businesslogic.member.Member mem = cms.businesslogic.member.Member.MakeNew(simpleLogin.Text, "", cms.businesslogic.member.MemberType.GetByAlias("_umbracoSystemDefaultProtectType"), base.getUser());
                            // working around empty password restriction for Umbraco Member Mode
                            mem.Password = simplePassword.Text;
                            member       = Membership.GetUser(simpleLogin.Text);
                        }
                    }

                    // Create or find a memberGroup
                    string simpleRoleName = "__umbracoRole_" + simpleLogin.Text;
                    if (!Roles.RoleExists(simpleRoleName))
                    {
                        Roles.CreateRole(simpleRoleName);
                    }
                    if (!Roles.IsUserInRole(member.UserName, simpleRoleName))
                    {
                        Roles.AddUserToRole(member.UserName, simpleRoleName);
                    }

                    Access.ProtectPage(true, pageId, int.Parse(loginPagePicker.Text), int.Parse(errorPagePicker.Text));
                    Access.AddMembershipRoleToDocument(pageId, simpleRoleName);
                    Access.AddMembershipUserToDocument(pageId, member.UserName);
                }
                else if (e.CommandName == "advanced")
                {
                    cms.businesslogic.web.Access.ProtectPage(false, pageId, int.Parse(loginPagePicker.Text), int.Parse(errorPagePicker.Text));

                    foreach (ListItem li in _memberGroups.Items)
                    {
                        if (("," + _memberGroups.Value + ",").IndexOf("," + li.Value + ",") > -1)
                        {
                            cms.businesslogic.web.Access.AddMembershipRoleToDocument(pageId, li.Value);
                        }
                        else
                        {
                            cms.businesslogic.web.Access.RemoveMembershipRoleFromDocument(pageId, li.Value);
                        }
                    }
                }

                feedback.Text = ui.Text("publicAccess", "paIsProtected", new cms.businesslogic.CMSNode(pageId).Text, null) + "</p><p><a href='#' onclick='" + ClientTools.Scripts.CloseModalWindow() + "'>" + ui.Text("closeThisWindow") + "</a>";

                ClientTools.ReloadActionNode(true, false);

                feedback.type = global::umbraco.uicontrols.Feedback.feedbacktype.success;
            }
        }
Beispiel #6
0
		protected void Page_Load(object sender, System.EventArgs e)
		{

            // Add password changer
            MemberPasswordTxt.Controls.Add(new UserControl().LoadControl(SystemDirectories.Umbraco + "/controls/passwordChanger.ascx"));

            if (Member.InUmbracoMemberMode())
            {
                _document = new cms.businesslogic.member.Member(int.Parse(Request.QueryString["id"]));
                m_Member = Membership.GetUser(_document.Id);
                tmp = new controls.ContentControl(_document, controls.ContentControl.publishModes.NoPublish, "TabView1");
                tmp.Width = Unit.Pixel(666);
                tmp.Height = Unit.Pixel(666);
                plc.Controls.Add(tmp);

                if (!IsPostBack)
                {
                    MemberLoginNameTxt.Text = _document.LoginName;
                    MemberEmail.Text = _document.Email;
                }
                PlaceHolder ph = new PlaceHolder();
                MemberLoginNameTxt.ID = "loginname";
                ph.Controls.Add(MemberLoginNameTxt);
                ph.Controls.Add(MemberLoginNameVal);
                MemberLoginNameVal.ControlToValidate = MemberLoginNameTxt.ID;
                string[] errorVars = { ui.Text("login") };
                MemberLoginNameVal.ErrorMessage = " " + ui.Text("errorHandling", "errorMandatoryWithoutTab", errorVars, null);
                MemberLoginNameVal.EnableClientScript = false;
                MemberLoginNameVal.Display = ValidatorDisplay.Dynamic;

                tmp.PropertiesPane.addProperty(ui.Text("login"), ph);
                tmp.PropertiesPane.addProperty(ui.Text("password"), MemberPasswordTxt);
                tmp.PropertiesPane.addProperty("Email", MemberEmail);
            }
            else
            {
                m_Member = Membership.GetUser(Request.QueryString["id"]);
                MemberLoginNameTxt.Text = m_Member.UserName;
                if (!IsPostBack)
                {
                    MemberEmail.Text = m_Member.Email;
                }

                m_MemberShipPanel.Width = 300;
                m_MemberShipPanel.Text = ui.Text("edit") + " " + m_Member.UserName;
                umbraco.uicontrols.Pane props = new umbraco.uicontrols.Pane();
                MemberLoginNameTxt.Enabled = false;

                // check for pw support
                if (!Membership.Provider.EnablePasswordRetrieval) {
                    MemberPasswordTxt.Controls.Clear();
                    MemberPasswordTxt.Controls.Add(
                        new LiteralControl("<em>" + ui.Text("errorHandling", "errorChangingProviderPassword") + "</em>"));
                }

                props.Controls.Add(AddProperty(ui.Text("login"), MemberLoginNameTxt));
                props.Controls.Add(AddProperty(ui.Text("password"), MemberPasswordTxt));
                props.Controls.Add(AddProperty("Email", MemberEmail));
                m_MemberShipPanel.Controls.Add(props);
                plc.Controls.Add(m_MemberShipPanel);
            }

			// Groups
			umbraco.uicontrols.Pane p = new umbraco.uicontrols.Pane();
			_memberGroups.ID = "Membergroups";
			_memberGroups.Width = 175;
			string selectedMembers = "";
			foreach(string role in Roles.GetAllRoles()) 
			{
                // if a role starts with __umbracoRole we won't show it as it's an internal role used for public access
                if (!role.StartsWith("__umbracoRole"))
                {
                    ListItem li = new ListItem(role);
                    if (!IsPostBack)
                    {

                        if (Roles.IsUserInRole(m_Member.UserName, role))
                            selectedMembers += role + ",";
                    }
                    _memberGroups.Items.Add(li);
                }
			}
			_memberGroups.Value = selectedMembers;

            p.addProperty(ui.Text("membergroup"), _memberGroups);

            if (Member.InUmbracoMemberMode())
            {
                tmp.tpProp.Controls.Add(p);
                tmp.Save += new System.EventHandler(tmp_save);
            }
            else
                m_MemberShipPanel.Controls.Add(p);

		}