コード例 #1
0
ファイル: Helpers.cs プロジェクト: KamilZet/BugNet
        public static MailboxReaderConfig GetBugNetConfig()
        {
            var state = new MailboxReaderThreadState
            {
                UploadsFolderPath = @"c:\temp\",
            };

            var hostSettings = HostSettingManager.LoadHostSettings();

            var emailFormat = HostSettingManager.Get(hostSettings, HostSettingNames.SMTPEMailFormat, EmailFormatType.Text);

            var mailBoxConfig = new MailboxReaderConfig
            {
                Server   = HostSettingManager.Get(hostSettings, HostSettingNames.Pop3Server, string.Empty),
                Port     = HostSettingManager.Get(hostSettings, HostSettingNames.Pop3Port, 110),
                UseSsl   = HostSettingManager.Get(hostSettings, HostSettingNames.Pop3UseSSL, false),
                Username = HostSettingManager.Get(hostSettings, HostSettingNames.Pop3Username, string.Empty),
                Password = HostSettingManager.Get(hostSettings, HostSettingNames.Pop3Password, string.Empty),
                ProcessInlineAttachedPictures = HostSettingManager.Get(hostSettings, HostSettingNames.Pop3InlineAttachedPictures, false),
                DeleteAllMessages             = HostSettingManager.Get(hostSettings, HostSettingNames.Pop3DeleteAllMessages, false),
                ReportingUserName             = HostSettingManager.Get(hostSettings, HostSettingNames.Pop3ReportingUsername, string.Empty),
                ProcessAttachments            = HostSettingManager.Get(hostSettings, HostSettingNames.Pop3ProcessAttachments, true),
                UploadsFolderPath             = state.UploadsFolderPath,
                EmailFormatType = emailFormat,
                BodyTemplate    = GetEmailTemplateContent()
            };

            return(mailBoxConfig);
        }
コード例 #2
0
        /// <summary>
        /// Handles the PreRequestHandlerExecute event of the context control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void context_PreRequestHandlerExecute(object sender, EventArgs e)
        {
            if (HttpContext.Current.Request.Url.LocalPath.ToLower().EndsWith("install.aspx"))
            {
                return;
            }

            string culture;

            if (HttpContext.Current.User == null || HttpContext.Current.Profile == null || !HttpContext.Current.User.Identity.IsAuthenticated)
            {
                culture = HostSettingManager.Get(HostSettingNames.ApplicationDefaultLanguage);
                Thread.CurrentThread.CurrentCulture   = CultureInfo.CreateSpecificCulture(culture);
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
            }
            else
            {
                if (HttpContext.Current.Profile["PreferredLocale"] != null &&
                    !string.IsNullOrEmpty(HttpContext.Current.Profile["PreferredLocale"].ToString()))
                {
                    //retrieve culture
                    culture = HttpContext.Current.Profile["PreferredLocale"].ToString();

                    //set culture
                    Thread.CurrentThread.CurrentCulture   = CultureInfo.CreateSpecificCulture(culture);
                    Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
                }
            }
        }
コード例 #3
0
ファイル: IssueTabs.ascx.cs プロジェクト: anycall/bugnet
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        void Page_Load(object sender, EventArgs e)
        {
            if (IssueId == 0)
            {
                return;
            }

            if (!Page.IsPostBack)
            {
                IssueTabsMenu.Items.Add(new MenuItem(GetTabName(GetLocalResourceObject("Comments").ToString(), "0"), "TabComments", "~/images/comment.gif"));
                if (HostSettingManager.Get(HostSettingNames.AllowAttachments, false) && ProjectManager.GetById(ProjectId).AllowAttachments)
                {
                    IssueTabsMenu.Items.Add(new MenuItem(GetTabName(GetLocalResourceObject("Attachments").ToString(), "1"), "TabAttachments", "~/images/attach.gif"));
                }
                IssueTabsMenu.Items.Add(new MenuItem(GetLocalResourceObject("History").ToString(), "TabHistory", "~/images/history.gif"));
                IssueTabsMenu.Items.Add(new MenuItem(GetLocalResourceObject("Notifications").ToString(), "TabNotifications", "~/images/email.gif"));
                IssueTabsMenu.Items.Add(new MenuItem(GetLocalResourceObject("SubIssues").ToString(), "TabSubIssues", "~/images/link.gif"));
                IssueTabsMenu.Items.Add(new MenuItem(GetLocalResourceObject("ParentIssues").ToString(), "TabParentIssues", "~/images/link.gif"));
                IssueTabsMenu.Items.Add(new MenuItem(GetLocalResourceObject("RelatedIssues").ToString(), "TabRelatedIssues", "~/images/link.gif"));
                IssueTabsMenu.Items.Add(new MenuItem(GetLocalResourceObject("Revisions").ToString(), "TabRevisions", "~/images/link.gif"));
                IssueTabsMenu.Items.Add(new MenuItem(GetLocalResourceObject("TimeTracking").ToString(), "TabTimeTracking", "~/images/time.gif"));
                IssueTabsMenu.Items[0].Selected = true;
                LoadTab(IssueTabsMenu.SelectedValue);
            }
        }
