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); }
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>"); } } } }