Esempio n. 1
0
        /// <summary>
        /// Uses a <see cref="グループメンバーサービス"/> to determine
        /// whether a given <see cref="ユーザー"/> is a member of this
        /// or of a nested <see cref="グループ"/>.
        /// </summary>
        /// <param name="user">
        /// A <see cref="ユーザー"/> entity to check.
        /// </param>
        /// <param name="groupMemberService">
        /// The instance of <see cref="グループメンバーサービス"/>
        /// to use for checking nested group membership.
        /// </param>
        /// <returns>
        /// <c>true</c> if the given <paramref name="user"/>
        /// is a member of this group or of a nested group;
        /// otherwise, <c>false</c>.
        /// </returns>
        public bool IsMember(ユーザー user, グループメンバーサービス groupMemberService)
        {
            AssertionConcern.AssertArgumentNotNull(user, "User must not be null.");
            AssertionConcern.AssertArgumentEquals(this.TenantId, user.TenantId, "Wrong tenant for this group.");
            AssertionConcern.AssertArgumentTrue(user.IsEnabled, "User is not enabled.");

            bool isMember = this.GroupMembers.Contains(user.ToGroupMember());
            if (isMember)
            {
                isMember = groupMemberService.ConfirmUser(this, user);
            }
            else
            {
                isMember = groupMemberService.IsUserInNestedGroup(this, user);
            }

            return isMember;
        }
Esempio n. 2
0
        public void RemoveUser(ユーザー user)
        {
            AssertionConcern.AssertArgumentNotNull(user, "User must not be null.");
            AssertionConcern.AssertArgumentEquals(this.TenantId, user.TenantId, "Wrong tenant for this group.");

            // not a nested remove, only direct member
            if (this.GroupMembers.Remove(user.ToGroupMember()) && (!this.IsInternalGroup))
            {
                DomainEventPublisher
                    .Instance
                    .Publish(new グループユーザー削除時(
                            this.TenantId,
                            this.Name,
                            user.Username));
            }
        }
Esempio n. 3
0
        public void AddUser(ユーザー user)
        {
            AssertionConcern.AssertArgumentNotNull(user, "User must not be null.");
            AssertionConcern.AssertArgumentEquals(this.TenantId, user.TenantId, "Wrong tenant for this group.");
            AssertionConcern.AssertArgumentTrue(user.IsEnabled, "User is not enabled.");

            if (this.GroupMembers.Add(user.ToGroupMember()) && (!this.IsInternalGroup))
            {
                DomainEventPublisher
                    .Instance
                    .Publish(new グループユーザー追加時(
                            this.TenantId,
                            this.Name,
                            user.Username));
            }
        }