コード例 #4
0
ファイル: Default.aspx.cs プロジェクト: liyuanlin/bugnet
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param>
        protected void Page_Load(object sender, System.EventArgs e)
        {
            Page.Title = string.Format("{0} - {1}", GetLocalResourceObject("Page.Title"), HostSettingManager.Get(HostSettingNames.ApplicationTitle));

            if (!Page.IsPostBack)
            {
                lblApplicationTitle.Text = HostSettingManager.Get(HostSettingNames.ApplicationTitle);
                WelcomeMessage.Text      = HostSettingManager.Get(HostSettingNames.WelcomeMessage);

                Step1_Localize.Text = GetWelcomeLocalizedText(1, ResolveUrl("~/Administration/Projects/AddProject.aspx"));
                Step2_Localize.Text = GetWelcomeLocalizedText(2, ResolveUrl("~/Administration/Host/Settings.aspx?tid=1"));
                Step3_Localize.Text = GetWelcomeLocalizedText(3, ResolveUrl("~/Administration/Host/Settings.aspx?tid=2"));
            }

            if (ProjectManager.GetAllProjects().Count == 0)
            {
                // the user is logged in and there are no projects, show the "blank slate" help message for new installs
                BlankSlate.Visible = true;
                return;
            }

            if (!Context.User.Identity.IsAuthenticated)
            {
                //get all public available projects here
                if (Boolean.Parse(HostSettingManager.Get(HostSettingNames.AnonymousAccess)))
                {
                    rptProject.DataSource = ProjectManager.GetPublicProjects();
                }
                else
                {
                    rptProject.Visible = false;
                    lblMessage.Text    = GetLocalResourceObject("AnonymousAccessDisabled").ToString();
                    lblMessage.Visible = true;
                }
            }
            else
            {
                rptProject.DataSource = ProjectManager.GetByMemberUserName(User.Identity.Name);
            }

            rptProject.DataBind();

            if (!UserMessage.Visible)
            // remember that we could have set the message already!
            {
                if (rptProject.Items.Count == 0)
                {
                    if (!Context.User.Identity.IsAuthenticated)
                    {
                        lblMessage.Text     = GetLocalResourceObject("RegisterAndLoginMessage").ToString();
                        UserMessage.Visible = true;
                    }
                    else
                    {
                        lblMessage.Text     = GetLocalResourceObject("NoProjectsToViewMessage").ToString();
                        UserMessage.Visible = true;
                    }
                }
            }
        }
コード例 #5
0
 /// <summary>
 /// Inits this instance.
 /// </summary>
 public void Initialize()
 {
     //get hostsettings for this control here and bind them to ctrls
     ApplicationTitle.Text         = HostSettingManager.Get(HostSettingNames.ApplicationTitle);
     WelcomeMessageHtmlEditor.Text = HostSettingManager.Get(HostSettingNames.WelcomeMessage);
     DefaultUrl.Text        = HostSettingManager.Get(HostSettingNames.DefaultUrl);
     EnableGravatar.Checked = HostSettingManager.Get(HostSettingNames.EnableGravatar, true);
 }
コード例 #6
0
 /// <summary>
 /// Updates this instance.
 /// </summary>
 /// <returns></returns>
 public bool Update()
 {
     HostSettingManager.UpdateHostSetting(HostSettingNames.WelcomeMessage, WelcomeMessageHtmlEditor.Text.Trim());
     HostSettingManager.UpdateHostSetting(HostSettingNames.ApplicationTitle, ApplicationTitle.Text.Trim());
     HostSettingManager.UpdateHostSetting(HostSettingNames.DefaultUrl, DefaultUrl.Text.EndsWith("/") ? DefaultUrl.Text : DefaultUrl.Text = DefaultUrl.Text + "/");
     HostSettingManager.UpdateHostSetting(HostSettingNames.EnableGravatar, EnableGravatar.Checked.ToString());
     return(true);
 }
コード例 #7
0
        /// <summary>
        /// Updates this instance.
        /// </summary>
        public bool Update()
        {
            //Validate the subversion integration fields
            if (EnableRepoCreation.Checked)
            {
                RepoRootPath.Text   = RepoRootPath.Text.Trim();
                RepoBackupPath.Text = RepoBackupPath.Text.Trim();

                if (!RepoRootPath.Text.EndsWith(Path.DirectorySeparatorChar.ToString()))
                {
                    RepoRootPath.Text += Path.DirectorySeparatorChar;
                }

                if (RepoRootPath.Text.Length == 0 || !Directory.Exists(RepoRootPath.Text))
                {
                    Message1.Text     = "The repository root directory does not exist. To enable subversion administration a valid local folder must exist to hold the repositories.";
                    Message1.IconType = BugNET.UserControls.Message.MessageType.Error;
                    Message1.Visible  = true;
                    return(false);
                }

                //Make sure the backup path is valid if it was given
                if (RepoBackupPath.Text.Length > 0)
                {
                    if (!RepoBackupPath.Text.EndsWith(Path.DirectorySeparatorChar.ToString()))
                    {
                        RepoBackupPath.Text += Path.DirectorySeparatorChar;
                    }

                    if (!Directory.Exists(RepoBackupPath.Text))
                    {
                        Message1.Text     = "The repository backup directory does not exist. To disable backup capabilities leave the field empty.";
                        Message1.IconType = BugNET.UserControls.Message.MessageType.Error;
                        Message1.Visible  = true;
                        return(false);
                    }
                    else
                    {
                        if (string.Compare(RepoBackupPath.Text, RepoRootPath.Text, true) == 0)
                        {
                            Message1.Text     = "The repository root and backup path can not be the same directory.";
                            Message1.IconType = BugNET.UserControls.Message.MessageType.Error;
                            Message1.Visible  = true;
                            return(false);
                        }
                    }
                }
            }     //End subversion integration validation


            HostSettingManager.UpdateHostSetting(HostSettingNames.EnableRepositoryCreation, EnableRepoCreation.Checked.ToString());
            HostSettingManager.UpdateHostSetting(HostSettingNames.RepositoryRootPath, RepoRootPath.Text);
            HostSettingManager.UpdateHostSetting(HostSettingNames.RepositoryRootUrl, RepoRootUrl.Text);
            HostSettingManager.UpdateHostSetting(HostSettingNames.RepositoryBackupPath, RepoBackupPath.Text);
            HostSettingManager.UpdateHostSetting(HostSettingNames.SvnAdminEmailAddress, SvnAdminEmailAddress.Text);
            HostSettingManager.UpdateHostSetting(HostSettingNames.SvnHookPath, SvnHookPath.Text);
            return(true);
        }
