コード例 #1
0
		public ApiAcceptanceTests()
		{
			var currentUser = new Operator
			{
				Key = "andy-dote",
				Name = "Andy Dote",
				CanCreatePermissions = true,
				CanCreateRoles = true,
				CanCreateUsers = true
			};

			var config = new MagistrateConfiguration
			{
				EventStore = new InMemoryEventStore(),
				User = () => currentUser
			};

			var container = new Container(new MagistrateRegistry(config.EventStore));

			container.GetInstance<Boot>().Load();

			var ps = container.GetInstance<PermissionService>();
			var rs = container.GetInstance<RoleService>();
			var us = container.GetInstance<UserService>();
			
			var p1 = Permission.Create(ps, currentUser, new PermissionKey("perm-one"), "first", "first permission");
			var p2 = Permission.Create(ps, currentUser, new PermissionKey("perm-two"), "second", "second permission");
			var p3 = Permission.Create(ps, currentUser, new PermissionKey("perm-three"), "third", "third permission");

			var r1 = Role.Create(rs, currentUser, new RoleKey("role-one"), "first", "first role");
			r1.AddPermission(currentUser, p1.ID);

			var r2 = Role.Create(rs, currentUser, new RoleKey("role-two"), "second", "second role");
			r2.AddPermission(currentUser, p2.ID);

			var u1 = User.Create(us, currentUser, new UserKey("user-one"), "first");
			u1.AddRole(currentUser, r1.ID);
			u1.AddInclude(currentUser, p2.ID);
			u1.AddRevoke(currentUser, p3.ID);

			var store = container.GetInstance<AggregateStore<Guid>>();
			
			store.Save(MagistrateSystem.MagistrateStream, p1);
			store.Save(MagistrateSystem.MagistrateStream, p2);
			store.Save(MagistrateSystem.MagistrateStream, p3);
			store.Save(MagistrateSystem.MagistrateStream, r1);
			store.Save(MagistrateSystem.MagistrateStream, r2);
			store.Save(MagistrateSystem.MagistrateStream, u1);

			_server = TestServer.Create(app =>
			{
				app.Use<MagistrateOperatorMiddleware>(config);

				container
					.GetAllInstances<IController>()
					.ForEach(controller => controller.Configure(app));
			});
		}
コード例 #2
0
		public MagistrateOperatorMiddleware(OwinMiddleware next, MagistrateConfiguration config)
			: base(next)
		{
			_config = config;
		}