Пример #1
0
        private void DoSignUp(string name, string email, string secret)
        {
            var rules = SignUpRules.Rules
                        .Where(d => email.EndsWith($"@{d.Domain}", StringComparison.OrdinalIgnoreCase))
                        .ToArray();

            if (!rules.Any())
            {
                RenderError("The provided email is not in allowed domains list", false);

                return;
            }

            if (!string.IsNullOrEmpty(secret))
            {
                rules = rules
                        .Where(x => string.Equals(x.Secret, secret, StringComparison.Ordinal))
                        .ToArray();

                if (!rules.Any())
                {
                    RenderError("The provided email is not in allowed domains list, or the secret is invalid", false);

                    return;
                }
            }

            var rule            = rules.First() ?? throw new ArgumentNullException();
            var roles           = rule.Roles;
            var isAdministrator = rule.IsAdministrator;
            var username        = name.Contains("\\")
                ? name
                : $"sitecore\\{name}";

            using (new SecurityDisabler())
            {
                if (MembershipProvider.GetUser(username, false) != null)
                {
                    RenderError("The user already exists.", false);

                    return;
                }

                MembershipProvider.CreateUserAccount(username, email, isAdministrator, roles, SignUpRules.FeatureName);

                // reset password
                var pipeline = Assert.ResultNotNull(PipelineFactory.GetPipeline("passwordRecovery"), "passwordRecovery pipeline was not found");
                pipeline.Start(new PasswordRecoveryArgs(Context)
                {
                    Username = username
                });

                RenderSuccess("The user was created. Check your mailbox for newly generated password.");
            }
        }
        protected override void OnLoad(EventArgs e)
        {
            Assert.ArgumentNotNull(e, "e");
            base.OnLoad(e);
            if (this.IsEvent || this.Request.Files.Count <= 0)
            {
                return;
            }
            string filename = FileHandle.GetFilename(this.Request.Form["Path"]);

            if (string.IsNullOrEmpty(filename))
            {
                SecurityException securityException = new SecurityException("Upload path invalid");
                Log.Error("File upload handle not found. Handle: " + this.Request.Form["Path"], securityException, this);
                throw securityException;
            }
            var string1 = StringUtil.GetString(new []
            {
                filename
            });
            string string2 = StringUtil.GetString(new []
            {
                this.Request.Form["Item"]
            });
            string string3 = StringUtil.GetString(new []
            {
                this.Request.Form["Language"]
            });
            bool flag1 = StringUtil.GetString(new []
            {
                this.Request.Form["Overwrite"]
            }) == "1";
            bool flag2 = StringUtil.GetString(new []
            {
                this.Request.Form["Unzip"]
            }) == "1";
            bool flag3 = StringUtil.GetString(new []
            {
                this.Request.Form["Versioned"]
            }) == "1";

            UploadArgs args = new UploadArgs
            {
                Files = this.Request.Files
            };

            if (!string.IsNullOrEmpty(string2))
            {
                args.Folder      = string2;
                args.Destination = UploadDestination.Database;
            }
            else
            {
                args.Folder      = string1;
                args.Destination = UploadDestination.File;
                this.SetFileOnlyIfExists(args);
            }
            args.Overwrite             = flag1;
            args.Unpack                = flag2;
            args.Versioned             = flag3;
            args.Language              = Language.Parse(string3);
            args.Parameters["message"] = "packager:endupload";
            PipelineFactory.GetPipeline("uiUpload").Start(args);
        }
        public bool UploadNCreate(FileUpload fileUpload, HttpFileCollection files, string albumID)
        {
            bool flag = true;
            bool result;

            try
            {
                if (fileUpload.PostedFile != null && fileUpload.PostedFile.ContentLength != 0)
                {
                    if (string.IsNullOrEmpty(albumID))
                    {
                        this.PageErrorMsg = "You should choose album for uploading";
                        result            = false;
                        return(result);
                    }
                    if (!this.IsMimeTypeAllowed(fileUpload.PostedFile.ContentType, PhotoAlbumConstants.allowedMimeTypes))
                    {
                        this.PageErrorMsg = "You should upload only jpeg, jpg images or zip archives";
                        result            = false;
                        return(result);
                    }
                    using (new SecurityDisabler())
                    {
                        Item       item       = this.CurrentMediaFolder;
                        UploadArgs uploadArgs = new UploadArgs();
                        uploadArgs.Files       = files;
                        uploadArgs.Folder      = item.Paths.Path;
                        uploadArgs.Overwrite   = false;
                        uploadArgs.Unpack      = true;
                        uploadArgs.Versioned   = false;
                        uploadArgs.Language    = Context.Language;
                        uploadArgs.Destination = UploadDestination.Database;
                        Context.SetActiveSite("shell");

                        try
                        {
                            if (PipelineFactory.GetPipeline("uiUpload") != null && PipelineFactory.GetPipeline("uiUpload").Processors != null)
                            {
                                foreach (Processor p in from Processor p in PipelineFactory.GetPipeline("uiUpload").Processors where p.Name.Equals("Sitecore.Pipelines.Upload.Done,Sitecore.Kernel,Process") select p)
                                {
                                    PipelineFactory.GetPipeline("uiUpload").Processors.Remove(p);
                                }
                            }
                        }
                        catch (Exception exception) { Log.Error("Delete from Pipelines ", exception, this); }

                        PipelineFactory.GetPipeline("uiUpload").Start(uploadArgs);

                        if (uploadArgs.UploadedItems.Count == 1)
                        {
                            PhotoAlbumObject.PublishOneItem(uploadArgs.UploadedItems[0]);
                        }
                        else
                        {
                            if (uploadArgs.UploadedItems.Count > 1)
                            {
                                PhotoAlbumObject.PublishOneItem(uploadArgs.UploadedItems[0].Parent);
                            }
                        }
                        foreach (Item current in uploadArgs.UploadedItems)
                        {
                            current.Editing.BeginEdit();
                            if (current.Fields["alt"] != null)
                            {
                                current.Fields["alt"].Value = current.Name;
                            }
                            current.Editing.EndEdit();
                        }
                        Context.SetActiveSite("website");
                        Item item2        = Factory.GetDatabase(this.DbName).Items[albumID];
                        Item itemTemplate = Factory.GetDatabase(this.DbName).Items[PhotoAlbumConstants.photoTemplateID];
                        foreach (Item current2 in uploadArgs.UploadedItems)
                        {
                            string itemName2 = this.CheckExistingItemName(item2, current2.Name, false);
                            this.CreateAndFillItem(itemName2, new Hashtable
                            {
                                {
                                    "Title",
                                    current2.Name
                                },

                                {
                                    "image",
                                    current2
                                }
                            }, item2, itemTemplate, false);
                        }
                        this.CurrentAlbumItem = item2;
                        result = flag;
                        return(result);
                    }
                }
                this.PageErrorMsg = "You should choose zip archive or image";
                result            = false;
            }
            catch (Exception exception)
            {
                Log.Error("Cannot upload image(s)", exception, this);
                result = false;
            }
            return(result);
        }
