Example #1
0
        /// <summary>
        /// The SavePageData helper method is used to persist the
        ///   current tab settings to the database.
        /// </summary>
        /// <remarks>
        /// </remarks>
        private void SavePageData()
        {
            // Construct Authorized User Roles string
            var authorizedRoles = string.Empty;

            foreach (ListItem item in this.authRoles.Items)
            {
                if (item.Selected)
                {
                    authorizedRoles = authorizedRoles + item.Text + ";";
                }
            }

            var pageDB = new PagesDB();

            if (!string.IsNullOrEmpty(this.friendlyUrl.Text) && pageDB.IsAlreadyExistsFriendlyUrl(this.friendlyUrl.Text, this.PageID))
            {
                throw new Exception("FriendlyUrlIsAlreadyExists");
            }
            else
            {
                // update Page info in the database
                pageDB.UpdatePage(
                    this.PortalSettings.PortalID,
                    this.PageID,
                    Int32.Parse(this.parentPage.SelectedItem.Value),
                    this.tabName.Text,
                    this.PortalSettings.ActivePage.PageOrder,
                    authorizedRoles,
                    this.mobilePageName.Text,
                    this.showMobile.Checked,
                    this.friendlyUrl.Text);
                List <UserPagePermission> upPerms = new List <UserPagePermission>();
                foreach (GridViewRow gdvRow in gdvUsersAuth.Rows)
                {
                    upPerms.Add(new UserPagePermission()
                    {
                        PageId = this.PageID, UserId = Guid.Parse(((HiddenField)gdvRow.FindControl("hidUserId")).Value), Permission = Convert.ToInt16(((DropDownList)gdvRow.FindControl("ddlUserAuthPermission")).SelectedValue)
                    });
                }
                UserPagePermissionDB uppDB = new UserPagePermissionDB();
                uppDB.UpdatePagePermissions(upPerms, this.PageID);

                // Update custom settings in the database
                this.EditTable.UpdateControls();
            }
        }
Example #2
0
 protected void btnAuthUserAdd_Click(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(txtAuthUserFind.Text))
     {
         List <UserInfo> users = (List <UserInfo>)Session["PageAuthUsers_" + this.PageID];
         //add here
         UserPagePermissionDB uppDB = new UserPagePermissionDB();
         var usl = uppDB.GetUserToAdd(this.PageID, txtAuthUserFind.Text.Trim());
         if (usl != null && usl.Count > 0)
         {
             if (usl[0].UserId != PortalSettings.CurrentUser.Identity.ProviderUserKey)
             {
                 var usr = users.FirstOrDefault(u => u.UserId == usl[0].UserId);
                 if (usr == null)
                 {
                     users.Add(usl[0]);
                     Session["PageAuthUsers_" + this.PageID] = users;
                     gdvUsersAuth.DataSource = Session["PageAuthUsers_" + this.PageID];
                     gdvUsersAuth.DataBind();
                 }
                 else
                 {
                     lblAuthUserError.Text = "User is already added";
                 }
             }
             else
             {
                 lblAuthUserError.Text = "You cannot add yourself";
             }
         }
         else
         {
             lblAuthUserError.Text = "User not found";
         }
     }
     else
     {
         lblAuthUserError.Text = "Please enter username or email to add user";
     }
 }
