Пример #1
0
 private void MatchActions(ResourceClaim dbResource, string expectedResourceName, bool[] expectedCrudArray)
 {
     dbResource.Name.ShouldBe(expectedResourceName);
     dbResource.Create.ShouldBe(expectedCrudArray[0]);
     dbResource.Read.ShouldBe(expectedCrudArray[1]);
     dbResource.Update.ShouldBe(expectedCrudArray[2]);
     dbResource.Delete.ShouldBe(expectedCrudArray[3]);
 }
Пример #2
0
        internal ResourceClaimVm(ResourceClaim view = null)
        {
            if (view == null)
            {
                return;
            }

            _id         = view.Id;
            _resourceId = view.ResourceId;
            _createDate = view.CreateDate;
            _updateDate = view.UpdateDate;

            ClaimName = view.ClaimName;
        }
Пример #3
0
        public ClientResourceAccessClaimVm(ClientResourceAccessClaim view = null, ResourceClaim claim = null)
        {
            if (view == null)
            {
                return;
            }

            _id = view.Id;
            _clientResourceAccessId = view.ClientResourceAccessId;
            _resourceClaimId        = view.ResourceClaimId;
            _claimName = claim.ClaimName;

            Access = view.Access;
        }
Пример #4
0
        /// <summary>
        /// Use to update the database record.
        /// </summary>
        /// <param name="view">Resource Claim</param>
        /// <returns>ResourceClaim</returns>
        internal virtual ResourceClaim ToEntity(ResourceClaim view = null)
        {
            if (view == null)
            {
                view = new ResourceClaim();
            }

            view.ClaimName = ClaimName;

            if (_createDate != new DateTime())
            {
                view.UpdateDate = DateTime.UtcNow;
            }

            return(view);
        }
Пример #5
0
        protected IReadOnlyCollection <ResourceClaim> SetupResourceClaims(Application testApplication, int resourceClaimCount = 5, int childResourceClaimCount = 3)
        {
            var parentResourceClaims = new List <ResourceClaim>();
            var childResourceClaims  = new List <ResourceClaim>();
            var actions = new List <Action>();

            foreach (var parentIndex in Enumerable.Range(1, resourceClaimCount))
            {
                var resourceClaim = new ResourceClaim
                {
                    ClaimName    = $"TestParentResourceClaim{parentIndex}",
                    DisplayName  = $"TestParentResourceClaim{parentIndex}",
                    ResourceName = $"TestParentResourceClaim{parentIndex}",
                    Application  = testApplication
                };
                parentResourceClaims.Add(resourceClaim);

                childResourceClaims.AddRange(Enumerable.Range(1, childResourceClaimCount)
                                             .Select(childIndex => new ResourceClaim
                {
                    ClaimName             = $"TestChildResourceClaim{childIndex}",
                    DisplayName           = $"TestChildResourceClaim{childIndex}",
                    ResourceName          = $"TestChildResourceClaim{childIndex}",
                    Application           = testApplication,
                    ParentResourceClaim   = resourceClaim,
                    ParentResourceClaimId = resourceClaim.ResourceClaimId
                }));
            }

            foreach (var action in ActionName.GetAll())
            {
                var actionObject = new Action
                {
                    ActionName = action.Value,
                    ActionUri  = action.Value
                };
                actions.Add(actionObject);
            }

            Save(parentResourceClaims.Cast <object>().ToArray());
            Save(childResourceClaims.Cast <object>().ToArray());
            Save(actions.Cast <object>().ToArray());

            return(parentResourceClaims);
        }
Пример #6
0
        public void OnNotifyResourceClaimLost(Actor self, ResourceClaim claim, Actor claimer)
        {
            if (self == claimer) return;

            // Our claim on a resource was stolen, find more unclaimed resources:
            self.CancelActivity();
            self.QueueActivity(new FindResources());
        }
