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); }
/// <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(); }
/// <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); }
protected bool Equals(ResourceActor other) { return(string.Equals(Type, other.Type) && string.Equals(Identifier, other.Identifier)); }