Example #3
0
        /// <summary>
        /// The BindData helper method is used to update the tab's
        ///   layout panes with the current configuration information
        /// </summary>
        /// <remarks>
        /// </remarks>
        private void BindData()
        {
            var page = this.PortalSettings.ActivePage;

            // Populate Page Names, etc.
            this.txtPageID.Text          = page.PageID.ToString();
            this.tabName.Text            = page.PageName;
            this.friendlyUrl.Text        = page.FriendlyURL;
            this.mobilePageName.Text     = page.MobilePageName;
            this.showMobile.Checked      = page.ShowMobile;
            this.lblCurrentPageLink.Text = HttpUrlBuilder.BuildUrl(page.PageID);

            // Populate the "ParentPage" Data
            var t     = new PagesDB();
            var items = t.GetPagesParent(this.PortalSettings.PortalID, this.PageID);

            this.parentPage.DataSource = items;
            this.parentPage.DataBind();

            if (this.parentPage.Items.FindByValue(page.ParentPageID.ToString()) != null)
            {
                // parentPage.Items.FindByValue( tab.ParentPageID.ToString() ).Selected = true;
                this.parentPage.SelectedValue = page.ParentPageID.ToString();
            }

            // Translate
            if (this.parentPage.Items.FindByText(" ROOT_LEVEL") != null)
            {
                this.parentPage.Items.FindByText(" ROOT_LEVEL").Text = General.GetString(
                    "ROOT_LEVEL", "Root Level", this.parentPage);
            }

            // Populate checkbox list with all security roles for this portal
            // and "check" the ones already configured for this tab
            var users = new UsersDB();
            var roles = users.GetPortalRoles(this.PortalSettings.PortalAlias);

            // Clear existing items in checkboxlist
            this.authRoles.Items.Clear();

            foreach (var role in roles.Where(rn => rn.Name.ToLower() != "admins"))
            {
                var item = new ListItem();
                item.Text  = role.Name;
                item.Value = role.Id.ToString();

                if (page.AuthorizedRoles.LastIndexOf(item.Text) > -1)
                {
                    item.Selected = true;
                }

                this.authRoles.Items.Add(item);
            }

            //load users
            UserPagePermissionDB userPp = new UserPagePermissionDB();

            Session["PageAuthUsers_" + this.PageID] = userPp.GetAllUsers(this.PageID, PortalSettings.CurrentUser.Identity.ProviderUserKey);
            gdvUsersAuth.DataSource = Session["PageAuthUsers_" + this.PageID];
            gdvUsersAuth.DataBind();

            // Populate the "Add Module" Data
            var m       = new ModulesDB();
            var modules = new SortedList <string, string>();
            var drCurrentModuleDefinitions = m.GetCurrentModuleDefinitions(this.PortalSettings.PortalID);
            var htmlId = "0";

            try
            {
                foreach (var item in drCurrentModuleDefinitions)
                {
                    if ((!modules.ContainsKey(item.FriendlyName)) &&
                        (PortalSecurity.IsInRoles("Admins") || !item.Admin))
                    {
                        modules.Add(

                            item.FriendlyName,
                            item.ModuleDefId.ToString());
                        if (item.FriendlyName.ToString().Equals("HTML Content"))
                        {
                            htmlId = item.ModuleDefId.ToString();
                        }
                    }
                }
            }
            finally
            {
            }

            this.moduleType.DataSource = modules;
            this.moduleType.DataBind();
            this.moduleType.SelectedValue = htmlId;
        }