Пример #4
0
 protected override void OnLoad(EventArgs e)
 {
     base.OnLoad(e);
     if (MaxRequestLengthExceeded)
     {
         HttpContext.Current.Response.Write(
             "<html><head><script type=\"text/JavaScript\" language=\"javascript\">window.top.scForm.getTopModalDialog().frames[0].scForm.postRequest(\"\", \"\", \"\", 'ShowFileTooBig()')</script></head><body>Done</body></html>");
     }
     else
     {
         if (IsEvent)
         {
             return;
         }
         if (Request.Files.Count <= 0)
         {
             return;
         }
         try
         {
             var pathOrId = Sitecore.Context.ClientPage.ClientRequest.Form["ItemUri"];
             var langStr  = Sitecore.Context.ClientPage.ClientRequest.Form["LanguageName"];
             var language = langStr.Length > 0
                 ? LanguageManager.GetLanguage(langStr) ?? Sitecore.Context.ContentLanguage
                 : Sitecore.Context.ContentLanguage;
             var itemUri    = ItemUri.Parse(pathOrId);
             var uploadArgs = new UploadArgs();
             if (itemUri != null)
             {
                 pathOrId = itemUri.GetPathOrId();
                 uploadArgs.Destination = Settings.Media.UploadAsFiles
                     ? UploadDestination.File
                     : UploadDestination.Database;
             }
             else
             {
                 uploadArgs.Destination = UploadDestination.File;
                 uploadArgs.FileOnly    = true;
             }
             uploadArgs.Files     = Request.Files;
             uploadArgs.Folder    = pathOrId;
             uploadArgs.Overwrite = Sitecore.Context.ClientPage.ClientRequest.Form["Overwrite"].Length > 0;
             //uploadArgs.Overwrite = Settings.Upload.SimpleUploadOverwriting;
             uploadArgs.Unpack    = Sitecore.Context.ClientPage.ClientRequest.Form["Unpack"].Length > 0;
             uploadArgs.Versioned = Sitecore.Context.ClientPage.ClientRequest.Form["Versioned"].Length > 0;
             //uploadArgs.Versioned = Settings.Media.UploadAsVersionableByDefault;
             uploadArgs.Language         = language;
             uploadArgs.CloseDialogOnEnd = false;
             PipelineFactory.GetPipeline("uiUpload").Start(uploadArgs);
             string fileName;
             if (uploadArgs.UploadedItems.Count > 0)
             {
                 fileName = uploadArgs.UploadedItems[0].ID.ToString();
                 LogUtils.Audit(this, "Upload: {0}", StringUtil.Join(uploadArgs.UploadedItems, ", ", "Name"));
             }
             else
             {
                 var fileHandle = uploadArgs.Properties["filename"];
                 if (fileHandle != null)
                 {
                     fileName = WebUtil.UrlEncode(FileHandle.GetFilename(fileHandle.ToString()));
                 }
                 else if (uploadArgs.Unpack)
                 {
                     fileName = WebUtil.UrlEncode(uploadArgs.Folder);
                 }
                 else
                 {
                     fileName = string.Empty;
                 }
             }
             if (!string.IsNullOrEmpty(uploadArgs.ErrorText))
             {
                 return;
             }
             HttpContext.Current.Response.Write(
                 "<html><head><script type=\"text/JavaScript\" language=\"javascript\">window.top.scForm.getTopModalDialog().frames[0].scForm.postRequest(\"\", \"\", \"\", 'EndUploading(\"" +
                 fileName + "\")')</script></head><body>Done</body></html>");
         }
         catch (OutOfMemoryException)
         {
             HttpContext.Current.Response.Write(
                 "<html><head><script type=\"text/JavaScript\" language=\"javascript\">window.top.scForm.getTopModalDialog().frames[0].scForm.postRequest(\"\", \"\", \"\", 'ShowFileTooBig(" +
                 StringUtil.EscapeJavascriptString(Request.Files[0].FileName) +
                 ")')</script></head><body>Done</body></html>");
         }
         catch (Exception ex)
         {
             if (ex.InnerException is OutOfMemoryException)
             {
                 HttpContext.Current.Response.Write(
                     "<html><head><script type=\"text/JavaScript\" language=\"javascript\">window.top.scForm.getTopModalDialog().frames[0].scForm.postRequest(\"\", \"\", \"\", 'ShowFileTooBig(" +
                     StringUtil.EscapeJavascriptString(Request.Files[0].FileName) +
                     ")')</script></head><body>Done</body></html>");
             }
             else
             {
                 HttpContext.Current.Response.Write(
                     "<html><head><script type=\"text/JavaScript\" language=\"javascript\">window.top.scForm.getTopModalDialog().frames[0].scForm.postRequest(\"\", \"\", \"\", 'ShowError')</script></head><body>Done</body></html>");
             }
         }
     }
 }