コード例 #8
0
ファイル: CreateIssue.aspx.cs プロジェクト: KamilZet/BugNet
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                try
                {
                    IList <string> segments = Request.GetFriendlyUrlSegments();
                    ProjectId = Int32.Parse(segments[0]);
                }
                catch
                {
                    ProjectId = Request.QueryString.Get("pid", 0);
                }

                // If don't know project or issue then redirect to something missing page
                if (ProjectId == 0)
                {
                    ErrorRedirector.TransferToSomethingMissingPage(Page);
                }

                CurrentProject      = ProjectManager.GetById(ProjectId);
                litProject.Text     = CurrentProject.Name;
                litProjectCode.Text = CurrentProject.Code;

                if (CurrentProject == null)
                {
                    ErrorRedirector.TransferToNotFoundPage(Page);
                    return;
                }

                //security check: add issue
                if (!UserManager.HasPermission(ProjectId, Common.Permission.AddIssue.ToString()))
                {
                    ErrorRedirector.TransferToLoginPage(Page);
                }

                BindOptions();
                BindDefaultValues();

                //check users role permission for adding an attachment
                if (!Page.User.Identity.IsAuthenticated || !UserManager.HasPermission(ProjectId, Common.Permission.AddAttachment.ToString()))
                {
                    pnlAddAttachment.Visible = false;
                }
                else if (HostSettingManager.Get(HostSettingNames.AllowAttachments, false) && CurrentProject.AllowAttachments)
                {
                    pnlAddAttachment.Visible = true;
                }
            }

            //need to rebind these on every postback because of dynamic controls
            ctlCustomFields.DataSource = CustomFieldManager.GetByProjectId(ProjectId);
            ctlCustomFields.DataBind();

            // The ExpandIssuePaths method is called to handle
            // the SiteMapResolve event.
            SiteMap.SiteMapResolve += ExpandIssuePaths;
        }
コード例 #9
0
        /// <summary>
        /// Sends the specified recipient email.
        /// </summary>
        /// <param name="recipientEmail">The recipient email.</param>
        /// <param name="message">The message.</param>
        /// <returns></returns>
        public async Task Send(string recipientEmail, MailMessage message)
        {
            message.To.Clear();
            message.To.Add(recipientEmail);
            message.From = new MailAddress(HostSettingManager.HostEmailAddress);

            var smtpServer          = HostSettingManager.SmtpServer;
            var smtpPort            = int.Parse(HostSettingManager.Get(HostSettingNames.SMTPPort));
            var smtpAuthentictation = Convert.ToBoolean(HostSettingManager.Get(HostSettingNames.SMTPAuthentication));
            var smtpUseSSL          = Boolean.Parse(HostSettingManager.Get(HostSettingNames.SMTPUseSSL));

            // Only fetch the password if you need it
            var smtpUsername = string.Empty;
            var smtpPassword = string.Empty;
            var smtpDomain   = string.Empty;

            if (smtpAuthentictation)
            {
                smtpUsername = HostSettingManager.Get(HostSettingNames.SMTPUsername, string.Empty);
                smtpPassword = HostSettingManager.Get(HostSettingNames.SMTPPassword, string.Empty);
                smtpDomain   = HostSettingManager.Get(HostSettingNames.SMTPDomain, string.Empty);
            }

            var client = new SmtpClient {
                Host = smtpServer, Port = smtpPort, EnableSsl = smtpUseSSL
            };

            if (smtpAuthentictation)
            {
                client.UseDefaultCredentials = false;
                client.Credentials           = new NetworkCredential(smtpUsername, smtpPassword, smtpDomain);
            }

            client.SendCompleted += (s, e) =>
            {
                if (e.Error != null)
                {
                    // log the error message
                    Log.Error(e.Error);
                }

                client.Dispose();
                message.Dispose();
            };

            await Task.Run(() =>
            {
                try
                {
                    client.SendAsync(message, null);
                }
                catch (Exception e)
                {
                    Log.Error(e);
                }
            });
        }
