コード例 #1
0
        private async Task <UserGroupPoco> AddGroupWithPermissionAndUser(int userId, int nodeId)
        {
            // add a group with a user
            UserGroupPoco group = await _groupService.CreateUserGroupAsync("Test Group");

            group.Users.Add(new User2UserGroupPoco
            {
                GroupId = group.GroupId,
                UserId  = userId
            });

            await _groupService.UpdateUserGroupAsync(group);

            // give the group permissions to the node
            var poco = new UserGroupPermissionsPoco
            {
                GroupId    = group.GroupId,
                Permission = 0,
                NodeId     = nodeId
            };

            _configService.UpdateNodeConfig(new Dictionary <int, List <UserGroupPermissionsPoco> >
            {
                { 0, new List <UserGroupPermissionsPoco> {
                      poco
                  } }
            });

            return(group);
        }
コード例 #2
0
        public void Can_Get_Recursive_Permissions_When_Node_Has_No_Permissions()
        {
            Scaffold.ContentType(_contentTypeService);
            IContentType contentType = _contentTypeService.GetContentType("textpage");

            IContent root  = Scaffold.Node(_contentService);
            IContent child = Scaffold.Node(_contentService, root.Id);

            List <UserGroupPermissionsPoco> permissions = _configService.GetRecursivePermissionsForNode(root.ToPublishedContent());

            Assert.Null(permissions);

            permissions = _configService.GetRecursivePermissionsForNode(child.ToPublishedContent());
            Assert.Null(permissions);

            // add a permission so something is returned...
            var poco = new UserGroupPermissionsPoco
            {
                ContentTypeId = contentType.Id,
                GroupId       = 3,
                Permission    = 0
            };

            _configService.UpdateContentTypeConfig(new Dictionary <int, List <UserGroupPermissionsPoco> >
            {
                { 0, new List <UserGroupPermissionsPoco> {
                      poco
                  } }
            });

            permissions = _configService.GetRecursivePermissionsForNode(child.ToPublishedContent());
            Assert.NotNull(permissions);
        }
コード例 #3
0
        /// <summary>
        /// Maps Users to the UserGroup property of a UserGroupPermissionsPoco
        /// </summary>
        /// <param name="ugpp"></param>
        /// <param name="ugp"></param>
        /// <param name="u2Ugp"></param>
        /// <returns></returns>
        public UserGroupPermissionsPoco MapIt(UserGroupPermissionsPoco ugpp, UserGroupPoco ugp, User2UserGroupPoco u2Ugp)
        {
            if (ugpp == null)
            {
                return(Current);
            }

            if (Current != null && Current.GroupId == ugpp.GroupId)
            {
                if (Current.UserGroup == null)
                {
                    Current.UserGroup = ugp;
                }

                if (Current.GroupId == u2Ugp.GroupId)
                {
                    Current.UserGroup.Users.Add(u2Ugp);
                }
                return(null);
            }

            var prev = Current;

            Current           = ugpp;
            Current.UserGroup = ugp;

            if (Current.GroupId == u2Ugp.GroupId)
            {
                Current.UserGroup.Users.Add(u2Ugp);
            }

            return(prev);
        }
コード例 #4
0
        public void Can_Get_Recursive_Permissions_For_Node_When_Node_Has_Permissions()
        {
            IContent root       = Scaffold.Node(_contentService);
            IContent child      = Scaffold.Node(_contentService, root.Id);
            IContent grandChild = Scaffold.Node(_contentService, child.Id);

            List <UserGroupPermissionsPoco> permissions = _configService.GetRecursivePermissionsForNode(grandChild.ToPublishedContent());

            // node has no permissions, yet
            Assert.Empty(permissions);

            // add a permission so something is returned...
            var poco = new UserGroupPermissionsPoco
            {
                GroupId    = 3,
                Permission = 0,
                NodeId     = grandChild.Id
            };

            _configService.UpdateNodeConfig(new Dictionary <int, List <UserGroupPermissionsPoco> >
            {
                { 0, new List <UserGroupPermissionsPoco> {
                      poco
                  } }
            });

            permissions = _configService.GetRecursivePermissionsForNode(grandChild.ToPublishedContent());
            Assert.Single(permissions);
        }
コード例 #5
0
ファイル: GroupsRelator.cs プロジェクト: rhythmagency/Plumber
        public UserGroupPoco MapIt(UserGroupPoco a, UserGroupPermissionsPoco c, User2UserGroupPoco b)
        {
            if (a == null)
            {
                return(Current);
            }

            if (Current != null && Current.GroupId == b.GroupId)
            {
                if (Current.Users.All(u => u.UserId != b.UserId))
                {
                    Current.Users.Add(b);
                }

                if (Current.Permissions.All(p => p.Id != c.Id))
                {
                    Current.Permissions.Add(c);
                }
                return(null);
            }

            var prev = Current;

            Current = a;

            if (Current.GroupId == b.GroupId)
            {
                Current.Users = new List <User2UserGroupPoco>()
                {
                    b
                };
            }

            if (Current.GroupId == c.GroupId)
            {
                Current.Permissions = new List <UserGroupPermissionsPoco>()
                {
                    c
                };
            }

            return(prev);
        }
コード例 #6
0
ファイル: PocoRepository.cs プロジェクト: tomfulton/Plumber
 /// <summary>
 /// Add permission for node
 /// </summary>
 /// <param name="perm">Permission object of type <see cref="UserGroupPermissionsPoco"/></param>
 public void AddPermission(UserGroupPermissionsPoco perm)
 {
     _database.Insert(perm);
 }
コード例 #7
0
 /// <summary>
 /// Add permission for content type
 /// </summary>
 /// <param name="perm">Permission object of type <see cref="UserGroupPermissionsPoco"/></param>
 public void AddPermissionForContentType(UserGroupPermissionsPoco perm)
 {
     _database.Insert(perm);
 }
コード例 #8
0
ファイル: GroupService.cs プロジェクト: mhamel/Plumber
        /// <summary>
        ///
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public UserGroupPermissionsPoco GetDefaultUserGroupPermissions(string name)
        {
            UserGroupPermissionsPoco result = _repo.GetDefaultUserGroupPermissions(name);

            return(result);
        }
コード例 #9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public UserGroupPermissionsPoco GetDefaultUserGroupPermissions(string name)
        {
            UserGroupPermissionsPoco permissions = _database.Fetch <UserGroupPermissionsPoco>(SqlHelpers.UserGroupBasic, name).First();

            return(permissions);
        }