示例#1
0
        public void NoPermissions()
        {
            var ide = new IdentityDao
            {
                Id   = "test",
                Name = "Test",
            };

            string permissionExplanation = "Tengo:\r\n" +
                                           $" - Ningún permiso\r\n";

            var query =
                $"¿Debería ser root?\r\n" +
                " No";

            PrintTestTriedStarted(permissionExplanation + query);
            Assert.False(ide.IsRoot(), permissionExplanation + query);

            query =
                $"¿Debería poder '{nameof(Read)}' alguna cosa?\r\n" +
                " No";
            PrintTestTriedStarted(permissionExplanation + query);
            Assert.False(ide.Can(Read).Something(), permissionExplanation + query);

            query =
                $"¿Debería poder {nameof(Edit)} en {nameof(Discriminators.Location.City.SanFrancisco)}?\r\n" +
                " No";
            PrintTestTriedStarted(permissionExplanation + query);
            Assert.False(ide.Can(Edit).Instance(Discriminators.Location.City.SanFrancisco), permissionExplanation + query);
        }
示例#2
0
        public void RootPermission()
        {
            var ide = new IdentityDao
            {
                Id          = "test",
                Name        = "Test",
                Permissions = new[] {
                    new PermissionDao {
                        Value    = true,
                        Function = Admin.Id.ToString(),
                    }
                }.ToList()
            };

            string permissionExplanation = "Tengo:\r\n" +
                                           $" - Permiso ROOT\r\n";

            var query =
                $"¿Debería ser root?\r\n" +
                " Si";

            PrintTestTriedStarted(permissionExplanation + query);
            Assert.True(ide.IsRoot(), permissionExplanation + query);

            query =
                $"¿Debería poder '{nameof(Admin)}' cualquier cosa?\r\n" +
                " Si";
            PrintTestTriedStarted(permissionExplanation + query);
            Assert.True(ide.Can(Admin).Anything(), permissionExplanation + query);

            query =
                $"¿Debería poder '{nameof(Admin)}' alguna cosa?\r\n" +
                " Si";
            PrintTestTriedStarted(permissionExplanation + query);
            Assert.True(ide.Can(Admin).Something(), permissionExplanation + query);

            query =
                $"¿Debería poder '{nameof(Edit)}' en '{nameof(File.Document.Word.Word1)}'?\r\n" +
                " Si";
            PrintTestTriedStarted(permissionExplanation + query);
            Assert.True(ide.Can(Edit).Instance(File.Document.Word.Word1), permissionExplanation + query);

            query =
                $"¿Debería poder '{nameof(Edit)}' las '{nameof(CityDao)}'?\r\n" +
                " Si";
            PrintTestTriedStarted(permissionExplanation + query);
            Assert.True(ide.Can(Edit).Type <CityDao>(), permissionExplanation + query);
        }
示例#3
0
        public void CannotByType()
        {
            var ide = new IdentityDao
            {
                Id          = "test",
                Name        = "Test",
                Permissions = new[] {
                    new PermissionDao {
                        Value    = true,
                        Function = Edit.Id.ToString(),
                        Scopes   = new[] {
                            new ScopeDao {
                                Discriminator = Discriminators.Location.City.SanFrancisco,
                                Propagation   = ScopePropagation.ToMe
                            }
                        }
                    },
                    new PermissionDao {
                        Value    = false,
                        Function = Edit.Id.ToString(),
                        Scopes   = new[] {
                            new ScopeDao {
                                Discriminator = Discriminators.Location.State.California,
                                Propagation   = ScopePropagation.ToMe | ScopePropagation.ToInclusions
                            }
                        }
                    }
                }.ToList()
            };

            string permissionExplanation = "Tengo:\r\n" +
                                           $" - Concedido el permiso para {nameof(Edit)} en {nameof(Discriminators.Location.City.SanFrancisco)}\r\n" +
                                           $" - Denegado el permiso para {nameof(Edit)} en {nameof(Discriminators.Location.State.California)} y sus hijos\r\n";

            var query =
                $"¿Debería ser root?\r\n" +
                " No";

            PrintTestTriedStarted(permissionExplanation + query);
            Assert.False(ide.IsRoot(), permissionExplanation + query);

            query =
                $"¿Debería poder {nameof(Edit)} en {nameof(Discriminators.Location.City.SanFrancisco)}?\r\n" +
                " No";
            PrintTestTriedStarted(permissionExplanation + query);
            Assert.False(ide.Can(Edit).Instance(Discriminators.Location.City.SanFrancisco), permissionExplanation + query);
        }
示例#4
0
        public void NoPermissions()
        {
            var ide = new IdentityDao
            {
                Id   = "test",
                Name = "Test",
            };

            Assert.False(ide.IsRoot(),
                         "Tengo:\r\n" +
                         $" - Ningún permiso\r\n" +
                         $"¿Debería ser root?\r\n" +
                         " No");
            Assert.False(ide.Can(Read).Something(),
                         "Tengo:\r\n" +
                         $" - Ningún permiso\r\n" +
                         $"¿Debería poder '{nameof(Read)}' alguna cosa?\r\n" +
                         " No");
            Assert.False(ide.Can(Edit).Instance(Discriminator.Location.City.SanFrancisco)
                         , "Tengo:\r\n" +
                         $" - Ningun permiso\r\n" +
                         $"¿Debería poder {nameof(Edit)} en {nameof(Discriminator.Location.City.SanFrancisco)}?\r\n" +
                         " No");
        }