コード例 #10
0
        /// <summary>
        /// Handles the ItemDataBound event of the AttachmentsDataGrid control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridItemEventArgs"/> instance containing the event data.</param>
        protected void AttachmentsDataGridItemDataBound(object sender, DataGridItemEventArgs e)
        {
            if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem) return;

            var currentAttachment = (IssueAttachment)e.Item.DataItem;
            var lnkAttachment = e.Item.FindControl("lnkAttachment") as HtmlAnchor;

            if (lnkAttachment != null)
            {
                if (HostSettingManager.Get(HostSettingNames.AttachmentStorageType, 0) == (int)IssueAttachmentStorageTypes.FileSystem)
                {
                    lnkAttachment.InnerText = IssueAttachmentManager.StripGuidFromFileName(currentAttachment.FileName);
                }
                else
                {
                    lnkAttachment.InnerText = currentAttachment.FileName;
                }
                lnkAttachment.HRef = string.Concat("DownloadAttachment.axd?id=", currentAttachment.Id.ToString());
            }

            var lblSize = e.Item.FindControl("lblSize") as Label;

            if (lblSize == null) return;

            float size;
            string label;

            if (currentAttachment.Size > 1000)
            {
                size = currentAttachment.Size / 1000f;
                label = string.Format("{0} kb", size.ToString("##,##"));
            }
            else
            {
                size = currentAttachment.Size;
                label = string.Format("{0} b", size.ToString("##,##"));
            }

            lblSize.Text = label;

            var cmdDelete = e.Item.FindControl("cmdDelete") as ImageButton;

            // Check if the current user is Authenticated and has the permission to delete a comment			
            if (!Page.User.Identity.IsAuthenticated || !UserManager.HasPermission(ProjectId, Common.Permission.DeleteAttachment.ToString())) return;

            if (cmdDelete == null) return;

            cmdDelete.Attributes.Add("onclick", string.Format("return confirm('{0}');", GetLocalResourceObject("DeleteAttachment").ToString().Trim().JsEncode()));
            cmdDelete.Visible = false;

            // Check if it is the original user, the project admin or a super user trying to delete the comment.
            if (currentAttachment.CreatorUserName.ToLower() == Context.User.Identity.Name.ToLower() || UserManager.IsSuperUser() || UserManager.IsInRole(ProjectId, Globals.ProjectAdminRole))
            {
                cmdDelete.Visible = true;
            }
        }
コード例 #11
0
ファイル: Site.Master.cs プロジェクト: gautamtrantor/bugnet
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Convert.ToInt32(HostSettingManager.Get(HostSettingNames.UserRegistration)) == (int)UserRegistration.None)
            {
                if (LoginView1.FindControl("RegisterLink") != null)
                {
                    LoginView1.FindControl("RegisterLink").Visible = false;
                }
            }

            var oHelper = new SuckerFishMenuHelper(ProjectId);

            litMenu.Text = oHelper.GetHtml();

            if (HostSettingManager.Get(HostSettingNames.EnableGravatar, true))
            {
                var user = Membership.GetUser(Security.GetUserName());
                if (user != null)
                {
                    Image img = (System.Web.UI.WebControls.Image)LoginView1.FindControl("Avatar");
                    img.ImageUrl = PresentationUtils.GetGravatarImageUrl(user.Email, 32);
                }
            }

            ProjectsList.DataTextField  = "Name";
            ProjectsList.DataValueField = "Id";

            if (!Page.IsPostBack)
            {
                string localizedSelectProject = GetGlobalResourceObject("SharedResources", "SelectProject").ToString();
                if (Page.User.Identity.IsAuthenticated)
                {
                    ProjectsList.DataSource = ProjectManager.GetByMemberUserName(Security.GetUserName(), true);
                    ProjectsList.DataBind();
                    ProjectsList.Items.Insert(0, new ListItem(localizedSelectProject));
                }
                else if (!Page.User.Identity.IsAuthenticated && Boolean.Parse(HostSettingManager.Get(HostSettingNames.AnonymousAccess)))
                {
                    ProjectsList.DataSource = ProjectManager.GetPublicProjects();
                    ProjectsList.DataBind();
                    ProjectsList.Items.Insert(0, new ListItem(localizedSelectProject));
                }
                else
                {
                    ProjectsList.Visible = false;
                }

                var item = ProjectsList.Items.FindByValue(ProjectId.ToString());

                if (item != null)
                {
                    ProjectsList.SelectedValue = item.Value;
                }
            }
        }
コード例 #12
0
ファイル: Login.aspx.cs プロジェクト: feliperomero3/bugnetapp
        protected void Page_Load(object sender, EventArgs e)
        {
            Register_Localize.Text  = GetLocalizedText(ResolveUrl("~/Account/Register.aspx"));
            OpenAuthLogin.ReturnUrl = Request.QueryString["ReturnUrl"];
            this.Form.DefaultButton = this.LoginView.FindControl("LoginButton").UniqueID;

            if (Convert.ToInt32(HostSettingManager.Get(HostSettingNames.UserRegistration)) == (int)UserRegistration.None)
            {
                Register_Localize.Visible = false;
            }
        }