Example #4
0
        /// <summary>
        /// Binds the control and all its child controls to the specified data source.
        /// </summary>
        public override void DataBind()
        {
            if (HttpContext.Current != null)
            {
                //Init data
                ArrayList list = new ArrayList();

                // Obtain PortalSettings from Current Context
                PortalSettings PortalSettings = (PortalSettings)HttpContext.Current.Items["PortalSettings"];

                string homeLink = "<a";
                string menuLink;

                // added Class support by Mario Endara <*****@*****.**> 2004/10/04
                if (CssClass.Length != 0)
                {
                    homeLink = homeLink + " class=\"" + CssClass + "\"";
                }

                homeLink = homeLink + " href='" + HttpUrlBuilder.BuildUrl() + "'>" +
                           General.GetString("Appleseed", "HOME") + "</a>";

                // If user logged in, customize welcome message
                if (HttpContext.Current.Request.IsAuthenticated == true)
                {
                    if (ShowWelcome)
                    {
                        list.Add(PortalSettings.CurrentUser.Identity.Name + " (" + PortalSettings.CurrentUser.Identity.Email + ")");
                    }

                    var dashboardPage = PortalSettings.DesktopPages.FirstOrDefault(p => p.PageName == "Dashabord");
                    if (dashboardPage != null)
                    {
                        list.Add(string.Format("<a href='{0}'>{1}</a>", Appleseed.Framework.HttpUrlBuilder.BuildUrl(dashboardPage.PageID), General.GetString("Dashabord", "Dashabord")));
                    }

                    if (ShowHome)
                    {
                        list.Add(homeLink);
                    }

                    if (ShowHelp)
                    {
                        list.Add(GetHelpLink());
                    }

                    // Added by Mario Endara <*****@*****.**> (2004/11/06)
                    // Find Tab module to see if the user has add/edit rights
                    ModulesDB modules = new ModulesDB();
                    Guid      TabGuid = new Guid("{1C575D94-70FC-4A83-80C3-2087F726CBB3}");
                    // Added by Xu Yiming <*****@*****.**> (2004/12/6)
                    // Modify for support Multi or zero Pages Modules in a single portal.
                    bool HasEditPermissionsOnTabs = false;
                    int  TabModuleID = 0;

                    //					SqlDataReader result = modules.FindModulesByGuid(PortalSettings.PortalID, TabGuid);
                    //					while(result.Read())
                    //					{
                    //						TabModuleID=(int)result["ModuleId"];

                    foreach (ModuleItem m in modules.FindModuleItemsByGuid(PortalSettings.PortalID, TabGuid))
                    {
                        HasEditPermissionsOnTabs = PortalSecurity.HasEditPermissions(m.ID);
                        if (HasEditPermissionsOnTabs)
                        {
                            TabModuleID = m.ID;
                            break;
                        }
                    }

                    if (!HasEditPermissionsOnTabs || !ShowTabMan)
                    {
                        if (UserProfile.HasEditThisPageAccess())
                        {
                            HasEditPermissionsOnTabs = true;
                            this.ShowTabMan          = true;
                        }
                    }

                    // If user logged in and has Edit permission in the Tab module, reach tab management just one click
                    if (
                        ((ShowTabMan) && (HasEditPermissionsOnTabs) && UserPagePermissionDB.HasCurrentPageEditPermission() &&
                         PortalSettings.ActivePage.ParentPageID != 100 && PortalSettings.ActivePage.PageID != 100) ||
                        ((PortalSettings.ActivePage.ParentPageID == 100 || PortalSettings.ActivePage.PageID == 100) && PortalSecurity.IsInRole("Admins"))
                        )
                    {
                        // added by Mario Endara 2004/08/06 so PageLayout can return to this page
                        // added Class support by Mario Endara <*****@*****.**> 2004/10/04
                        menuLink = "<a";
                        if (CssClass.Length != 0)
                        {
                            menuLink = menuLink + " class=\"" + CssClass + "\"";
                        }

                        // added mID by Mario Endara <*****@*****.**> to support security check (2004/11/09)
                        var url = HttpUrlBuilder.BuildUrl("~/DesktopModules/CoreModules/Pages/PageLayout.aspx?PageID=") +
                                  PortalSettings.ActivePage.PageID + "&amp;mID=" + TabModuleID.ToString() +
                                  "&amp;Alias=" + PortalSettings.PortalAlias + "&amp;lang=" + PortalSettings.PortalUILanguage +
                                  "&amp;returntabid=" + PortalSettings.ActivePage.PageID;
                        menuLink = menuLink + " href='" + url + "' onclick=\"openInModal('" + url + "','" + General.GetString("HEADER_MANAGE_TAB", "Edit This Page", null) + "');return false;\");>" +
                                   General.GetString("HEADER_MANAGE_TAB", "Edit This Page", null) + "</a>";
                        list.Add(menuLink);
                    }


                    if (
                        ((ShowTabMan) && (HasEditPermissionsOnTabs) && UserPagePermissionDB.HasCurrentPageEditPermission() &&
                         PortalSettings.ActivePage.ParentPageID != 100 && PortalSettings.ActivePage.PageID != 100) ||
                        ((PortalSettings.ActivePage.ParentPageID == 100 || PortalSettings.ActivePage.PageID == 100) && PortalSecurity.IsInRole("Admins"))
                        )
                    {
                        menuLink = "<a";
                        if (CssClass.Length != 0)
                        {
                            menuLink = menuLink + " class=\"" + CssClass + "\"";
                        }

                        menuLink = menuLink + " href='javascript:DnD();' id='hypDND'>" + General.GetString("DRAGNDROP", "DragNDrop", null) + "</a>";
                        list.Add(menuLink);
                    }

                    if (ShowEditProfile)
                    {
                        // 19/08/2004 Jonathan Fong
                        // www.gt.com.au
                        if (Context.User.Identity.AuthenticationType == "LDAP")
                        {
                            // added Class support by Mario Endara <*****@*****.**> 2004/10/04
                            menuLink = "<a";
                            if (CssClass.Length != 0)
                            {
                                menuLink = menuLink + " class=\"" + CssClass + "\"";
                            }

                            menuLink = menuLink + " href='" +
                                       HttpUrlBuilder.BuildUrl("~/DesktopModules/CoreModules/Register/Register.aspx") +
                                       "'>" + "Profile" + "</a>";
                            list.Add(menuLink);
                        }
                        // If user is form add edit user link
                        else if (!(HttpContext.Current.User is WindowsPrincipal))
                        {
                            // added Class support by Mario Endara <*****@*****.**> 2004/10/04
                            menuLink = "<a";
                            if (CssClass.Length != 0)
                            {
                                menuLink = menuLink + " class=\"" + CssClass + "\"";
                            }

                            menuLink = menuLink + " href='" +
                                       HttpUrlBuilder.BuildUrl("~/DesktopModules/CoreModules/Register/Register.aspx") +
                                       "'>" +
                                       General.GetString("HEADER_EDIT_PROFILE", "Edit Profile", this) + "</a>";
                            list.Add(menuLink);
                        }
                    }

                    // if authentication mode is Cookie, provide a logoff link
                    if (Context.User.Identity.AuthenticationType == "Forms" ||
                        Context.User.Identity.AuthenticationType == "LDAP")
                    {
                        if (ShowLogOff)
                        {
                            // Corrections when ShowSecureLogon is true. [email protected] (05/07/2004)
                            string href = Context.Request.Url.AbsolutePath;
                            if (ShowSecureLogon && Context.Request.IsSecureConnection)
                            {
                                string auxref = Context.Request.Url.AbsoluteUri;
                                auxref = auxref.Substring(0, auxref.IndexOf(Context.Request.Url.PathAndQuery));
                                href   = auxref + href;
                                href   = href.Replace("https", "http");
                            }
                            // added Class support by Mario Endara <*****@*****.**> 2004/10/04
                            menuLink = "<a";
                            if (CssClass.Length != 0)
                            {
                                menuLink = menuLink + " class=\"" + CssClass + "\"";
                            }

                            // added code for redirection on same page after logged out
                            menuLink = menuLink + " href='javascript:void();' onclick=\"if(confirm('" + General.GetString("LOGOFF_CNF_MSG", "Log Off Confirmation: \\nAre you sure you want to log off?", null) + "')){window.location = '/DesktopModules/CoreModules/Admin/Logoff.aspx?redirecturl=" + href + "';  }else{return false;} \">" + General.GetString("HEADER_LOGOFF", "Logoff", null) + "</a>";



                            list.Add(menuLink);
                        }
                    }
                }
                else
                {
                    if (ShowHome)
                    {
                        list.Add(homeLink);
                    }

                    if (ShowHelp)
                    {
                        list.Add(GetHelpLink());
                    }

                    // if not authenticated and ShowLogon is true, provide a logon link

                    if (ShowLogon)
                    {
                        // added Class support by Mario Endara <*****@*****.**> 2004/10/04
                        menuLink = "<a";
                        if (CssClass.Length != 0)
                        {
                            menuLink = menuLink + " class=\"" + CssClass + "\"";
                        }

                        menuLink += string.Concat(" id=\"", this.ClientID, "_logon_link", "\"");
                        menuLink  = menuLink + " href='" + HttpUrlBuilder.BuildUrl("~/DesktopModules/CoreModules/Admin/Logon.aspx") +
                                    "'>" + General.GetString("LOGON", "Logon", null) + "</a>";
                        list.Add(menuLink);
                    }

                    var allowNewRegistration = false;
                    if (PortalSettings.CustomSettings["SITESETTINGS_ALLOW_NEW_REGISTRATION"] != null)
                    {
                        if (bool.Parse(PortalSettings.CustomSettings["SITESETTINGS_ALLOW_NEW_REGISTRATION"].ToString()))
                        {
                            allowNewRegistration = true;
                        }
                    }

                    if (ShowRegister && allowNewRegistration)
                    {
                        menuLink = "<a";
                        if (CssClass.Length != 0)
                        {
                            menuLink = menuLink + " class=\"" + CssClass + "\"";
                        }

                        menuLink = menuLink + " href='" + HttpUrlBuilder.BuildUrl("~/DesktopModules/CoreModules/Register/Register.aspx") +
                                   "'>" + General.GetString("REGISTER", "Register", null) + "</a>";
                        list.Add(menuLink);
                    }



                    // Thierry (Tiptopweb) 5 May 2003 : Secure Logon to Secure Directory
                    if (ShowSecureLogon)
                    {
                        // Added localized support. [email protected] (05/07/2004)
                        // added Class support by Mario Endara <*****@*****.**> 2004/10/04
                        menuLink = "<a";
                        if (CssClass.Length != 0)
                        {
                            menuLink = menuLink + " class=\"" + CssClass + "\"";
                        }

                        menuLink = menuLink + " href='" + PortalSettings.PortalSecurePath + "/Logon.aspx'>" +
                                   General.GetString("LOGON", "Logon", null) + "</a>";
                        list.Add(menuLink);
                    }
                }

                LanguageSwitcher ls = new LanguageSwitcher();
                Appleseed.Framework.Web.UI.WebControls.LanguageCultureCollection lcc = Appleseed.Framework.Localization.LanguageSwitcher.GetLanguageCultureList();
                if ((ShowLanguages) && (lcc.Count > 1))
                {
                    var mb = new StringBuilder();

                    mb.Append("<a");
                    if (CssClass.Length != 0)
                    {
                        mb.AppendFormat(" class=\"{0}\"", CssClass);
                    }

                    mb.AppendFormat("id = \"popUpLang\" >");

                    if ((ShowLangString) || (ShowLanguages))
                    {
                        string aux = General.GetString("LANGUAGE", "Language", null);
                        mb.AppendFormat("{0}", aux);
                    }
                    if (ShowFlags)
                    {
                        CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
                        string      dir         = HttpUrlBuilder.BuildUrl("~/aspnet_client/flags/flags_" + cultureInfo.ToString() + ".gif");
                        mb.AppendFormat("<img src=\"{0}\" alt=\"\" style=\"left:13px;position:relative\"/>", dir);
                    }
                    mb.Append("</a>");
                    list.Add(mb);
                }

                if (ShowTabMan && PortalSettings.IsAllowInviteMembers())
                {
                    menuLink = "<a";
                    if (CssClass.Length != 0)
                    {
                        menuLink = menuLink + " class=\"" + CssClass + "\"";
                    }

                    // added mID by Mario Endara <*****@*****.**> to support security check (2004/11/09)
                    var url = "/ASMemberInvite/MemberInvite/RenderView?pid=" +
                              PortalSettings.ActivePage.PageID;
                    menuLink = menuLink + " href='" + url + "' onclick=\"openInModal('" + url + "','" + General.GetString("HEADER_INVITE_MEMBERS", "Invite Members", null) + "');return false;\");>" +
                               General.GetString("HEADER_INVITE_MEMBERS", "Invite Members", null) + "</a>";
                    list.Add(menuLink);
                }
                innerDataSource = list;
            }
            base.DataBind();
            if (ShowLogon && DialogLogon)
            {
                //this new list control won't appear in the list, since it has no DataItem. However we need it for "holding" the Signin Control.
                var newItem = new DataListItem(this.Controls.Count, ListItemType.Item);
                this.Controls.Add(newItem);

                var logonDialogPlaceHolder = new PlaceHolder();
                newItem.Controls.Add(logonDialogPlaceHolder);

                if (_logonControl == null) //we ask this in case someone call the Databind more than once.
                {
                    _logonControl = Page.LoadControl(DialogLogonControlPath);
                    _logonControl.ViewStateMode = System.Web.UI.ViewStateMode.Enabled;
                }
                logonDialogPlaceHolder.Controls.Add(_logonControl);
            }
        }