Пример #1
0
        public async Task RoleReadAndWrite()
        {
            LCUser currentUser = await LCUser.Login(TestPhone, TestPhone);

            string name    = $"role_{DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()}";
            LCACL  roleACL = new LCACL();

            roleACL.SetUserReadAccess(currentUser, true);
            roleACL.SetUserWriteAccess(currentUser, true);
            LCRole role = LCRole.Create(name, roleACL);

            role.AddRelation("users", currentUser);
            await role.Save();

            account = new Account();
            LCACL acl = new LCACL();

            acl.SetRoleReadAccess(role, true);
            acl.SetRoleWriteAccess(role, true);
            account.ACL = acl;
            await account.Save();

            Assert.IsTrue(acl.GetRoleReadAccess(role));
            Assert.IsTrue(acl.GetRoleWriteAccess(role));
        }
Пример #2
0
        /// <summary>
        /// Constructs a LCRole with a name and a LCACL.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="acl"></param>
        /// <returns></returns>
        public static LCRole Create(string name, LCACL acl)
        {
            LCRole role = new LCRole()
            {
                Name = name,
                ACL  = acl
            };

            return(role);
        }
Пример #3
0
        public async Task NewRole()
        {
            LCUser currentUser = await LCUser.Login("game", "play");

            LCACL acl = new LCACL();

            acl.PublicReadAccess = true;
            acl.SetUserWriteAccess(currentUser, true);
            string name = $"role_{DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()}";
            LCRole role = LCRole.Create(name, acl);

            role.AddRelation("users", currentUser);
            await role.Save();
        }
Пример #4
0
        public async Task Query()
        {
            LCQuery <LCRole> query = LCRole.GetQuery();
            List <LCRole>    list  = await query.Find();

            list.ForEach(item => {
                TestContext.WriteLine($"{item.ObjectId} : {item.Name}");
                Assert.NotNull(item.ObjectId);
                Assert.NotNull(item.Name);
                TestContext.WriteLine(item.Roles.GetType());
                TestContext.WriteLine(item.Users.GetType());
                Assert.IsTrue(item.Roles is LCRelation <LCRole>);
                Assert.IsTrue(item.Users is LCRelation <LCUser>);
            });
        }
Пример #5
0
        public async Task Query()
        {
            LCQuery <LCRole>            query   = LCRole.GetQuery();
            ReadOnlyCollection <LCRole> results = await query.Find();

            foreach (LCRole item in results)
            {
                TestContext.WriteLine($"{item.ObjectId} : {item.Name}");
                Assert.NotNull(item.ObjectId);
                Assert.NotNull(item.Name);
                TestContext.WriteLine(item.Roles.GetType());
                TestContext.WriteLine(item.Users.GetType());
                Assert.IsTrue(item.Roles is LCRelation <LCRole>);
                Assert.IsTrue(item.Users is LCRelation <LCUser>);
            }
        }
Пример #6
0
        public async Task RoleReadAndWrite()
        {
            LCQuery <LCRole> query = LCRole.GetQuery();
            LCRole           owner = await query.Get("5e1440cbfc36ed006add1b8d");

            LCObject account = new LCObject("Account");
            LCACL    acl     = new LCACL();

            acl.SetRoleReadAccess(owner, true);
            acl.SetRoleWriteAccess(owner, true);
            account.ACL = acl;
            await account.Save();

            Assert.IsTrue(acl.GetRoleReadAccess(owner));
            Assert.IsTrue(acl.GetRoleWriteAccess(owner));
        }