public void TestUserAdd() { MPRSession session = MPRController.StartSession(); MPUser user = new MPUser(); user.Name = "joe submitter"; user.EMail = "mp-test@localhost"; user.Handle = "submitter"; IList <MPUserPermission> permissions = session.Session .CreateQuery("from MPUserPermission perms where perms.Name in ('Download', 'Add')") .List <MPUserPermission>(); user.Permissions.AddAll(permissions); MPRController.Save <MPUser>(session, user); user = new MPUser(); user.Name = "james admin"; user.EMail = "mp-test@localhost"; user.Handle = "admin"; permissions = session.Session .CreateQuery("from MPUserPermission perms where perms.Name in ('Download', 'Add', 'Approve', 'Delete')") .List <MPUserPermission>(); user.Permissions.AddAll(permissions); MPRController.Save <MPUser>(session, user); MPRController.EndSession(session, true); }
public void TestUserAdd() { MPRSession session = MPRController.StartSession(); MPUser user = new MPUser(); user.Name = "joe submitter"; user.EMail = "mp-test@localhost"; user.Handle = "submitter"; IList<MPUserPermission> permissions = session.Session .CreateQuery("from MPUserPermission perms where perms.Name in ('Download', 'Add')") .List<MPUserPermission>(); user.Permissions.AddAll(permissions); MPRController.Save<MPUser>(session, user); user = new MPUser(); user.Name = "james admin"; user.EMail = "mp-test@localhost"; user.Handle = "admin"; permissions = session.Session .CreateQuery("from MPUserPermission perms where perms.Name in ('Download', 'Add', 'Approve', 'Delete')") .List<MPUserPermission>(); user.Permissions.AddAll(permissions); MPRController.Save<MPUser>(session, user); MPRController.EndSession(session, true); }
public static MPUser GetCurrentUser() { MPUser user = (MPUser)HttpContext.Current.Session["MPUser"]; if (user != null) { return(user); } string handle = HttpContext.Current.User.Identity.Name; if (handle != null) { // user has been authenticated before (marked remember me) // TODO: move this logic to the PostAuthenticateRequest event handler MPRSession session = MPRController.StartSession(); IList <MPUser> users = MPRController.RetrieveEquals <MPUser>(session, "Handle", handle); if (users.Count == 1) { user = users[0]; user.LastLogin = DateTime.Now; MPRController.Save <MPUser>(session, user); MPRController.EndSession(session, true); HttpContext.Current.Session["MPUser"] = user; return(user); } MPRController.EndSession(session, false); } throw new InvalidUserException("The session doesn't contain a valid user"); }
public virtual void AddComment(MPUser user, string text) { MPItemComment comment = new MPItemComment(); comment.User = user; comment.Text = text; Comments.Add(comment); }
public void TestGetUserByHandle() { string handle = "admin"; MPRSession session = MPRController.StartSession(); IList <MPUser> users = MPRController.RetrieveEquals <MPUser>(session, "Handle", handle); Assert.That(users.Count, Is.EqualTo(1)); MPUser user = users[0]; System.Console.WriteLine("User {0}:\n{1}\n{2}\n{3} permissions", user.Handle, user.Name, user.EMail, user.Permissions.Count); Assert.That(user.Permissions.Count, Is.EqualTo(4)); MPRController.EndSession(session, true); }
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) { e.Authenticated = false; // TODO: replace with real authentication if (Login1.Password != "password") { return; } // Add user to session string handle = Login1.UserName; MPRSession session = MPRController.StartSession(); IList <MPUser> users = MPRController.RetrieveEquals <MPUser>(session, "Handle", handle); if (users.Count != 1) // Either none or a serious error { MPRController.EndSession(session, false); return; } MPUser user = users[0]; user.LastLogin = DateTime.Now; MPRController.Save <MPUser>(session, user); HttpContext.Current.Session["MPUser"] = user; MPRController.EndSession(session, true); e.Authenticated = true; log.Info(String.Format("User {0} has logged in", user.Handle)); FormsAuthentication.RedirectFromLoginPage(Login1.UserName, Login1.RememberMeSet); }
protected void Page_Load(object sender, EventArgs e) { MPUser user = SessionUtils.GetCurrentUser(); if (IsPostBack) { uploadStatusLabel.Text = null; if (!user.hasPermission("Add")) { uploadStatusLabel.Text = String.Format("User {0} has no permission to add items", user.Handle); return; } // TODO: Validate form // TODO: If file is MPE, try to fill fields from file // Handle upload if ((fileUpload.PostedFile != null) && (fileUpload.PostedFile.ContentLength > 0)) { if (HandleUploadedFile()) { uploadStatusLabel.Text = "Upload successful."; } else { // Upload failed. Status should already contain the cause. if (uploadStatusLabel.Text == null) { uploadStatusLabel.Text = "Upload failed. Reason unknown."; } } } else // no file. Just page update { MPRSession session = MPRController.StartSession(); FillCategoriesForSelectedItemType(session); MPRController.EndSession(session, true); } } else // not PostBack - initial page setup { // Load user from session authorTextBox.Text = user.Handle; // Fill development status according to ENum developmentStatusDropDownList.DataSource = Enum.GetNames(typeof(MPItemVersion.MPDevelopmentStatus)); developmentStatusDropDownList.DataBind(); // Load item types MPRSession session = MPRController.StartSession(); IList <MPItemType> types = MPRController.RetrieveAll <MPItemType>(session); foreach (MPItemType type in types) { typesList.Items.Add(new ListItem(type.Name, type.Id.ToString())); } FillCategoriesForSelectedItemType(session); MPRController.EndSession(session, true); } }
/// <summary> /// Handle the actual creation of the entity /// </summary> /// <param name="filename">the name of the local file</param> /// <returns>success or failure</returns> protected bool AddFileToRepository(string filename) { MPRSession session = MPRController.StartSession(); MPUser user = SessionUtils.GetCurrentUser(); MPItem item = new MPItem(); item.Name = titleTextBox.Text; Int64 typeId; if (!Int64.TryParse(typesList.SelectedValue, out typeId)) { return(UploadFail(String.Format("Invalid item type {0}", typesList.SelectedValue))); } item.Type = MPRController.RetrieveById <MPItemType>(session, typeId); if (item.Type == null) { return(UploadFail(String.Format("Unable to find item type {0} ({1})", typesList.SelectedItem, typeId))); } List <Int64> categoryIds = new List <Int64>(); foreach (ListItem categoryItem in categoriesList.Items) { if (categoryItem.Selected) { Int64 id; if (Int64.TryParse(categoryItem.Value, out id)) { categoryIds.Add(id); } } } IList <MPCategory> categories = MPRController.RetrieveByIdList <MPCategory>(session, categoryIds); foreach (MPCategory category in categories) { item.Categories.Add(category); } item.Description = descriptionTextBox.Text; item.DescriptionShort = descriptionShortTextBox.Text; item.License = licenseTextBox.Text; item.LicenseMustAccept = licenseMustAccessCheckBox.Checked; item.Author = authorTextBox.Text; item.Homepage = homepageTextbox.Text; item.Tags = MPRController.GetTags(session, tagsTextBox.Text); // create ItemVersion MPItemVersion itemVersion = new MPItemVersion(); itemVersion.Item = item; itemVersion.Uploader = user; itemVersion.DevelopmentStatus = (MPItemVersion.MPDevelopmentStatus)Enum.Parse(typeof(MPItemVersion.MPDevelopmentStatus), developmentStatusDropDownList.SelectedValue); itemVersion.MPVersionMin = mpVersionMinTextBox.Text; itemVersion.MPVersionMax = mpVersionMaxTextBox.Text; itemVersion.Version = versionTextBox.Text; MPFile mpfile = new MPFile(); mpfile.ItemVersion = itemVersion; mpfile.Filename = System.IO.Path.GetFileName(fileUpload.PostedFile.FileName); mpfile.Location = filename; itemVersion.Files.Add(mpfile); item.Versions.Add(itemVersion); // Save item (and sub-items) to database try { MPRController.Save <MPItem>(session, item); MPRController.EndSession(session, true); } catch (Exception ex) { MPRController.EndSession(session, false); return(UploadFail("Unable to save item: " + ex.ToString())); } return(true); }