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);
        }
Exemple #2
0
    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");
        }
Exemple #4
0
        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);
        }
Exemple #7
0
        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);
            }
        }
Exemple #8
0
        /// <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);
        }