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); }
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); }
/// <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); }
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); }
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); }
/// <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); }
/// <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); }
/// <summary> /// /// </summary> /// <param name="name"></param> /// <returns></returns> public UserGroupPermissionsPoco GetDefaultUserGroupPermissions(string name) { UserGroupPermissionsPoco result = _repo.GetDefaultUserGroupPermissions(name); return(result); }
/// <summary> /// /// </summary> /// <param name="name"></param> /// <returns></returns> public UserGroupPermissionsPoco GetDefaultUserGroupPermissions(string name) { UserGroupPermissionsPoco permissions = _database.Fetch <UserGroupPermissionsPoco>(SqlHelpers.UserGroupBasic, name).First(); return(permissions); }