コード例 #13
0
        /// <summary>
        /// Updates this instance.
        /// </summary>
        public bool Update()
        {
            System.Configuration.Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
            HttpRuntimeSection section = config.GetSection("system.web/httpRuntime") as HttpRuntimeSection;

            HostSettingManager.UpdateHostSetting(HostSettingNames.AllowAttachments, AllowAttachments.Checked.ToString());
            HostSettingManager.UpdateHostSetting(HostSettingNames.AttachmentStorageType, AttachmentStorageType.SelectedValue);
            HostSettingManager.UpdateHostSetting(HostSettingNames.AllowedFileExtensions, AllowedFileExtentions.Text.Trim());
            HostSettingManager.UpdateHostSetting(HostSettingNames.FileSizeLimit, section.MaxRequestLength.ToString());
            HostSettingManager.UpdateHostSetting(HostSettingNames.AttachmentUploadPath, txtUploadPath.Text.Trim().EndsWith(@"\") ? txtUploadPath.Text.Trim() : txtUploadPath.Text.Trim() + @"\");
            return(true);
        }
コード例 #14
0
        /// <summary>
        /// Inits this instance.
        /// </summary>
        public void Initialize()
        {
            bool enableRepoCreation;

            Boolean.TryParse(HostSettingManager.Get(HostSettingNames.EnableRepositoryCreation), out enableRepoCreation);

            EnableRepoCreation.Checked = enableRepoCreation;
            RepoRootPath.Text          = HostSettingManager.Get(HostSettingNames.RepositoryRootPath);
            RepoRootUrl.Text           = HostSettingManager.Get(HostSettingNames.RepositoryRootUrl);
            RepoBackupPath.Text        = HostSettingManager.Get(HostSettingNames.RepositoryBackupPath);
            SvnAdminEmailAddress.Text  = HostSettingManager.Get(HostSettingNames.SvnAdminEmailAddress);
            SvnHookPath.Text           = HostSettingManager.Get(HostSettingNames.SvnHookPath);
        }
コード例 #15
0
ファイル: POP3Settings.ascx.cs プロジェクト: zdzislaw/bugnet
        /// <summary>
        /// Updates this instance.
        /// </summary>
        public bool Update()
        {
            var currentState = Boolean.Parse(HostSettingManager.Get(HostSettingNames.Pop3ReaderEnabled));

            HostSettingManager.UpdateHostSetting(HostSettingNames.Pop3ReaderEnabled, POP3ReaderEnabled.Checked.ToString());
            HostSettingManager.UpdateHostSetting(HostSettingNames.Pop3Server, POP3Server.Text);
            HostSettingManager.UpdateHostSetting(HostSettingNames.Pop3UseSSL, POP3UseSSL.Checked.ToString());
            HostSettingManager.UpdateHostSetting(HostSettingNames.Pop3Username, POP3Username.Text);
            HostSettingManager.UpdateHostSetting(HostSettingNames.Pop3Password, POP3Password.Text);
            HostSettingManager.UpdateHostSetting(HostSettingNames.Pop3Interval, POP3Interval.Text);
            HostSettingManager.UpdateHostSetting(HostSettingNames.Pop3DeleteAllMessages, POP3DeleteMessages.Checked.ToString());
            HostSettingManager.UpdateHostSetting(HostSettingNames.Pop3InlineAttachedPictures, POP3InlineAttachedPictures.Checked.ToString());
            HostSettingManager.UpdateHostSetting(HostSettingNames.Pop3AllowReplyToEmail, POP3AllowReplyTo.Checked.ToString());
            HostSettingManager.UpdateHostSetting(HostSettingNames.Pop3BodyTemplate, POP3BodyTemplate.Text);
            HostSettingManager.UpdateHostSetting(HostSettingNames.Pop3ReportingUsername, POP3ReportingUsername.Text);
            HostSettingManager.UpdateHostSetting(HostSettingNames.Pop3Port, POP3Port.Text);
            HostSettingManager.UpdateHostSetting(HostSettingNames.Pop3ProcessAttachments, POP3ProcessAttachments.Checked.ToString());

            try
            {
                var moduleFound = false;

                if ((currentState != POP3ReaderEnabled.Checked))
                {
                    var modules = HttpContext.Current.ApplicationInstance.Modules;

                    // should only be one
                    foreach (var module in modules.Keys.Cast <string>().Select(key => modules[key]).Where(module => module.GetType().ToString().Contains("MailboxReaderModule")))
                    {
                        moduleFound = true;
                        module.Init(HttpContext.Current.ApplicationInstance);
                    }

                    if (POP3ReaderEnabled.Checked && !moduleFound)
                    {
                        var parentPage = Page as Settings;

                        if (parentPage != null)
                        {
                            parentPage.Message1.ShowWarningMessage(GetLocalResourceObject("MailboxReaderModuleMissing").ToString(), true);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Warn(ex.Message);
            }

            return(true);
        }
コード例 #16
0
ファイル: MailSettings.ascx.cs プロジェクト: KamilZet/BugNet
 /// <summary>
 /// Updates this instance.
 /// </summary>
 /// <returns></returns>
 public bool Update()
 {
     HostSettingManager.UpdateHostSetting(HostSettingNames.HostEmailAddress, HostEmail.Text);
     HostSettingManager.UpdateHostSetting(HostSettingNames.SMTPServer, SMTPServer.Text);
     HostSettingManager.UpdateHostSetting(HostSettingNames.SMTPAuthentication, SMTPEnableAuthentication.Checked.ToString());
     HostSettingManager.UpdateHostSetting(HostSettingNames.SMTPUsername, SMTPUsername.Text);
     HostSettingManager.UpdateHostSetting(HostSettingNames.SMTPPassword, SMTPPassword.Text);
     HostSettingManager.UpdateHostSetting(HostSettingNames.SMTPDomain, SMTPDomain.Text);
     HostSettingManager.UpdateHostSetting(HostSettingNames.SMTPPort, SMTPPort.Text);
     HostSettingManager.UpdateHostSetting(HostSettingNames.SMTPUseSSL, SMTPUseSSL.Checked.ToString());
     HostSettingManager.UpdateHostSetting(HostSettingNames.SMTPEMailFormat, SMTPEmailFormat.SelectedValue);
     HostSettingManager.UpdateHostSetting(HostSettingNames.SMTPEmailTemplateRoot, SMTPEmailTemplateRoot.Text);
     return(true);
 }
コード例 #17
0
ファイル: MailSettings.ascx.cs プロジェクト: KamilZet/BugNet
 /// <summary>
 /// Initializes this instance.
 /// </summary>
 public void Initialize()
 {
     HostEmail.Text  = HostSettingManager.Get(HostSettingNames.HostEmailAddress);
     SMTPServer.Text = HostSettingManager.Get(HostSettingNames.SMTPServer);
     SMTPEnableAuthentication.Checked = Boolean.Parse(HostSettingManager.Get(HostSettingNames.SMTPAuthentication));
     SMTPUsername.Text  = HostSettingManager.Get(HostSettingNames.SMTPUsername);
     SMTPPort.Text      = HostSettingManager.Get(HostSettingNames.SMTPPort);
     SMTPUseSSL.Checked = Boolean.Parse(HostSettingManager.Get(HostSettingNames.SMTPUseSSL));
     SMTPPassword.Attributes.Add("value", HostSettingManager.Get(HostSettingNames.SMTPPassword));
     ShowSMTPAuthenticationFields();
     SMTPEmailFormat.SelectedValue = HostSettingManager.Get(HostSettingNames.SMTPEMailFormat, (int)EmailFormatType.Text).ToString();
     SMTPEmailTemplateRoot.Text    = HostSettingManager.Get(HostSettingNames.SMTPEmailTemplateRoot, "~/templates");
     SMTPDomain.Text = HostSettingManager.Get(HostSettingNames.SMTPDomain, string.Empty);
 }
コード例 #18
0
        /// <summary>
        /// Updates this instance.
        /// </summary>
        public bool Update()
        {
            if (EmailErrors.Checked)
            {
                LoggingManager.ConfigureEmailLoggingAppender();
            }
            else
            {
                LoggingManager.RemoveEmailLoggingAppender();
            }

            HostSettingManager.UpdateHostSetting(HostSettingNames.ErrorLoggingEmailAddress, ErrorLoggingEmail.Text);
            HostSettingManager.UpdateHostSetting(HostSettingNames.EmailErrors, EmailErrors.Checked.ToString());
            return(true);
        }
コード例 #19
0
 /// <summary>
 /// Inits this instance.
 /// </summary>
 public void Initialize()
 {
     POP3ReaderEnabled.Checked      = Boolean.Parse(HostSettingManager.Get(HostSettingNames.Pop3ReaderEnabled));
     POP3Server.Text                = HostSettingManager.Get(HostSettingNames.Pop3Server);
     POP3UseSSL.Checked             = Boolean.Parse(HostSettingManager.Get(HostSettingNames.Pop3UseSSL));
     POP3Username.Text              = HostSettingManager.Get(HostSettingNames.Pop3Username);
     POP3Interval.Text              = HostSettingManager.Get(HostSettingNames.Pop3Interval);
     POP3DeleteMessages.Checked     = Boolean.Parse(HostSettingManager.Get(HostSettingNames.Pop3DeleteAllMessages));
     POP3ProcessAttachments.Checked = Boolean.Parse(HostSettingManager.Get(HostSettingNames.Pop3InlineAttachedPictures));
     POP3BodyTemplate.Text          = HostSettingManager.Get(HostSettingNames.Pop3BodyTemplate);
     POP3ReportingUsername.Text     = HostSettingManager.Get(HostSettingNames.Pop3ReportingUsername);
     POP3Password.Attributes.Add("value", HostSettingManager.Get(HostSettingNames.Pop3Password));
     POP3Port.Text = HostSettingManager.Get(HostSettingNames.Pop3Port);
     POP3ProcessAttachments.Checked     = Boolean.Parse(HostSettingManager.Get(HostSettingNames.Pop3ProcessAttachments));
     POP3InlineAttachedPictures.Checked = Boolean.Parse(HostSettingManager.Get(HostSettingNames.Pop3InlineAttachedPictures));
 }
コード例 #20
0
        /// <summary>
        /// Inits this instance.
        /// </summary>
        public void Initialize()
        {
            var users = UserManager.GetAllUsers();

            AdminNotificationUser.DataSource     = users;
            AdminNotificationUser.DataTextField  = "DisplayName";
            AdminNotificationUser.DataValueField = "UserName";
            AdminNotificationUser.DataBind();

            var adminNotifyUsername = HostSettingManager.Get(HostSettingNames.AdminNotificationUsername);

            if (users.SingleOrDefault(u => u.UserName == adminNotifyUsername) != null)
            {
                AdminNotificationUser.SelectedValue = adminNotifyUsername;
            }
        }
コード例 #21
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // redirect to access denied if user registration disabled
            switch (Convert.ToInt32(HostSettingManager.Get(HostSettingNames.UserRegistration)))
            {
            case (int)UserRegistration.None:
                Response.Redirect("~/Errors/AccessDenied", true);
                break;

            case (int)UserRegistration.Verified:
                RegisterUser.DisableCreatedUser = true;
                RegisterUser.CompleteStep.ContentTemplateContainer.FindControl("VerificationPanel").Visible = true;
                break;
            }

            RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];
        }
コード例 #22
0
ファイル: MailSettings.ascx.cs プロジェクト: KamilZet/BugNet
        /// <summary>
        /// Tests the email settings.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        protected void TestEmailSettings_Click(object sender, EventArgs e)
        {
            try
            {
                if (!string.IsNullOrEmpty(HostEmail.Text))
                {
                    var smtp = new SmtpClient(SMTPServer.Text, int.Parse(SMTPPort.Text))
                    {
                        EnableSsl = SMTPUseSSL.Checked
                    };

                    if (SMTPEnableAuthentication.Checked)
                    {
                        smtp.UseDefaultCredentials = false;
                        smtp.Credentials           = new NetworkCredential(SMTPUsername.Text, SMTPPassword.Text, SMTPDomain.Text);
                    }

                    var message = new MailMessage(HostEmail.Text, HostEmail.Text,
                                                  string.Format(
                                                      GetLocalResourceObject("EmailConfigurationTestSubject").ToString(),
                                                      HostSettingManager.Get(
                                                          HostSettingNames.ApplicationTitle)), string.Empty)
                    {
                        IsBodyHtml = false
                    };

                    smtp.Send(message);

                    lblEmail.Text      = GetLocalResourceObject("EmailConfigurationTestSuccess").ToString();
                    lblEmail.ForeColor = Color.Green;
                }
                else
                {
                    lblEmail.Text      = GetLocalResourceObject("MissingHostEmail").ToString();
                    lblEmail.ForeColor = Color.Red;
                }
            }
            catch (Exception ex)
            {
                lblEmail.Text      = string.Format(GetLocalResourceObject("SeeErrorLog").ToString(), ex.Message);
                lblEmail.ForeColor = Color.Red;
                Log.Error(GetLocalResourceObject("ConfigurationTestError").ToString(), ex);
            }
        }
コード例 #23
0
        /// <summary>
        /// Initializes only on the first request
        /// </summary>
        /// <param name="context">The context.</param>
        public static void Init(HttpContext context)
        {
            if (_sInitializedAlready)
            {
                return;
            }

            lock (Locker)
            {
                if (_sInitializedAlready)
                {
                    return;
                }

                //First check if we are upgrading/installing
                if (HttpContext.Current.Request.Url.LocalPath.ToLower().EndsWith("install.aspx"))
                {
                    return;
                }


                switch (UpgradeManager.GetUpgradeStatus())
                {
                case BugNET.Common.UpgradeStatus.Install:
                case BugNET.Common.UpgradeStatus.Upgrade:
                    HttpContext.Current.Response.Redirect("~/Install/Install.aspx", true);
                    return;
                }


                //load the host settings into the application cache
                HostSettingManager.GetHostSettings();

                LoggingManager.ConfigureLogging();

                AuthConfig.RegisterOpenAuth();

                Log.Info("Application Start");

                // Perform first-request initialization here ...
                _sInitializedAlready = true;
            }
        }
コード例 #24
0
ファイル: AuthConfig.cs プロジェクト: KamilZet/BugNet
        public static void RegisterOpenAuth()
        {
            // See http://go.microsoft.com/fwlink/?LinkId=252803 for details on setting up this ASP.NET
            // application to support logging in via external services.

            if (HostSettingManager.Get(Common.HostSettingNames.TwitterAuthentication, false) &&
                HostSettingManager.Get(Common.HostSettingNames.TwitterConsumerKey) != string.Empty &&
                HostSettingManager.Get(Common.HostSettingNames.TwitterConsumerSecret) != string.Empty)
            {
                OpenAuth.AuthenticationClients.AddTwitter(
                    consumerKey: HostSettingManager.Get(Common.HostSettingNames.TwitterConsumerKey),
                    consumerSecret: HostSettingManager.Get(Common.HostSettingNames.TwitterConsumerSecret));
            }

            if (HostSettingManager.Get(Common.HostSettingNames.FacebookAuthentication, false) &&
                HostSettingManager.Get(Common.HostSettingNames.FacebookAppId) != string.Empty &&
                HostSettingManager.Get(Common.HostSettingNames.FacebookAppSecret) != string.Empty)
            {
                OpenAuth.AuthenticationClients.AddFacebook(
                    appId: HostSettingManager.Get(Common.HostSettingNames.FacebookAppId),
                    appSecret: HostSettingManager.Get(Common.HostSettingNames.FacebookAppSecret));
            }

            if (HostSettingManager.Get(Common.HostSettingNames.MicrosoftAuthentication, false) &&
                HostSettingManager.Get(Common.HostSettingNames.MicrosoftClientId, string.Empty) != string.Empty &&
                HostSettingManager.Get(Common.HostSettingNames.MicrosoftClientSecret, string.Empty) != string.Empty)
            {
                OpenAuth.AuthenticationClients.AddMicrosoft(
                    clientId: HostSettingManager.Get(Common.HostSettingNames.MicrosoftClientId),
                    clientSecret: HostSettingManager.Get(Common.HostSettingNames.MicrosoftClientSecret));
            }

            if (HostSettingManager.Get(Common.HostSettingNames.GoogleAuthentication, false) &&
                HostSettingManager.Get(Common.HostSettingNames.GoogleClientId, string.Empty) != string.Empty &&
                HostSettingManager.Get(Common.HostSettingNames.GoogleClientSecret, string.Empty) != string.Empty)
            {
                OpenAuth.AuthenticationClients.Add("Google", () => new GoogleOAuth2Client(
                                                       HostSettingManager.Get(Common.HostSettingNames.GoogleClientId),
                                                       HostSettingManager.Get(Common.HostSettingNames.GoogleClientSecret)));
            }

            OpenAuth.ConnectionString = ConfigurationManager.ConnectionStrings["BugNET"].ConnectionString;
        }
コード例 #25
0
        /// <summary>
        /// Initializes this instance.
        /// </summary>
        public void Initialize()
        {
            AllowAttachments.Checked         = HostSettingManager.Get(HostSettingNames.AllowAttachments, false);
            AttachmentStorageTypeRow.Visible = AllowAttachments.Checked;
            if (AttachmentStorageType.Visible)
            {
                AttachmentStorageType.SelectedValue = Convert.ToInt32(HostSettingManager.Get(HostSettingNames.AttachmentStorageType)).ToString();
                AttachmentUploadPathRow.Visible     = AllowAttachments.Checked && AttachmentStorageType.SelectedValue == "1";
            }

            AllowedFileExtentions.Text = HostSettingManager.Get(HostSettingNames.AllowedFileExtensions);

            System.Configuration.Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
            HttpRuntimeSection section     = config.GetSection("system.web/httpRuntime") as HttpRuntimeSection;
            double             maxFileSize = Math.Round(section.MaxRequestLength / 1024.0, 1);

            FileSizeLimit.Text = string.Format("{0} MB", maxFileSize.ToString());
            txtUploadPath.Text = HostSettingManager.Get(HostSettingNames.AttachmentUploadPath);
        }
コード例 #26
0
        protected void RegisterUser_CreatedUser(object sender, EventArgs e)
        {
            string continueUrl = RegisterUser.ContinueDestinationPageUrl;

            if (!OpenAuth.IsLocalUrl(continueUrl))
            {
                continueUrl = "~/";
            }

            var user        = UserManager.GetUser(RegisterUser.UserName);
            var profile     = new WebProfile().GetProfile(user.UserName);
            var displayName = (TextBox)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("DisplayName");
            var firstName   = (TextBox)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("FirstName");
            var lastName    = (TextBox)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("LastName");

            profile.DisplayName = displayName.Text;
            profile.FirstName   = firstName.Text;
            profile.LastName    = lastName.Text;

            profile.Save();

            // add users to all auto assigned roles
            var roles = RoleManager.GetAll();

            foreach (var r in roles.Where(r => r.AutoAssign))
            {
                RoleManager.AddUser(user.UserName, r.Id);
            }

            //send notification this user was created
            UserManager.SendUserRegisteredNotification(user.UserName);

            // send user verification email if enabled
            if (HostSettingManager.Get(HostSettingNames.UserRegistration, (int)UserRegistration.Verified) == (int)UserRegistration.Verified)
            {
                UserManager.SendUserVerificationNotification(user);
            }
            else
            {
                Response.Redirect(continueUrl);
            }
        }
コード例 #27
0
        /// <summary>
        /// Inits this instance.
        /// </summary>
        public void Initialize()
        {
            IEnumerable <string> resources     = ResourceManager.GetInstalledLanguageResources();
            List <ListItem>      resourceItems = new List <ListItem>();

            foreach (string code in resources)
            {
                CultureInfo cultureInfo = new CultureInfo(code, false);
                resourceItems.Add(new ListItem(cultureInfo.DisplayName, code));
            }



            ApplicationDefaultLanguage.DataSource = resourceItems;
            ApplicationDefaultLanguage.DataBind();
            LanguagesGridView.DataSource = resourceItems;
            LanguagesGridView.DataBind();

            ApplicationDefaultLanguage.SelectedValue = HostSettingManager.Get(HostSettingNames.ApplicationDefaultLanguage);
        }
コード例 #28
0
        /// <summary>
        /// Inits this instance.
        /// </summary>
        public void Initialize()
        {
            Project projectToUpdate = ProjectManager.GetById(ProjectId);

            svnUrl.Text = projectToUpdate.SvnRepositoryUrl;

            bool svnAdminEnabled = bool.Parse(HostSettingManager.Get(HostSettingNames.EnableRepositoryCreation));

            if (svnAdminEnabled)
            {
                createErrorLbl.Text    = "";
                createRepoBttn.Enabled = true;
                repoName.Enabled       = true;
            }
            else
            {
                createErrorLbl.Text    = GetLocalResourceObject("RepositoryCreationDisabled").ToString();
                createRepoBttn.Enabled = false;
                repoName.Enabled       = false;
            }
        }
コード例 #29
0
        /// <summary>
        /// Handles the Click event of the createRepoBttn control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        protected void createRepoBttn_Click(object sender, EventArgs e)
        {
            string name = repoName.Text.Trim();

            if (!SourceIntegrationManager.IsValidSubversionName(name))
            {
                createErrorLbl.Text = LoggingManager.GetErrorMessageResource("InvalidRepositoryName");
                return;
            }

            svnOut.Text = SourceIntegrationManager.CreateRepository(name);

            string rootUrl = HostSettingManager.Get(HostSettingNames.RepositoryRootUrl);

            if (!rootUrl.EndsWith("/"))
            {
                rootUrl += "/";
            }

            svnUrl.Text = rootUrl + name;
        }
コード例 #30
0
ファイル: MailBoxReaderJob.cs プロジェクト: KamilZet/BugNet
        public void Execute(IJobExecutionContext context)
        {
            Log.Info("QUARTZ: Scheduled Job started");

            var mailBoxArgs = new MailBoxReaderArgs
            {
                Server   = HostSettingManager.Get(HostSettingNames.Pop3Server),
                Port     = Convert.ToInt32(HostSettingManager.Get(HostSettingNames.Pop3Port)),
                UseSSL   = Boolean.Parse(HostSettingManager.Get(HostSettingNames.Pop3UseSSL)),
                Username = HostSettingManager.Get(HostSettingNames.Pop3Username),
                Password = HostSettingManager.Get(HostSettingNames.Pop3Password),
                ProcessInlineAttachedPictures = Convert.ToBoolean(HostSettingManager.Get(HostSettingNames.Pop3InlineAttachedPictures)),
                BodyTemplate       = HostSettingManager.Get(HostSettingNames.Pop3BodyTemplate),
                DeleteAllMessages  = Convert.ToBoolean(HostSettingManager.Get(HostSettingNames.Pop3DeleteAllMessages)),
                ReportingUserName  = HostSettingManager.Get(HostSettingNames.Pop3ReportingUsername),
                ProcessAttachments = Convert.ToBoolean(HostSettingManager.Get(HostSettingNames.Pop3ProcessAttachments))
            };

            var mailboxReader = new MailboxReader(mailBoxArgs);

            mailboxReader.ReadMail();
        }