Пример #7
0
        internal static void SetDefault(ResourceManagerDbContext context)
        {
            var currDate = DateTime.UtcNow;

            /*-----------------------------------------------------------------
             *  INSERT / UPDATE : Member Resource Manager
             * ------------------------------------------------------------------*/
            var member = new Resource()
            {
                Name       = "Member Resource",
                CreateDate = currDate,
                UpdateDate = currDate,
                Settings   = new ResourceSettings()
                {
                    Status = ResourceStatus.Live
                },
                Type = ResourceType.Member
            };

            context.Resource.AddOrUpdate(e => e.Name, member);
            context.SaveChanges();

            /*-----------------------------------------------------------------
            *   INSERT / UPDATE : Member Resource Manager Settings
            *  -----------------------------------------------------------------*/
            var read = new ResourceClaim()
            {
                ResourceId = member.Id, ClaimName = MemberClaim.Read, CreateDate = currDate, UpdateDate = currDate
            };
            var write = new ResourceClaim()
            {
                ResourceId = member.Id, ClaimName = MemberClaim.Write, CreateDate = currDate, UpdateDate = currDate
            };
            var create = new ResourceClaim()
            {
                ResourceId = member.Id, ClaimName = MemberClaim.Create, CreateDate = currDate, UpdateDate = currDate
            };
            var delete = new ResourceClaim()
            {
                ResourceId = member.Id, ClaimName = MemberClaim.Delete, CreateDate = currDate, UpdateDate = currDate
            };

            context.ResourceClaim.AddOrUpdate(e => e.ClaimName, read, write, create, delete);
            context.SaveChanges();

            /*-----------------------------------------------------------------
             *  INSERT / UPDATE : Client Admin
             * ------------------------------------------------------------------*/
            var client = new Client()
            {
                Name       = "Member Resource Admin Client",
                OwnerId    = 0,
                CreateDate = currDate,
                UpdateDate = currDate
            };

            context.Client.AddOrUpdate(e => e.Name, client);
            context.SaveChanges();

            var clientKey = new ClientKey()
            {
                ClientId   = client.Id,
                APIKey     = "509e567218264608a91aa11213892886",
                APISecret  = "2ed65ad45ca8486a8ff781122e06702f",
                Status     = ClientKeyStatus.Open,
                CreateDate = currDate,
                UpdateDate = currDate
            };

            context.ClientKey.AddOrUpdate(e => e.ClientId, clientKey);
            context.SaveChanges();

            /*-----------------------------------------------------------------
             *  INSERT / UPDATE : Client Admin Data Access
             * ------------------------------------------------------------------*/
            var clientDataAccess = new ClientResourceAccess()
            {
                ResourceKey   = "6132c038ff0146f09a4e2dfab03a28aa",
                ClientId      = client.Id,
                ResourceId    = member.Id,
                ResourceValue = 0,
                Status        = ClientResourceAccessStatus.Allow,
                CreateDate    = currDate,
                UpdateDate    = currDate
            };

            context.ClientResourceAccess.AddOrUpdate(e => e.ClientId, clientDataAccess);
            context.SaveChanges();

            /*-----------------------------------------------------------------
             *  INSERT / UPDATE : Client Admin Data Access Claims
             * ------------------------------------------------------------------*/
            context.ClientResourceAccessClaim.AddOrUpdate(e => e.ResourceClaimId,
                                                          new ClientResourceAccessClaim()
            {
                ClientResourceAccessId = clientDataAccess.Id, ResourceClaimId = read.Id, Access = ClientResourceClaimsAccess.Allow
            },
                                                          new ClientResourceAccessClaim()
            {
                ClientResourceAccessId = clientDataAccess.Id, ResourceClaimId = write.Id, Access = ClientResourceClaimsAccess.Allow
            },
                                                          new ClientResourceAccessClaim()
            {
                ClientResourceAccessId = clientDataAccess.Id, ResourceClaimId = create.Id, Access = ClientResourceClaimsAccess.Allow
            },
                                                          new ClientResourceAccessClaim()
            {
                ClientResourceAccessId = clientDataAccess.Id, ResourceClaimId = delete.Id, Access = ClientResourceClaimsAccess.Allow
            });
            context.SaveChanges();
        }
 private static bool HaveValidActions(ResourceClaim resourceClaim)
 {
     return(resourceClaim.Create || resourceClaim.Delete || resourceClaim.Read || resourceClaim.Update);
 }
 private static bool NotHaveDuplicates(IEnumerable <ResourceClaim> existingResourceClaims, ResourceClaim resourceClaim)
 {
     return(existingResourceClaims == null || !existingResourceClaims.Contains(resourceClaim));
 }