Пример #1
0
        public IAuditQuery AndSubject(ResourceActor resourceActor)
        {
            criteriaBuilder.AndStringMatch(Matches.Exactly, nameof(AuditEntity.SubjectIdentifier), resourceActor.Identifier);
            criteriaBuilder.AndStringMatch(Matches.Exactly, nameof(AuditEntity.SubjectType), resourceActor.Type);

            return(this);
        }
 /// <summary>
 /// Creates an instance of an Audit Event to be recorded
 /// </summary>
 /// <param name="actor">The subject responsible for the event</param>
 /// <param name="action">Action being performed</param>
 /// <param name="resource">Resource the action is being applied to</param>
 /// <param name="description">Description of the event</param>
 public AuditEventArguments(ResourceActor actor, string action, AuditableResource resource, FormattedString description)
 {
     Actor       = actor;
     Action      = action;
     Resource    = resource;
     Description = description;
 }
        public static IAuditEventArguments CreateAuditEventContext(ResourceActor subject, string action, AuditableResource expectedResource,
                                                                   string expectedDescription)
        {
            Mock <IAuditEventArguments> context = new Mock <IAuditEventArguments>();

            context.Setup(c => c.Description).Returns(expectedDescription);
            context.Setup(c => c.Actor).Returns(subject);
            context.Setup(c => c.Resource).Returns(expectedResource);
            context.Setup(c => c.Action).Returns(action);

            return(context.Object);
        }
Пример #4
0
        /// <summary>
        /// 새로운 리소스에 대한 접근 권한 정보를 추가합니다. (NOTE: StatelessSession을 사용하여 추가하므로 성능이 빠릅니다.)
        /// </summary>
        /// <param name="resource">접근 대상 리소스 종류</param>
        /// <param name="resourceInstanceId">접근 대상 리소스 Id</param>
        /// <param name="companyCode">회사 코드</param>
        /// <param name="actorCode">접근자 코드 (회사|부서|사용자|그룹 코드)</param>
        /// <param name="actorKind">접근자 (부서|사용자|그룹 등) 종류</param>
        /// <param name="authorityKind">접근 권한 종류</param>
        /// <returns>새로 생성한 리소스 접근 권한 정보</returns>
        public void InsertResourceActor(Resource resource,
                                        string resourceInstanceId,
                                        string companyCode,
                                        string actorCode,
                                        ActorKinds actorKind,
                                        AuthorityKinds authorityKind)
        {
            resource.ShouldNotBeNull("resource");
            resourceInstanceId.ShouldNotBeWhiteSpace("resourceInstanceId");
            companyCode.ShouldNotBeWhiteSpace("companyCode");

            if(IsDebugEnabled)
                log.Debug(@"새로운 리소스 접근 권한 정보를 IStatelessSession을 사용하여 추가합니다... " +
                          @"resource={0}, resourceInstanceId={1}, companyCode={2}, actorCode={3}, actorKind={4}, authorityKind={5}",
                          resource, resourceInstanceId, companyCode, actorCode, actorKind, authorityKind);

            var resourceActor = new ResourceActor(resource, resourceInstanceId, companyCode, actorCode, actorKind, authorityKind);

            //Guard.Assert(SessionFactory.IsSQLite() == false, "StatelessSession는 SQLite 메모리 DB는 지원하지 않습니다.");
            resourceActor.InsertStateless();
        }
Пример #5
0
        /// <summary>
        /// 새로운 리소스에 대한 접근 권한 정보를 생성합니다.
        /// </summary>
        /// <param name="resource">접근 대상 리소스 종류</param>
        /// <param name="resourceInstanceId">접근 대상 리소스 Id</param>
        /// <param name="companyCode">회사 코드</param>
        /// <param name="actorCode">접근자 코드 (회사|부서|사용자|그룹 코드)</param>
        /// <param name="actorKind">접근자 (부서|사용자|그룹 등) 종류</param>
        /// <param name="authorityKind">접근 권한 종류</param>
        /// <returns>새로 생성한 리소스 접근 권한 정보</returns>
        public ResourceActor CreateResourceActor(Resource resource,
                                                 string resourceInstanceId,
                                                 string companyCode,
                                                 string actorCode,
                                                 ActorKinds actorKind,
                                                 AuthorityKinds authorityKind)
        {
            resource.ShouldNotBeNull("resource");
            resourceInstanceId.ShouldNotBeWhiteSpace("resourceInstanceId");
            companyCode.ShouldNotBeWhiteSpace("companyCode");

            if(IsDebugEnabled)
                log.Debug(@"새로운 리소스 접근 권한 정보를 생성합니다... " +
                          @"resource={0}, resourceInstanceId={1}, companyCode={2}, actorCode={3}, actorKind={4}, authorityKind={5}",
                          resource, resourceInstanceId, companyCode, actorCode, actorKind, authorityKind);

            var resourceActor = new ResourceActor(resource, resourceInstanceId, companyCode, actorCode, actorKind, authorityKind);
            return Repository<ResourceActor>.SaveOrUpdate(resourceActor);
        }
Пример #6
0
 protected bool Equals(ResourceActor other)
 {
     return(string.Equals(Type, other.Type) && string.Equals(Identifier, other.Identifier));
 }