public void Can_Get_Built_In_Properties_Camel_Case()
        {
            var date = DateTime.Now;

            var member = new Member("test name", "*****@*****.**", "test username", "test password",
                                    GetMemberType());

            member.Comments        = "test comment";
            member.IsApproved      = true;
            member.IsLockedOut     = false;
            member.CreateDate      = date;
            member.LastLoginDate   = date.AddMinutes(1);
            member.LastLockoutDate = date.AddMinutes(2);
            //NOTE: Last activity date is always the same as last login date since we don't have a place to store that data
            //member.LastLoginDate = date.AddMinutes(3);
            member.LastPasswordChangeDate = date.AddMinutes(4);
            member.PasswordQuestion       = "test question";

            var mpc = new MemberPublishedContent(member);

            var d = mpc.AsDynamic();

            Assert.AreEqual("test comment", d.comments);
            Assert.AreEqual(date, d.creationDate);
            Assert.AreEqual("*****@*****.**", d.email);
            Assert.AreEqual(true, d.isApproved);
            Assert.AreEqual(false, d.isLockedOut);
            Assert.AreEqual(date.AddMinutes(1), d.lastActivityDate);
            Assert.AreEqual(date.AddMinutes(2), d.lastLockoutDate);
            Assert.AreEqual(date.AddMinutes(1), d.lastLoginDate);
            Assert.AreEqual(date.AddMinutes(4), d.lastPasswordChangedDate);
            Assert.AreEqual("test name", d.name);
            Assert.AreEqual("test question", d.passwordQuestion);
            Assert.AreEqual("test username", d.userName);
        }
        public void Can_Get_Custom_Properties()
        {
            var date = DateTime.Now;

            var memberType = MockedContentTypes.CreateSimpleMemberType("Member", "Member");
            var member     = MockedMember.CreateSimpleMember(memberType, "test name", "*****@*****.**", "test password", "test username");

            member.Comments        = "test comment";
            member.IsApproved      = true;
            member.IsLockedOut     = false;
            member.CreateDate      = date;
            member.LastLoginDate   = date.AddMinutes(1);
            member.LastLockoutDate = date.AddMinutes(2);
            //NOTE: Last activity date is always the same as last login date since we don't have a place to store that data
            //member.LastLoginDate = date.AddMinutes(3);
            member.LastPasswordChangeDate = date.AddMinutes(4);
            member.PasswordQuestion       = "test question";

            member.Properties["title"].Value    = "Test Value 1";
            member.Properties["bodyText"].Value = "Test Value 2";
            member.Properties["author"].Value   = "Test Value 3";
            var mpc = new MemberPublishedContent(member);

            var d = mpc.AsDynamic();

            Assert.AreEqual("Test Value 1", d.title);
            Assert.AreEqual("Test Value 1", d.Title);
            Assert.AreEqual("Test Value 2", d.bodyText);
            Assert.AreEqual("Test Value 2", d.BodyText);
            Assert.AreEqual("Test Value 3", d.author);
            Assert.AreEqual("Test Value 3", d.Author);
        }
예제 #3
0
        public static string GetUserImage(this MemberPublishedContent member)
        {
            var md5 = MD5.Create();

            // at the moment this only works when ModelsBuilder is off, because it
            // doesn't let you get to MemberPublishedContent from the GetCurrentMember call :(
            //

            if (member != null)
            {
                byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(member.Email.Trim().ToLower());
                var    hash       = BitConverter.ToString(md5.ComputeHash(inputBytes)).Replace("-", "").ToLower();
                return("https://www.gravatar.com/avatar/" + hash);
            }
            return("https://www.gravatar.com/avatar/?d=mm");
        }
예제 #4
0
        public ActionResult Index(string url)
        {
            UrlInformation result = AuthorisedMediaManager.Instance.GetUrlInformation(url);

            if (!result.IsMedia)
            {
                // Not a valid media URL - so can't be returned via this controller
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            int parentId = AuthorisedMediaManager.Instance.ParentId(result.MediaFolderId);

            if (parentId < 1)
            {
                // No record of a protected parent folder, so return the file
                return(GetFileStreamResult(url));
            }

            IPublishedContent parent = Umbraco.TypedMedia(parentId);

            if (parent == null)
            {
                // No parent media item, so it can't be protected
                return(GetFileStreamResult(url));
            }

            if (parent.ContentType.Alias != "protectedFolder" || !parent.HasProperty("memberGroups") || !parent.HasValue("memberGroups"))
            {
                // Not a protected folder - with a value for membergroups
                return(GetFileStreamResult(url));
            }

            FormsAuthenticationTicket authenticationTicket = new HttpContextWrapper(System.Web.HttpContext.Current).GetUmbracoAuthTicket();
            bool memberLoggedIn    = Members.IsLoggedIn();
            bool hasUserAuthTicket = authenticationTicket != null;

            if (hasUserAuthTicket && IsUserLoggedIn(authenticationTicket))
            {
                // All users can access media
                return(GetFileStreamResult(url));
            }

            if (memberLoggedIn)
            {
                MemberPublishedContent member = (MemberPublishedContent)Members.GetCurrentMember();

                if (member == null)
                {
                    // Can't get the current member - so return a 404
                    return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
                }

                string[] allowedMemberGroups = parent.GetPropertyValue <string>("memberGroups").Split(',');
                string[] memberRoles         = Roles.GetRolesForUser(member.UserName);

                foreach (string role in memberRoles)
                {
                    if (allowedMemberGroups.Contains(role))
                    {
                        // Member is in an appropriate group. allow access
                        return(GetFileStreamResult(url));
                    }
                }
            }

            // No Member logged in - so return a 404
            return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
        }
 /// <inheritdoc />
 public void Process(MemberPublishedContent source, ISiteMember destination)
 {
     SetDefaults(ref destination);
 }