Esempio n. 1
0
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            Items.Addon addon = CurrentPage as Items.Addon;

            bool isAuthorizedToModify = IsAuthorized(Page.User);

            if (addon == null && isAuthorizedToModify)
            {
                Register.JQuery(Page);
            }
            else if (addon != null && isAuthorizedToModify && IsAuthor(Page.User, addon))
            {
                rfvAddon.Enabled = false;
                LoadAddon(addon);

                Register.JQuery(Page);
            }
            else
            {
                pnlAddon.Visible        = false;
                cvAuthenticated.IsValid = false;
            }
        }
Esempio n. 2
0
        protected void save_Click(object sender, EventArgs e)
        {
            Page.Validate();
            cvAuthenticated.IsValid = IsAuthorized(Page.User);
            if (!Page.IsValid)
            {
                return;
            }

            Items.Addon addon = CurrentItem as Items.Addon;
            if (addon == null)
            {
                addon = Engine.Resolve <ContentActivator>().CreateInstance <Items.Addon>(CurrentPage);
                addon.AuthorUserName = Page.User.Identity.Name;
            }
            else if (!IsAuthor(Page.User, addon))
            {
                cvAuthenticated.IsValid = false;
                return;
            }

            addon.Title = Encode(txtTitle.Text);
            addon.Name  = Engine.Resolve <HtmlFilter>().CleanUrl(txtTitle.Text);

            addon.Text              = Encode(txtDescription.Text);
            addon.AddonVersion      = Encode(txtVersion.Text);
            addon.Category          = (Items.CodeCategory)AssembleSelected(cblCategory.Items);
            addon.ContactEmail      = Encode(txtEmail.Text);
            addon.ContactName       = Encode(txtName.Text);
            addon.HomepageUrl       = Encode(txtHomepage.Text);
            addon.LastTestedVersion = Encode(txtN2Version.Text);
            addon.Requirements      = (Items.Requirement)AssembleSelected(cblRequirements.Items);
            addon.SourceCodeUrl     = Encode(txtSource.Text);
            addon.Summary           = Encode(txtSummary.Text);
            if (fuAddon.PostedFile.ContentLength > 0)
            {
                IFileSystem fs = Engine.Resolve <IFileSystem>();

                if (!string.IsNullOrEmpty(addon.UploadedFileUrl))
                {
                    if (File.Exists(addon.UploadedFileUrl))
                    {
                        File.Delete(addon.UploadedFileUrl);
                    }
                }
                string fileName = Path.GetFileName(fuAddon.PostedFile.FileName);
                Url    folder   = Url.Parse(Engine.EditManager.UploadFolders[0]).AppendSegment("Addons");
                if (!fs.DirectoryExists(folder))
                {
                    fs.CreateDirectory(folder);
                }

                addon.UploadedFileUrl = folder.AppendSegment(Path.GetFileNameWithoutExtension(fileName), Path.GetExtension(fileName));
                fs.WriteFile(addon.UploadedFileUrl, fuAddon.PostedFile.InputStream);
            }

            Engine.Persister.Save(addon);
            Response.Redirect(addon.Url);
        }
Esempio n. 3
0
        private void LoadAddon(Items.Addon addon)
        {
            txtTitle.Text = Decode(addon.Title);

            txtVersion.Text = Decode(addon.AddonVersion);

            Select(cblCategory.Items, (int)addon.Category);
            txtEmail.Text     = Decode(addon.ContactEmail);
            txtName.Text      = Decode(addon.ContactName);
            txtHomepage.Text  = Decode(addon.HomepageUrl);
            txtN2Version.Text = Decode(addon.LastTestedVersion);
            Select(cblRequirements.Items, (int)addon.Requirements);
            txtSource.Text      = Decode(addon.SourceCodeUrl);
            txtSummary.Text     = Decode(addon.Summary);
            txtDescription.Text = Encode(addon.Text);
        }
Esempio n. 4
0
 private bool IsAuthor(IPrincipal user, Items.Addon addon)
 {
     return(string.Equals(addon.AuthorUserName ?? addon.SavedBy, user.Identity.Name, StringComparison.InvariantCultureIgnoreCase) ||
            Engine.SecurityManager.IsEditor(Page.User));
 }