Example #1
0
        public void PermissionsAreInheritedFromParent()
        {
            // Node 1                (Group 1 permissions defined)
            // --> Node 2            (Group 1 permissions inherited)

            var userService    = new Mock <IUserService>();
            var contentService = new Mock <IContentService>();

            var nodeLevel1 = new Mock <IContent>();

            nodeLevel1.Setup(x => x.ParentId).Returns(-1);
            var nodeLevel1Permissions = new Mock <EntityPermissionCollection>();

            nodeLevel1Permissions.Object.Add(new EntityPermission(1, 1, new[] { UmbracoPermission.BROWSE_NODE + UmbracoPermission.UPDATE }));

            var nodeLevel2 = new Mock <IContent>();

            nodeLevel2.Setup(x => x.ParentId).Returns(1);
            var nodeLevel2Permissions = new Mock <EntityPermissionCollection>();

            contentService.Setup(x => x.GetById(1)).Returns(nodeLevel1.Object);
            contentService.Setup(x => x.GetPermissionsForEntity(nodeLevel1.Object)).Returns(nodeLevel1Permissions.Object);
            contentService.Setup(x => x.GetById(2)).Returns(nodeLevel2.Object);
            contentService.Setup(x => x.GetPermissionsForEntity(nodeLevel2.Object)).Returns(nodeLevel2Permissions.Object);

            var permissionsService = new UmbracoPermissionsReader(userService.Object, contentService.Object);

            var result = permissionsService.GroupsWithPermissionForPage(2, UmbracoPermission.UPDATE);

            Assert.AreEqual(1, result.Count);
            Assert.IsTrue(result.Contains(1));
        }
Example #2
0
        public void WhenBrowseNodeOnlyPermissionsStopInheritanceOtherGroupsStillInherit()
        {
            // Node 1           (Groups 1 and 2 have permissions defined)
            // --> Node 2       (Group 1 has Browse Node only, overriding inherited permissions)

            var userService    = new Mock <IUserService>();
            var contentService = new Mock <IContentService>();

            var nodeLevel1 = new Mock <IContent>();

            nodeLevel1.Setup(x => x.ParentId).Returns(-1);
            var nodeLevel1Permissions = new Mock <EntityPermissionCollection>();

            nodeLevel1Permissions.Object.Add(new EntityPermission(1, 1, new[] { UmbracoPermission.BROWSE_NODE + UmbracoPermission.UPDATE }));
            nodeLevel1Permissions.Object.Add(new EntityPermission(2, 1, new[] { UmbracoPermission.BROWSE_NODE + UmbracoPermission.UPDATE }));

            var nodeLevel2 = new Mock <IContent>();

            nodeLevel2.Setup(x => x.ParentId).Returns(1);
            var nodeLevel2Permissions = new Mock <EntityPermissionCollection>();

            nodeLevel2Permissions.Object.Add(new EntityPermission(1, 2, new[] { UmbracoPermission.BROWSE_NODE }));

            contentService.Setup(x => x.GetById(1)).Returns(nodeLevel1.Object);
            contentService.Setup(x => x.GetPermissionsForEntity(nodeLevel1.Object)).Returns(nodeLevel1Permissions.Object);
            contentService.Setup(x => x.GetById(2)).Returns(nodeLevel2.Object);
            contentService.Setup(x => x.GetPermissionsForEntity(nodeLevel2.Object)).Returns(nodeLevel2Permissions.Object);

            var permissionsService = new UmbracoPermissionsReader(userService.Object, contentService.Object);

            var result = permissionsService.GroupsWithPermissionForPage(2, UmbracoPermission.UPDATE);

            Assert.AreEqual(1, result.Count);
            Assert.IsTrue(result.Contains(2));
        }
        public Page ForPage([FromUri] Uri url)
        {
            Page result = GetPageFromUrl(url, Services.UserService, Services.ContentService, UmbracoContext.ContentCache);

            if (result.NodeId > 0)
            {
                var permissionsReader = new UmbracoPermissionsReader(Services.UserService, Services.ContentService);
                result.UsersWithPermissions = GetUsersForPage(result.NodeId, permissionsReader, Services.UserService);
            }

            return(result);
        }
Example #4
0
        public HttpResponseMessage ActiveUsersInGroup(int groupId)
        {
            try
            {
                var expiringPagesService = new UmbracoPermissionsReader(Services.UserService, Services.ContentService);
                var nodes = expiringPagesService.ActiveUsersInGroup(groupId);

                return(Request.CreateResponse(HttpStatusCode.OK, nodes));
            }
            catch (Exception ex)
            {
                ex.ToExceptionless().Submit();
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex));
            }
        }
Example #5
0
        public HttpResponseMessage GroupsWithPermissionsForPage(int pageId)
        {
            try
            {
                var expiringPagesService = new UmbracoPermissionsReader(Services.UserService, Services.ContentService);
                var nodes = expiringPagesService.GroupsWithPermissionForPage(pageId, UmbracoPermission.UPDATE);

                return(Request.CreateResponse(HttpStatusCode.OK, nodes));
            }
            catch (Exception ex)
            {
                ex.ToExceptionless().Submit();
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex));
            }
        }