From 014677c2684acb6c8e953867168ee73545257347 Mon Sep 17 00:00:00 2001 From: Jezz Santos Date: Sun, 21 Apr 2024 18:10:11 +1200 Subject: [PATCH] Added remaining Organization/EndUser APIs. #4 --- docs/design-principles/0000-all-use-cases.md | 15 +- docs/design-principles/0170-eventing.md | 17 +- docs/images/Event Flows - Generic.png | Bin 0 -> 79670 bytes docs/images/Physical-Architecture-AWS.png | Bin 241044 -> 241126 bytes docs/images/Physical-Architecture-Azure.png | Bin 244101 -> 244192 bytes docs/images/Ports-And-Adapters.png | Bin 138409 -> 140908 bytes docs/images/Sources.pptx | Bin 913583 -> 919158 bytes .../Persistence/ReadModels/AuditProjection.cs | 3 +- .../ReadModels/EmailDeliveryProjection.cs | 11 +- src/Application.Interfaces/Audits.Designer.cs | 9 + src/Application.Interfaces/Audits.resx | 3 + src/Application.Resources.Shared/EndUser.cs | 10 +- .../UserProfile.cs | 2 +- .../Persistence/ReadModels/CarProjection.cs | 3 +- src/Common/Error.cs | 20 +- ...Changed.cs => DefaultMembershipChanged.cs} | 6 +- .../EndUsers/MembershipRemoved.cs | 23 + .../EndUsers/MembershipRoleUnassigned.cs | 23 + .../Organizations/MemberInvited.cs | 23 + .../Organizations/MemberUnInvited.cs | 21 + .../Organizations/MembershipAdded.cs | 6 +- .../Organizations/MembershipRemoved.cs | 19 + .../Organizations/NameChanged.cs | 19 + .../Organizations/RoleAssigned.cs | 23 + .../Organizations/RoleUnassigned.cs | 23 + src/Domain.Shared.UnitTests/FeaturesSpec.cs | 90 ++-- src/Domain.Shared.UnitTests/RolesSpec.cs | 34 +- src/Domain.Shared/Features.cs | 28 ++ ...sersApplication.DomainEventHandlersSpec.cs | 95 ++++ .../EndUsersApplicationSpec.cs | 56 +-- ...ionsApplication.DomainEventHandlersSpec.cs | 53 +- ...EndUsersApplication.DomainEventHandlers.cs | 222 +++++++++ .../EndUsersApplication.cs | 127 ++--- ...EndUsersApplication.DomainEventHandlers.cs | 10 + .../IEndUsersApplication.cs | 8 +- ...itationsApplication.DomainEventHandlers.cs | 5 +- ...itationsApplication.DomainEventHandlers.cs | 124 ++++- .../InvitationsApplication.cs | 103 +--- .../Persistence/ReadModels/Membership.cs | 3 + .../ReadModels/MembershipJoinInvitation.cs | 3 + .../EndUserRootSpec.cs | 452 ++++++++++++++---- .../MembershipSpec.cs | 4 +- src/EndUsersDomain/EndUserRoot.cs | 309 +++++++++--- src/EndUsersDomain/Events.cs | 53 +- src/EndUsersDomain/Membership.cs | 37 +- src/EndUsersDomain/Memberships.cs | 19 + src/EndUsersDomain/Resources.Designer.cs | 77 ++- src/EndUsersDomain/Resources.resx | 21 +- .../MembershipsApiSpec.cs | 80 ++++ ...DefaultOrganizationRequestValidatorSpec.cs | 29 ++ .../Api/EndUsers/EndUsersApi.cs | 10 +- ...angeDefaultOrganizationRequestValidator.cs | 17 + ...istMembershipsForCallerRequestValidator.cs | 13 + .../Api/Memberships/MembershipsApi.cs | 39 ++ .../EndUserNotificationConsumer.cs | 24 +- .../Persistence/EndUserRepository.cs | 1 + .../ReadModels/EndUserProjection.cs | 62 ++- .../PasswordCredentialsApplication.cs | 2 +- .../JWTTokensServiceSpec.cs | 8 +- .../ReadModels/APIKeyProjection.cs | 7 +- .../ReadModels/AuthTokensProjection.cs | 9 +- .../PasswordCredentialProjection.cs | 19 +- .../ReadModels/SSOUserProjection.cs | 5 +- .../Persistence/ReadModels/ImageProjection.cs | 7 +- .../EventSourcingDddCommandStoreSpec.cs | 2 +- .../EventSourcingDddCommandStore.cs | 2 +- .../Extensions/ErrorExtensions.cs | 1 + .../EndUsers/AssignPlatformRolesRequest.cs | 4 +- .../ChangeDefaultOrganizationRequest.cs | 10 + ...ormRolesResponse.cs => GetUserResponse.cs} | 2 +- .../ListMembershipsForCallerRequest.cs | 9 + .../ListMembershipsForCallerResponse.cs | 9 + .../EndUsers/UnassignPlatformRolesRequest.cs | 2 +- .../AssignRolesToOrganizationRequest.cs | 15 + .../ChangeOrganizationRequest.cs | 13 + .../DeleteOrganizationRequest.cs | 10 + .../InviteMemberToOrganizationRequest.cs | 2 +- .../UnInviteMemberFromOrganizationRequest.cs | 13 + .../UnInviteMemberFromOrganizationResponse.cs | 9 + .../UnassignRolesFromOrganizationRequest.cs | 15 + ...quest.cs => GetProfileForCallerRequest.cs} | 2 +- ...onse.cs => GetProfileForCallerResponse.cs} | 4 +- .../Pipeline/MultiTenancyMiddlewareSpec.cs | 6 +- .../Pipeline/MultiTenancyMiddleware.cs | 7 +- .../Resources.Designer.cs | 6 +- .../Resources.resx | 4 +- .../WebApiSpec.cs | 5 + ...ionsApplication.DomainEventHandlersSpec.cs | 61 ++- .../OrganizationsApplicationSpec.cs | 234 ++++++++- ...izationsApplication.DomainEventHandlers.cs | 6 + .../IOrganizationsApplication.cs | 15 + ...izationsApplication.DomainEventHandlers.cs | 91 ++++ .../OrganizationsApplication.cs | 239 ++++++++- .../MembershipsSpec.cs | 97 ++++ .../OrganizationRootSpec.cs | 250 +++++++++- src/OrganizationsDomain/Events.cs | 57 ++- src/OrganizationsDomain/Membership.cs | 48 ++ src/OrganizationsDomain/Memberships.cs | 69 +++ src/OrganizationsDomain/OrganizationRoot.cs | 228 ++++++++- src/OrganizationsDomain/Resources.Designer.cs | 58 ++- src/OrganizationsDomain/Resources.resx | 20 +- src/OrganizationsDomain/Validations.cs | 5 +- .../OrganizationsApiSpec.cs | 361 +++++++++++++- ...ignOrganisationRoleRequestValidatorSpec.cs | 66 +++ .../ChangeOrganizationRequestValidatorSpec.cs | 43 ++ ...ignOrganisationRoleRequestValidatorSpec.cs | 66 +++ ...signRolesToOrganizationRequestValidator.cs | 27 ++ .../ChangeOrganizationRequestValidator.cs | 23 + .../CreateOrganizationRequestValidator.cs | 2 +- .../DeleteOrganizationRequestValidator.cs | 17 + .../GetOrganizationRequestValidator.cs | 2 +- ...tMembersForOrganizationRequestValidator.cs | 17 + .../Api/Organizations/OrganizationsApi.cs | 54 +++ ...eMemberFromOrganizationRequestValidator.cs | 20 + ...gnRolesFromOrganizationRequestValidator.cs | 27 ++ .../OrganizationNotificationConsumer.cs | 8 + .../ReadModels/OrganizationProjection.cs | 30 +- .../Resources.Designer.cs | 27 ++ .../Resources.resx | 9 + src/SaaStack.sln.DotSettings | 72 ++- ...fileApplication.DomainEventHandlersSpec.cs | 4 +- ...ProfilesApplication.DomainEventHandlers.cs | 4 +- .../IUserProfilesApplication.cs | 2 +- ...ProfilesApplication.DomainEventHandlers.cs | 4 +- .../UserProfilesApplication.cs | 9 +- .../UserProfileApiSpec.cs | 8 +- .../Api/Profiles/UserProfilesApi.cs | 8 +- .../UserProfileNotificationConsumer.cs | 4 +- .../ReadModels/UserProfileProjection.cs | 21 +- 129 files changed, 4313 insertions(+), 796 deletions(-) create mode 100644 docs/images/Event Flows - Generic.png rename src/Domain.Events.Shared/EndUsers/{MembershipDefaultChanged.cs => DefaultMembershipChanged.cs} (74%) create mode 100644 src/Domain.Events.Shared/EndUsers/MembershipRemoved.cs create mode 100644 src/Domain.Events.Shared/EndUsers/MembershipRoleUnassigned.cs create mode 100644 src/Domain.Events.Shared/Organizations/MemberInvited.cs create mode 100644 src/Domain.Events.Shared/Organizations/MemberUnInvited.cs create mode 100644 src/Domain.Events.Shared/Organizations/MembershipRemoved.cs create mode 100644 src/Domain.Events.Shared/Organizations/NameChanged.cs create mode 100644 src/Domain.Events.Shared/Organizations/RoleAssigned.cs create mode 100644 src/Domain.Events.Shared/Organizations/RoleUnassigned.cs create mode 100644 src/EndUsersInfrastructure.IntegrationTests/MembershipsApiSpec.cs create mode 100644 src/EndUsersInfrastructure.UnitTests/Api/Memberships/ChangeDefaultOrganizationRequestValidatorSpec.cs create mode 100644 src/EndUsersInfrastructure/Api/Memberships/ChangeDefaultOrganizationRequestValidator.cs create mode 100644 src/EndUsersInfrastructure/Api/Memberships/ListMembershipsForCallerRequestValidator.cs create mode 100644 src/EndUsersInfrastructure/Api/Memberships/MembershipsApi.cs create mode 100644 src/Infrastructure.Web.Api.Operations.Shared/EndUsers/ChangeDefaultOrganizationRequest.cs rename src/Infrastructure.Web.Api.Operations.Shared/EndUsers/{AssignPlatformRolesResponse.cs => GetUserResponse.cs} (76%) create mode 100644 src/Infrastructure.Web.Api.Operations.Shared/EndUsers/ListMembershipsForCallerRequest.cs create mode 100644 src/Infrastructure.Web.Api.Operations.Shared/EndUsers/ListMembershipsForCallerResponse.cs create mode 100644 src/Infrastructure.Web.Api.Operations.Shared/Organizations/AssignRolesToOrganizationRequest.cs create mode 100644 src/Infrastructure.Web.Api.Operations.Shared/Organizations/ChangeOrganizationRequest.cs create mode 100644 src/Infrastructure.Web.Api.Operations.Shared/Organizations/DeleteOrganizationRequest.cs create mode 100644 src/Infrastructure.Web.Api.Operations.Shared/Organizations/UnInviteMemberFromOrganizationRequest.cs create mode 100644 src/Infrastructure.Web.Api.Operations.Shared/Organizations/UnInviteMemberFromOrganizationResponse.cs create mode 100644 src/Infrastructure.Web.Api.Operations.Shared/Organizations/UnassignRolesFromOrganizationRequest.cs rename src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/{GetCurrentProfileRequest.cs => GetProfileForCallerRequest.cs} (63%) rename src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/{GetCurrentProfileResponse.cs => GetProfileForCallerResponse.cs} (56%) create mode 100644 src/OrganizationsDomain.UnitTests/MembershipsSpec.cs create mode 100644 src/OrganizationsDomain/Membership.cs create mode 100644 src/OrganizationsDomain/Memberships.cs create mode 100644 src/OrganizationsInfrastructure.UnitTests/Api/Organizations/AssignOrganisationRoleRequestValidatorSpec.cs create mode 100644 src/OrganizationsInfrastructure.UnitTests/Api/Organizations/ChangeOrganizationRequestValidatorSpec.cs create mode 100644 src/OrganizationsInfrastructure.UnitTests/Api/Organizations/UnassignOrganisationRoleRequestValidatorSpec.cs create mode 100644 src/OrganizationsInfrastructure/Api/Organizations/AssignRolesToOrganizationRequestValidator.cs create mode 100644 src/OrganizationsInfrastructure/Api/Organizations/ChangeOrganizationRequestValidator.cs create mode 100644 src/OrganizationsInfrastructure/Api/Organizations/DeleteOrganizationRequestValidator.cs create mode 100644 src/OrganizationsInfrastructure/Api/Organizations/ListMembersForOrganizationRequestValidator.cs create mode 100644 src/OrganizationsInfrastructure/Api/Organizations/UnInviteMemberFromOrganizationRequestValidator.cs create mode 100644 src/OrganizationsInfrastructure/Api/Organizations/UnassignRolesFromOrganizationRequestValidator.cs diff --git a/docs/design-principles/0000-all-use-cases.md b/docs/design-principles/0000-all-use-cases.md index 63b1e862..ac131a95 100644 --- a/docs/design-principles/0000-all-use-cases.md +++ b/docs/design-principles/0000-all-use-cases.md @@ -66,6 +66,8 @@ These are the main use cases of this product that are exposed via "public" APIs 3. Invite a guest to register on the platform (a referral) 4. Resend an invitation to a guest 5. Guest verifies an invitation is still valid +6. Change the default organization for the current (Authenticated) user +7. List all memberships of the current (Authenticated) user ### Identities @@ -110,16 +112,15 @@ These are the main use cases of this product that are exposed via "public" APIs 1. Create a new (shared) organization for the current user 2. Inspect a specific organization -3. (coming soon) Change the organization's details +3. Change the organization's details 4. Add an Avatar image to the organization 5. Remove the Avatar from the organization 6. Invite another guest or person to an organization (guest by email, or an existing person by email or by ID) -7. (coming soon) Uninvite a member of the organization -8. (coming soon) Assign roles to a member -9. (coming soon) Unassign roles from a member -10. (coming soon) List all members of the organization -11. (coming soon) List all memberships of the current (Authenticated) user -12. (coming soon) Delete the organization +7. Un-invite a member from the organization +8. Assign roles to a member +9. Unassign roles from a member +10. List all members of the organization +11. Delete the organization (must be no remaining members) ### Subscriptions diff --git a/docs/design-principles/0170-eventing.md b/docs/design-principles/0170-eventing.md index 5c1fbaf5..d614c6e0 100644 --- a/docs/design-principles/0170-eventing.md +++ b/docs/design-principles/0170-eventing.md @@ -89,18 +89,25 @@ Another advantage (only available to event-sourced persistence scheme) is that w ### Event Notifications -Notifications are the mechanism by which subdomains can communicate to other subdomains (or to other processes) about what is happening in the source subdomain. This means that a source subdomain does not have to directly instruct another [dependent] target subdomain to update its state, when the source subdomain state changes. Typically, this is done by a direct synchronous method/API call. Now the target domain can simply react to the appearance of a "domain event" from the source subdomain, and take appropriate action. The coupling of the method/API call is gone. +Notifications are the mechanism by which subdomains can communicate to other subdomains (or to other processes) about what is happening in the source subdomain. This means that a source subdomain does not have to [imperatively] instruct another [dependent] target subdomain to update its state, when the source subdomain state changes. Typically, this is done by a direct synchronous method/API call. -> This is particularly useful when you have highly inter-dependent subdomains, that require that their data be in sync with each other (i.e., `EndUser` memberships with `Organizations`. +Instead, the target domain can simply "observe" and react to the appearance of a "domain event" from the source subdomain, and take appropriate action. -This characteristic is particularly necessary in distributed deployments, where direct calls are HTTP calls, requiring both the source and target subdomains to be responsive to each other. +The coupling of the imperative method/API call is eliminated. -Instead, this decoupling via "integration events" would normally done in distributed systems with a message broker of some kind (i.e., a queue, a message bus, etc.). +> This is particularly useful when you have highly inter-dependent subdomains, that require that their data be in sync with each other (i.e., `EndUser` memberships with `Organizations` and `UserProfiles`. As seen below. + +![Generic Subdomains](../images/Event Flows - Generic.png) + +This eventing capability is particularly necessary in distributed deployments, where direct calls between separately deployed components are realized as HTTP calls (requiring both the source and target subdomains to be synchronously responsive and consistent to each other). + +Instead, decoupling this asynchronously via "integration events" would normally done in distributed systems with a message broker of some kind (i.e., a queue, a message bus, etc.). The synchronous publication of all "domain events" is handled automatically by the `IEventNotifyingStoreNotificationRelay` (after events have first been projected by the `IEventNotifyingStoreProjectionRelay`). -Domain events are published synchronously (round-robin) one at a time: +Domain/Integration events are published synchronously (round-robin) one at a time: 1. First, to all registered `IDomainEventNotificationConsumer` consumers. These consumers can fail and report back errors that are captured synchronously. 2. Then to all registered `IIntegrationEventNotificationTranslator` translators, that have the option to translate a "domain event" into an "integration event" or not. This translation can also fail, and report back errors that are captured synchronously. 3. Finally, if the translator translates a "domain event" into an "integration event" it is then published to the `IEventNotificationMessageBroker` that should send the "integration event" to some external message broker, who will deliver it asynchronous to external consumers. This can also fail, and report back errors that are captured synchronously. + diff --git a/docs/images/Event Flows - Generic.png b/docs/images/Event Flows - Generic.png new file mode 100644 index 0000000000000000000000000000000000000000..cffaf3273a8656c6c0901248e39518e102e2d7eb GIT binary patch literal 79670 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 z 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 WYPmde{>Wkg9~DIng$g;#*Z%|T?Tfqs literal 241044 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,$=?w?H?0@#2M;xcH32MsA}Awzv09 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 dj!pMO`$sMMe3&lm zZgwhsv-ctKVsLylQF?vPS-JUM&!^1?ETT-^`46w;`IQgJArfv#Cd4)o2IIr7<)nvV z`3N*qsA$~0hWM-ELkP3l%=>v=fw$1k_yzEG^kbr=d>K=PD)Q!ZK##dH2|xZW5{Z?@ z?eA$ZNb%z1U?3{73D(aLnupEFU%x@pK7CqST)d9~CT-gz2s#d0&HiC@d|3SUT1zx$ zkqWqfTiomJRJfUggyxY+zKeIe#!xTfiD`|~vWA7}Jr3gSeGa^iIpYvi6%6@^2cDiY zef72;E1d0e2gBM}#4P(1H!V|@I3M)8J3sgFB90}mW70(UHfH!X{18;BSxWSElF(a+ z87V#H?z8+ZmkL)!fZpj7_NpX1b+DS9#4zjTQEWQqK{Ze`^H;swLW6?a;ZOl1?N zIOd+--$d-q`CMO)2o4vKrl!$4mOLFZaU`bZ+NDV3eEhTrZ=2w>Q>kf3fLj4nyTd*X z9c@bd+zBnW-f>^L$sFP=BIU0aC~b8+N#gJ37rXL{K@uiM`B&TPA*0R4~Q%R4aArzVypjWiHeKZkZW6Kaq9ivYs>Ht zZJs^d$2oCOR;^G6%J+x#J@1}CqI^{RLQedcwpkG=g{51{;T*)N(>|dt<*yBdmM*Ff4sm5Q;pEVI2tbu zFG-UhTm6Lk8XNagVw%bVW1?TM3x9$gIddqR#GDF|vJyL1+M&JF>q6Ha2%IQLAyNv8 z8C5hVqb}WMh{ZH}q%H#t4F8VZ=nX_}F-7|RKWfAvlT{>Ub@H~@kON`dc>_6ZSDub$ zy1<<`7jmrNS^MAsN*<1gM@rS?P59FF1pUr@a?umabl^s71!Cv^Z~Lr&KDfp3%XM^I$!QI}C)Mpk3hflXGI@R_> za_Ks))gLv>%%wu7F%I4)bjFaoF2XF#wXi;d@|~V#jfJC0s|SBYuPqDd>6q>k<-cp5 zUA=nax`=LHaAp%SC!?Bg`=NJawPv{lzqT-Kdd8qS=p$|(RFTr ztLw@_>ucLdp%lEN#)w$E4XzHq=ePzunOj=B!Zc_ub;m>;IXWybg4w3L9r@*Q)oAx1 zA^di?A4B?CLGt!0^#lw|Ph&C6Ml6Cl+a6p=F%nuX@p8fjz9EY^2mRGYp()L8(YCw> zwk%p`%xiqWI9K*-n!4|)!Y05@Yw;iM?35*Vxpp^mB66b{@AN7B&Gr9uuQ}h9Mu=7O zF8%oy>RPw-FsM(G(n$YI{?Bp&>BC}V|XCBIHm@_W~~3F}SQb(i|?dfISA z``5gE*SgyDNY{E4+&kH2%$=ZcWBHM)uC!hzXI}@r;pBAnKs$`*Z zhxvj^B>6#4K|49_O1$G|s@r2R)$tO=o;Yu24m+6;Lfx;Kj5BSpu5l>6t;nd`p8rR% z-7EQX1jDzMJ3H3f6MgbIJ^g=(Afszs1Fb{Aw{vsE;&t6$Un4o635Ep>2V8mDlc8)n zsgOo)=`pD3-3vAy#snwFxI%Lxnx1klgv>)szf5(*C9Q71Lr59?z&}kWmso38PE^>e zB~{Q}c+$7(p5T3lsz>h?HXmPgCDtH1E?Zh!))!#{fjCCKRta-U_(I5=p-x6xd(o@N zo5KOYOrXVoG|BK;;F{aIZGr28L(@U}aR;pt=gp?iDRV8QlHsYomO z4)NFq>1a;+v?)%~nd&uSIIDCJ(>m10_wyOnUrl>|A>%+bTAY5P%Ux7T3R`K~L$xZX z%F1?$YwRSLNdO`>u00$X=p@vrAMpr%%M39bc>JUeN(lE?|460Xz|b-OcA*-?SF0A1 zT&v#zio?fsy7gmJNz9qJJBTW5La<964Ao0X8V7Dx#)eBScwMMoGn$G}-EKis2A+H?zGBGZMj^aSsz<{!p{IB znm25IqxA@wGxxH?-g&>YE$zW5Kl3;50JW0tE=9h-l@wo}a}mG}e_+qa)n{dtJ$M$YvpdA-oFnh)6^ zIY-Q0elx9akAd;GR7_I!50wIbaumm#$iozReh4zA4$|O=uNp{-Kk~Fhd#gnqkD_@tPcnW5soe zump|CDByf|`^70zZvfXC=>KsV$zNJ*aYS**2}Y8n0fjqt~+x zF!wqqg$LSPODNq7V<^HmMTSQkGTGxLg|R4Uj6Uh$FMT0x_?|(b>@NEgPs6-Xv*X}2 zO2}To-S7Qp>S70`nfAzQ)o{kl8QROieMI~??e+BGMXg4cl;_1ccGrlMIqwCMi-t7Z z%ZO&(8OncvQMQxoS9-S{;G629iL#{_v7hPSq)!ryz4*udkniQJy}5wSD~8JyBPSLG zk=2p1#1{U|mb=$>_)u~`7M=wUTbFAs9Se)8`Y*j1f!pN5*PFlMQQ1ub9}5zVz(2^I z7~QTn#0cz-u#24_+OxMW(Vt1F5g%PLI44at%COU# z{IzvPNjekvvU=6$RTRV7Mol2aVh&!AZ-}yA&2ORP9OdfDqtS|TnNOZ=uP1UuN+Vx$ z4N3PXw$AZ<4p*(f5b&X-2D|aL#%C+s5wj^Q_B0^SNtFy(wAnm8|V_P@r?mR*#bNdxy}?i?2YZi=GjPwCovK<$(iHaS@iQ z#tT5=RLm$MW}v^i3LZxnuPSJ9nk))k+pnNWt$O@VKEef9~Go=-AdGr|eA4fs$RvV%xXI!0C4authso)T= zgYzg1ltRB;TvHin6GE;yvvkDN;@N$pYMkkScT@HFwW{l%XX+VcW+5Euw`JXjt>Z3s zx087EzG`ZN^Yz1RU*b=L1@%F%WozHfGZ^B7%WI5c_w6;vqgM+(b~!0@ajcP*55&F_ zbZ@?JJ;9$es&f)sS98N&f#^9tlHMIZU?xj9s@0v8TNoNHO#MpG3X`w8HJ)F+p_Sm1 z3i;S~I*vAsZl~-Amp(#uEZ;ddnfW4B734JA95>Ff^`H)6jn<)zX~xF*7zT(H+ZxSJ zw+-x${k#?7Sd2xfm+})W&2P>@GZF^4jr)s>r|5UKzHU0RQ2oB2$$yAy4w)^Ww3*Z{ z7WPLSd1R zi+|9xP-(n+F<#(s9g;Z<9P2rO>_l%^9>awF6Dxi~pB z-5aEB9bM6<6BHSSJZ%9>DSK}z1ti*Hqx*_h_!(!!0%o0kszluVuKQG{&3uNYXBnzT zwx(eM)K#mOS#w*&GVwfQ1`*~%tQq+L3uuw&RZ6kA!Xf#p-Q6sH|#2B zFwQnRmMYv@KNeS=3S)( zzt`MSJm6Apb>`AK3ZG@q6>Z5R@oo2eANB`SkjJ7obGP3dX%4VS)z3REXWg65T@J7x zTa#CtryMu5_X!sE$J>5R$KvZ9E0a&6LC*Et(ux5q?K~~FN4*CtjnsX%)|33Yw$`=! zU#C^ye5&Q!KIly~zLeJNP$JWhlyv?YWg`di8vila^tyowhEfpDQ|sgm_Ty2zIZoq@ z1G@j3;(}srWJ)7;_|%&b+q8E%;LxA=P^ar|2Ky`AUlE|r2{2Po3TiY2>Wb3jJ56m2 zFV^t6yru-8Gn>VhDdvIW`jm=%A_;a)f-#s@CE30zrkyqY|1f5pc zwmq1s|7lq0V?y|a+u)=QH7QpUWmYsK*{xx{onVsnS7Jg2Dj-HgMSuiWi)e?8x6$?e z8KACwd?9^{sHQF&M&pgCxv}Z1Z>6RTGS0AzyRE2x@-wWq5QrD@_sRrCBr!yPRx?p^ zZaw(X5Nb5!;nTwE4H9>!16?jw#ci+k;AXD_(9lm~P*fRhP4q_(=A+UPWzzyqr=_)@Z>m|4F>YP0 z1LJqM3l9Tv^lrMkJi=Sb@2-pclv~} zl;+y|#YQGT=Ti)X?K_Q+_;nej3 zgTI@Ab}ltW`M@}^%4rKzNFj+C7BR4m=GLGZG|r^CQOD^%2Kgal`&leMU`{1Hlh!fn zs%Ec^fVh*m%2;HK_$X0B>A7+9n-*Ch<6{h#K@>{<3L$}>8h%-MRJ}-I8GcDced~M@;#FAc$o8nHe(=)y2EKm31xAmnWDdbeV0KQMB6I32@gTX&(I8CYK8q)XQlzS>2y9^ zu^xIE(Ic-@qzm%AGMl3l|1`gvfO;?%L3^ijwbbDB@b-~>o3A{wRGxqtaNo#L{P<@$ zhGz)g{??P~BJy^)C>nB=yKwx&%&PsuY}b@f>+~r2>W;H4&{5%+STDtbv2%*y)yA7L ze@FIP*QyO3-SH*b+S|*Dx$OA8IOOtGnHXYn6yAbfDkdSc{Jv^^)w92##dZ8oJc}_qPBv%wYH3^QE92kUfT-6q$_y#PloD# z{|ZuA5HlyJ`UxG30PN>Af}MMJ&hqrMt4!Rljlfo?dHHJDa6q!of09UU-XAqi>M8-( zzh~sz<$(CzBnk_ecBS$ZTAa^&H!6i_(;dlGOe4@v6ZL}(r@7krl`hH&w{ghOA?~oh zy3ah6VhI=y7#kaljz?9O$sE`zgK36!4k|Pn+~0&_)l1tF6}lQF)!TsC2R#Zgs>r>+ z89u1U;Hur%qGS6KH?F3uCPI{3-%HA~1m^kG1eky}(;T9#)b>Y(l62KmQmEWxkXepx z3u}3MygL695&N8sw@qm@D9;L;^cQl*uLcb$BCA2UCa#`EUlhY8ODK*!ek%c6A?789 z?XQ~WJho^*7D-><=;*?#)`oanO$9`hx8{xljt5I^64HOmD3J#9B400Xszra3jeE#5 zBqJ9JZ|7ESH=o$v)N6v&jiCQp2}&q0Vf*PW2Z`*KktfYqo60s8k0ry~ZTQGfj@O2g z_5%6~Y>qszsJ_vUKxntCV496Ew|-mw=_M+XWyc!pSzqxB1rM+p*Cb(kUaw5{8hW=E zOaM6e!@v>^;q|uZ)Ba)OJHu+nti7;Z<0P!}jMxFu4+-AQPKd9|H%iSO!n~9Fn+23y z7b^W?l>^9CpEKXS#z9m2rur{o%a7(TDm+mS@)9hR1ewhFJZUU9rtIDBmgVfA6VK3a zM2%-b6v8R_f=saIl?KSQi#5Q{YxW7`_PA_7`4Ohj@bT0On_H{QW9blMHyh+oV)^=5 z>UCI+g|pah@mlX>Y3~Qkr&cKLsPb=>L5$hhU3aqwNUdoa84D*8OzKO-(;Xo}AhfM$^pKTjl1Csb12++@7R$Y3C)^!PU(`EclOfpFZx4}tsa=rR$ZkKYG-?XV2j$``2+!kKx0Rr4f8 zCw>bxw0f~Fh z$kSEh8n48H7waL#+j+d8d`Ygmez-Q&MXGe$z`LK5h2+iMlr`VqqBW{`9NaSNGL?;h z9;B0)X_g=KetKy-f7msY)>CVGH;@z})%?;oq2QbUb>GA~XH`>HE%piUpqmIV2?K-U zcrVG6k{=lD;m#q6mRzVC#JC>nsRMFMryQ~e$BY#O+;#Zu(4Fqw(AxEDc*f@bSX&}# z<+ZPigHHz0L;dd7UN9(=YYK^Mf$LS(dR1hfCasY~ zNwrpz(~gbnm7AJ^9CEUDtbki&?^f1zwYIOZqog|KEc$M7E;i!XaP+PTsTCd5+e7`V z$Vz@nQh4E(-d;@SRnBwjPEf8^SNb=r2X>?EgT{FT;8~CFXK`I}!qt2F2LT2Y#Vds^g{-+&G zb=#QaONQb7SOP3C($J5RV#V8^yc+_X#Odd?Zgyi(DpC5Q*fivyl$zE#e>OadM=v;B z^S(AUaO#N;6s12No@Y$D6Am!Z^0!e(4uNY(dAFabreATobK}LeJ9MyqcxX@^@0?5FwzQXU^J9_( zh)80-RKeIw45uY%cfrLpbwI;|^Y9UQL z-}(b?%`QoQNxYdcWxFj->;*5xE)Ot~+OL0HA1A{-0*prT4lG=!L&t}I*W`{-x4A{v zL&$Vt^`b-~Yfk0N5HgKyk{65CK_Oc}XdSYI9!cp1lB3shIarDK2--KEAAr;qiyLpo z2~jBdh~+eo0CMCxfY0e~VbQU3%(h^3qFZ=kWxkGSFrRrWw=HRMyz&0`>x{J5uZE?< zf6~w_`S7X*%!=F`EJqMww>|qFAu_-r@r+BDG}HCSuz+Zx0eSs%WG&WT66ny}6EJ9< z;c8juSs-x)cP7aI7DoDmc`uy=@_uaAbAi_H(R~H}Xa{yvamgI*9{#GD>68>p-4Pk=S z3QL0?c|UHp$@gUZ=_GIz_y+%*zNw)u0gFth2^NXC8@cu*ujlb(g{Km|6R5PPH5D!G z3p8%)>+P#jNeTNQbKYFIHw~&6IvKI(jQJdOQ8R)*<7g`PD)QN|1Yv_T?a+ywV$YeE z29+ISPl6r+8E{OYXD}@q$5};ouO5t`(&qghqq{rWr~eYB_6T z#V@%p-|acioSh3-e=ZipU@RIR2S;V5m|SH-#Z1yoPtTTtti#>bN0Ynh;QCrp1QPMX z^=GUl7R9s9LXFP1Mt>ZIb${Fq3<%yHHt(5+jAu;uUr+Gd{H`^;y>vO2S`fRrzWl73 zO2(ow9Q(kx0^4mH4gY|F1c#P3_0jw%Eh@zR9g=TAgIqGd`UH-J?|fX*h6o@#`kNV? zbK=$^cdW%7`92CF&dLtfpL?d6=g`tjNS zs8RL|$Pu}^KC}2C9`gJhDz~yGzbNU#9w5hM46KIY$=Ng1^CxYeGikb*n;D>d^2?N? zI}ox(peti}IcILjZ0g5bYisN2^lQTVQXqa-VmOc_v{L5KYz(x@K}?!jv8dXbB21u# zM&BzYpoXLMBFi%*MaH(cO?$iad)5$T{1Ivog`f23>2Bqo-UCT8+cXsjjL}DWS3qLc zOl}8Az9%%$`Di(ylE#^v^j_TdAgRmx#roMN#e57;UHK@( zMeg>L7p{NK?Vs!J`Uj37OvR|2&8a9FZq93yXj4g?Of&;FM}Q3bzSC|h#~ny&%Iy^j zZU<02G)G`8V#@Tfy_e2kzh;WN-Bw!F5Wo7(2&POgTi>^P^*PQcaW>#Z2cfQA#!uom z99SST;j0>(6Z=ZWR6h~rwT_*&A`$Ob+n0s64gu!A|I`4tVyfN;%FP zo&*gRegQ*(FCn#3?cW<9<$(K4fIFQ7&%*Nm764CrtUcY#pb)ayH9G21RXLlWmu~5h zj2;NEZZt;azPkc4OUjyOf0%AqAfDGBc8H{Hhk{+we{L z+GILt_dQ7#_#>9B=V0}2{ElKLTB6UP$se?S zNZqG0)PsLsQZdaw*JkYI$t3t|SD?cx`9=#ALaG{jE6@%QG8-!-D&_^==3D#*Y08b+ zuQJ^TPN1%~`eL;2sMp(0`>@wF+Vo2}ztfa0_S4MtN>7JD6`8FHvu?z(?0Kw<*g@)s zscOz`>>pvaCwIQqtGAxIw}**ynVAm4CsUojOebkChnEoe6PdD7ewmdTO+dFu)f%;Zb*YxlYSFIRv=LE0kOy& zT{XT%0#s!9-uzCWb?3JDlMM8bNM5dfINvZc`&*g;!m|q9^phh)Esyy3d?v|+)dCh(wsL8?mZf~Pb{h?=5t|77~j-_&`Wsi+rMYzNfo@G6uC``01! zE>M@}Or_P|;~0AQrKwoA0%PJGv8P0vvM(CVQYQF_wHF6#aa`hvsi3Rs_)JW4^8MO7 z_M&KuPMp2ASZM%$WR%(Y4%M;7ngeT$rb?6$TAqQBmmq?_tC!Br7zhdq%EQb-5NY0H zpFodc&M(6?ew#S86o*}Z`5K+cbwc&D=iyCClFQ!fE)7w|JrOmR7|P0;-jlb`Dil{9t~RtEznLg(+kqgX5j4sND~<;{9K3B zN)sEC$fSNr(R%UvV-+hGHE9{cTGVa-pT33B?{#IBRpi7#8KorV<^{;J2wxS*8R`~* zTJR^{6SKNJd1C2POiPh;jy!23wFpLIsz%XmtZ?cIB++U4S+`#Dxcbi6)Xb)h*ykN1axlUkq6Uvr1#w@p?bDGK0!}8DT{$gNa zuyEd}VbB|!r)9x~N;TRU|C~Q4sh;418J<5$c^+VEq2{QO2{?@vdtNBKxdF5F(^R(# zBNmk3H;&JAQ$8qGuU}VFmpC{!tHg|?SQ&xNoe0^Rgk9JFgwqBnm!PNx1?#^u0vWbG z(#s!!;C{!u-dy5e;sb28S@cT!+WL# z_WQM`Fg>cP!8)Gs6ePF%989%@K-_Mj0g|H85!X%gB(*|hKz+bJ0L^OAFE7Y69i83V zJz#1F`^mgs`AT1yjw4r*x267ELoWpYm^i-q6pNVIC$ICN%@3NOxxg5Kx8RpcG>g;x z^+Har*pIm6|~F74G3e2BD`bkff4`UjV1< z@6!aEGuDDU2{<~k`?^;Qc0}w+<8AP*r2%40PCzbz?BI03fF~Vcq>1mIz*lYWKn*bN zKkN{INSH?5rV^4LN1g|mD#fBUw?y<&@$JQ~KMDDea%M|o&iSCkKA2;A*C40vB0qDQ_cpms1J2S0x zDdv5FYKj`tq~tu+uWG>C4Q=v5p)wH)lspi0`x43!i*V zGXmQZ$MYir7*+eKXHvf*SrGPO=qKly8Yod_c`+7IvN(ORuoEfiy%Gt+N-6moTQ)XUY%I;IiuwKYp7WbwDIslNcAO|L7d|CP-6 zj}i#sp5Ckz8Isp~$c`7Lo7Z6i#U^N{*mq*A%z8wg9cl#qK5Msj=z<~UKs4~FVgb`k zv*mF{zK5GEz!CtM?BTHv(*{h^cI){BRn>B)`2u%)eR` zDYX79gH(eU-Uf=c$UW4OB85Vyp=9$$ZY8 zWC71UJ}UxA0&-yJ*rbrM6}1gf|C<}W57y4JL5klGDAUEa)`mL#hfSY1LcX2(fwKT8dy-|~KZJ(pTv_G|)-b|dKgO-d!srYTAiw52Gl z)Q?jDLlPAjqe7{td#MXX4@-GHkU%1TLI3Eyfwmz0 z{i;<#ngk=atFicSaSa=T)6KXNfrs2HNMv6Pwr=}v>Dm6jqfTDFV(xm+#nW%^`fF?k zm8FeUHD}timtJ(w*QPc8PYe?Ien zs1HC8&pFw=IaPuTS+w)41po5_b1`$vvK3-m{s`=x)r5OA6xQo>`0r{6>F{AjrPeMM zkE5#_9d)f_TnZ6GfIX*5BE`mbMFwl}a)L>EIX7g&(VuwfW0>*FWHQ!pzml{5Mrm4WEZ!N<3WUUp4|x&$Hq4UJXW^A~3P^5lj(UUFnK4S@(?)wEszI2_VedWlIq$`o@&Hez&#oOiP8}w77*oY7rRl+?;=O^l2tK z%>ZTazQx+c0CdP--?Q8YY^Rl%rW-}vr^e>HRmj_p17yPoFt6KRF3A!0yYCT17LgHELH$x-it{#Hc6cd>U*8U(Zz){c4?GxuJu} zwA={u#oV5mzh@EXza;WU`P_k%N+dH1Fdx0sZg6=iprhi_iM}A{ue>!LIgdI3Bum@X zyBo+?a0}U|X>IrN=urRAAMnLsaERD~%d2AWhIH1=p9h;?yK&JAK$*i!3ko&>JB&D1 z$^KhEf!BdLO-|#uq&hMlcuVDl5VM}yE;~plM7?a2B!SE9r>bxzUQSIw$bN5^2Dt7N zE;ya}ghsuP(pDZJ-=&q0DycoOF)bIp5VDa`danGU1rDecVz+Q+osUOw0Ikz;s{!CP0B9GGy^+Q=bA9h(!fHUv zA+BpUrE2-MyFv}{kpWhd{-1};P9c*J%OED|Jmm`0kv7-rPfczwKU4JrC?i(wJPg1z zdIR4BlpkMm!KyJwMFO5Fi1zXEWN>3uqJA6#`c2m;Jk!##J6D`5|ey*wM%*LPw6a2^862i{9a8FTSJ4(?yf zKBUf5<^TR2fX;~w3QfDfx|07==HBjM{$cl;kwM!bWP@sufH}lLPtBg0Z+3uwdkYZ4 z+^`a{V9HSGswxn0;!{Z)bH};1G_c!;kufqi6{vJO%7xc;NMaY~2@i4BOl?HO)8OO} z49I$Fl!u^ypX4`%u?5=RyvAxm|A(Es(rkDgTV9CDu%Xi+mp$OLguI;HwToJ(?-|Pr z`7DPW*jPH;^Zxah7#v(EV?n{!#JKY`S(>v}7FJFT!xvgv(m`$h`2XaM#eb6Ye|^*9 z%2JS;I`E27#`z&AXARcR!$X>sfG2^EK=A(0Pau@;e;c-|X5*VZsZ`};Yp8Eget#L) zrBJfNGO4>!5*=a|%`B&de_&enr?h8Kae=}8SzEe)=a!zDN-O_gpVL%Yo8GqBlY|1j zIGUS$f5R=<7`9n7WUVm;{bPC`CU$Mjr?+Tqs&Q|F?=!@jS!RMK`50T}`L0y7)ST#F6wAbFJb%={ewHWag&i{2t8*sjKP_T*S(KoJt9IT9G<9Q`gpYq_CInBkS52dGn zJv7X4riVA=)8j7Qdr>21*@QkWyMp{neh#$&f=9%%F(#h1Yp0=CS6#x+rw8yX5%Ayt z{pP{cX5sl)=@973;HGKuLwGnoZNOgj#JA$&-kzR}z}rhDTK|t-E7k*AkVzkz|C8iE zwJZn%ZOQ_K1pZVWBkUF$dt0pm1`<=^fH?zTU{$Sec!AkkEy$x@0DPMZT7M?||92UK z*nqi){sXk<29`Vr0WC7ez}jGOz*k)Q6~5rJ!!Zeu&-(xWihA5?gTAkWmY`!BT>p4! zKpLeTua;ksTJ;8nCB37#vCW;^3a9)0E-$oP?>nOTy1%QdYh>hjr>x~2qn4HyuvC{P zT|)`{C(~)Q5g;?A^27MYmb(G=meNwZ0`Rtyxvdp~68oimG=Pq=xh=_}g9G?6RFu>u zbBJ)d6biFT@`k(MH#Wj939^~sKg9wk5|I0wXkvvGJtO{%g3X01a5bUWFoG|`j_XbY zv0PeYj2CAhjKspi%J5z%7ZVfP6H%Y8HvGp8H@JCGUGMokT59;RXunXHEsgJ=97c@S zI6X&UpPlX;GF3}Y`G~66ugOw%ee*yb_^Z_Gb5qTHL1yLgd^74S)N=Q>HdQ$Quu}#? z+g)g(U0`8nm!H8{e^xgpTn19@pIonXwYT5PknpV%lTiHoimn1ajS&eCATdr>jd1H?? z4t@$UWM*&VAKf(FA%-`2B4`Bd^xnSx>S5~oX0%Z2g5a2Ww(V=M^GUAFyq(8lev3RdM&0rE+|z9^v?WmKVwS- zzdlD;R!(7JVsbT|XuG+&^-!}L)g2sm(H5XOoe#!;yKJuEdsF`X`}g4B;OS`tQ`3d2 z(NUbR9MT!itHdHOpjLNww&BHsZL96=Ew@M_f*KV|j@aMRc_BApHyxuq1O#Sp1Vdy* z=i`<6tHTT_d6fC~DFpw|Q?YoDk^YzHfDp)n8||ikY>gCzfHJsWwb?=B83?dYxPkcb z_}ko;-@??-?ChXcGcR9XUmqVAk+il(@i2J?qR5ZhtkE41mG8I{d?$?0QLfxe z(H{I|yc1j7bJFL}U&H$1fom!k0Sp`&diV4?`ag-U(a`g!&U8|Gus5bGXlVugiFSnb#(jo& zYZn8PZ?kG@UeY~4MMsy*q1fIz#XA%T+m6AZh<&M}^EI}%;qPI-13EFB&S0iZ9hbYH zdI>i;n1P3f01Lg^AU!jcZTXmdYiq7XJCH}>iy$Ak%iz>=3~rz^9|G4T)$ z^kc>Fa7M9Q1(#)ok0NzaP7}29UFrPBUWyW(CYwU?z6bQybKa!`|z~5_}fz~?BgGmpR`#^XP*dg zmYqTT%aJzC6%|8sQ{?32o6DOREn-ieR23l1?rv{@@vy9{tY)z%CvM7hn{lrAZqCk_ zn0O>dUgaDQvAoTM(NI{1skT1ak+9Lx!P{vj-kDwIGePtX@9jxdO;{?$V8QsiU|Dt& zAkz3%oSo2%eRTBbO0fkPfIMWyzb9ZU^PhX@C5CG<1B2vjJaMuXzSNukA8K3vhvq*6 z)o|})G(Jn$HKy~d`TiZ}#Kg*~5H`T|gq{6&pHBDMqj(aQB<04YrdYRyJ<_qp7ms9t z(b96k&cvjox-VY9WZ*5&BH}k(fAXf6_P?U1H!(5U;-|2y{PO2PUujEApxcX&4razr zPJ8fdyh9t#*zIfmL1`GzXc6ZCRG1D8nOxm%q)gOK;Xh}{X zgs+D~vCOzBh}Y9CP6I4$uw`C(`zx9xg<~gvS8o*s9HyPne|CQjlH6yJI~L#5+glyZ z59r|QHt#X)2WC7xJeuAiVyW3LUhYk5rDbM*N|bSVqtgEJiU6ZZYctFA#qnZMmUU*( zMc&}zlw3WW*z5sbIEp06<{Ry40^nl9yWQNKBco#hB?=5bEb8vg@(qEYZlZ5^S|(MF#uJPRfK(XEJL~YCCbYF_x#Y(Qo@%Z2O-UuFVWsI z9vyupjI6I@fM_ug%X*c!2$FnwwUmF4pFI90i^|~)OF3W^oM*JpKlVvwDodED`q@U-0`4fUfYCeq|kBg3b zXRm2%HQ`3bMay2KU1a|Hb!%@@O8FpZA|NLRF4nnxV68rhJ#uzw31xU}%_GAfkSl2a4Io-#!n zN;8(`;>-M0r$2{;ed}xw;PCPFh4%4NFsGy`AqPffKfM@&T~G{-ehvu@ypM^Cx_f*K z$4x{>Cq@dEjEap+%xa}oe%u&!{O68m)WG*V1BLsbT%t_-42iN{}t^|LU&)kHS#^kG{~~M#k(zg0HKqI&|W8G-!_E zs{?cV)L(Qd?V-hPj!Ns`XblY2mk>1)(a$X)>7jJC5DVsX|ETH5VW6bcXULo^V+QPE z2S%UgO)hsv)`=6N-8?H7ptXFZprQ<#C@Cv}_v#91ZwD5wmyuI+baqfsQAkKg2GPdG zfQ%N-h(Sg;wG@(O5z-(K@Mktg&w1&0m&DOr+zh~qnQoPWgM)-0D=`taX0BoSoyOib z^0y)8H&U(6fnvA5zO#wVQg3Ucyh;d@i8}fNF_RE0Ya=i}jEV|2>vF5v);8qYJTN}& z_OmzYB5>9Mrf&VSkvVv@q$0UB!h3QuCP)FLS9V$xmrSdBH)DgJy3RT}|2SFw>XV)9 zySx2?A|3f47dFXu)LppQtC1{53r;%B-)~Yz{{g6SY;*prUR1z}unht2ulxA&`?vr7 z{AbT#5FR?pPa4&8r}=qHoYp`~ow4s2iW#whUJ+jCE0SQycI6e|q8d#G9_Sa+o6g1c zL@3$Xlm09bF`uHs!XeTxFrIY9uG=J126Js6fOYpqM)lwb2(2Pp2i-#=Hv>)%Om*>l zhU#B=$4u71vI1Vr*l<1hM`#wRKP?(Q*#tRhHdeTaOf7dqj|CFj^s`_^4I7RCljp@C z>x+ttNYZ~b+6P+NMR9OwZz0zFfENE#*e$?+-%|V%+RNr=1c(4y^U|`Slz3C)h7VtA!i}Be<%hS{ zm-N0)xc2QL)G^#D9UdMI=fub#J97(I*}?(>->P&3oKnJF^4`@gbQgF&B zN~8JrsfthhR|_Chkkir8QBXiz3tql`OsCo}|G+&qi`r@g2}b~Yc=blccT7v2z=lKg zs9`18;2n%8@o!a62bi}{Jl4Tt`fR4o6`Gl%76T>4D%=#m4WH^bb~a@Z5U%5a;}v+nHa4>Y-i)pP zp1!{10l@6#!-Ipp7&th%vDxWq<%;XAO$u{@r!}ZkkJ6uRdtyGl2FbOXv+LX>U7zJR zPc7_pa{^86{;K%@yTtuZCGGb;#{<|Z1H5}J;k*O<@UUr^9IM23VDxkhp}Pteb>JTA zrFaL3DQ&upbsG&u#7uR}Txr}e=v3u=Fu}(MXHC;wQnV=-Ilu5w%q!SFc0)?e8i-gp z6^lB9i4&zEa)pkr2#$W-y0a#7SOxx*YAGq#fa}LZ%1>xYKL!BbHw_JrP>OKnyY+KQ z^|`&hLLt&+^TvgR5ReeUy#-+T;Ut_N^71mXkyzJOS63$|=@=*|NJ$|evKWb=2vLUm z%o-wUrnfCW4LZ%r+Yvsvxs|^|Sf5FB;ByiSb@K5IwicvH>-|^&^PPc1K`30b+{VqF zFlO!Cz)AZn*r%7o1H8USLqPpLoc>`byo3c|o1T;exj6#Ej$f)vJ%x2W88VPqJtf0i z<9D(&F@ESVm99*HuA7vq-8jwjJ-n{UT)u8*OlgZoe?mqkKYxya4yoWD9cd0mE6FWK zxj}(oIQFF=Fi_aFk^pR5wrHN12se$0-vOZzt%7(={G8d`HWU~LceK2uuO(- ziRyt-fY zYCJL``sV(6Kf{p{XG%P~oyPMY(U)7hQv8^|pJAeg zFSs>2{lA4o3j{7~yCtvzNWuo=Fu)j~UCRg0WsAmaB;P9i4bZa{xT+#H98ZaL-*pJ@~c~^7Lensz|}YO)W)?W_dL)0i2_OrIaLNv$KQ4(0OB@QxXzt z)Wvd#WZ*%jMcs!>6-}pB?1{ej$`t4+*Pg>3kvJVnn)RL{H#na(pr2Haj#D;j7@waz zSv9`PO@B%z!T#>>SWdvzxM1&QWzYEy3JyB-Oz+R{e|#6Bd_{9&Un8KELP?|ug|gIx zTm+I@X_TTubs|Vcq)as-!i;3AlIMnMb)vSSDN4#hp2XCx`|k1qQRNZM``2X|e3ZHa zjt?J|xr*rnQ)?uNO_LOF>t@JWPbQw8UR{pr0Qdi6qXLeeGkA2Bfihn`4~9bKV3=l0 zFp*)?`Wk77mX^|R5RQ#$1e0U~cg&1-!}$2{Bf_j- zNomyzMZ0#X$x*{z>pXNna(X`UG0-sR(Js^p+;diBlx2Rl3szH8yRIv!uu&Trg3wY9 zODDr{L+c~v1NQ7dWuDNWfmPq%Tgsza%(W5oCGf*!L>AMiG-ahGLXdROt4B+cALeB5 z8}i1arpKcJ*G_;PH(Vty2R%@SF=o}wy?%5gr)5Py!sga-Bi;nmyU=M zOCuhjAUaP zBY(Z7uDnD}UbY2qSXJ_N3<*D2r~440Hh%l*3i)SXX8(q~-c;R! zbkuH}#Y_k5EMH$VWbxxMa*X%<$C&@eB>9iGy_W>c(+&FRdzA3`J{F48Wng~Qp7>=C znVOnfSj?wC2O2fMv1@A%%>Z2`Bl{E8?DpOd#v>zpM%80Bjq0qfF-{f=1}-)g#v}{s z6w*M)rm|hC!I99>Ew$l3`jiPeYTKo33KV;N^oIVkBDbuimv5P{-7#%8ppb!q*H`V5 z@0USs8!ma)vtMr=SEBi)N#8v8cBzI&e?Pw*Odn3U&egD2-<4@1jhg(GPM)Y3|Rc+)}v{jK^vr^8JU?}F4{Y&2CK!CDHi6~3QslG z2M$>DsmgbCW{9EClh|C*pSlM(*@P~BR!S*FWN@!+-^#}TK2Q_*!+CfiBo<})T~kz% ziLYJ`X9&vN=LMjKi!b8y_^Dc@O6vR3QEG~5lZWy01hJOE;ddLKW1N}!P7bXyEqW7$ z*LjfkYlQv;MPha~;kJVSaO3ESda0QxDWBArfDC3LGSAcnP4#|V*CO3OKX`X`aHzS3 zxNf0+cA$+mKC-#8!~AP}{+EFKU*mIcyVIjiw?nx^+3L~F@Fe8Wpi^WUFgOFr!Hk5< z76AwE+qX!jh{h01-Z&=JiQ{^@BSc+ah#ovPvxb~OTG+JVtn3a^tuS38OsvPl5G?{- zelJ2hL{v1)k2(EBT>i(!&~%>sf0WV6H;Y$3FY}-3MN7EU!NWZlAVa!^p!q-^mt&q za|31TGa!58UpP!FmNzgm{g5qh)qovf;CXpsj$C{tqLerj&Wj7{=z(C_3i;yX*ziav zYC}gyra-*V?W-Z&+$xcQFMqT+H%FW{sgjrk9b*5?ErQgP@k6ckBDGF4DKon;US^xW z%VIh+FVn|^_ue+NFmlog4zYHtxyLEXWpG2y%|tTUPS=1Q8>`MB?QuKJtViE-kFe8i z-M~lptf7WgsCUipa0b+SdF?v6n5=-8Px|WX5kv52RXu#-mH#y{^W3@;dTl|NoukjV z2AKy|J~A+ZSBT(TDyXL^KTZS$0x5mN*Pc~OTi5au!7JOjvGX548>wUAVsn<6b80Od zi0ky=xp0+P5h@Lk)uzK9gMp9V1mnon zieL`Cx>7ok)lJnBb>R8~5j#6{3^#F0T*kRiEvC zz{G5HoM-*C3zkp{FCa!)Wn8K;ot1L8{+R;9Z?nNO@W&!*NuIwh`+l2fLODA#@%K%p ziIsKp#%7bVrl6qPa8#OX)&@~>dIi~KgA{Nk8eX_r zus8%!z2Em?MuDX(Km?wJ0sZ`3jwG^lDHRm1Eb>fB(HwS{eI8$QhcV_oOdWE0@EOKm8H*$41yCISl83gZb$5h@1YG#Q!F3|Cfm# z3W1CBEvyy%M4H=r9|;Z)Of5byZS?yM!rfg1Ne^o<-OYK4GHr^i8A1h;-q=CZ$dmz# z$+LE*`2YcDTJM_uU0ss7_se#Qg-piQIG^L3A{iuUvkQK36)k3jy1nzu*ZZMQBeR-q z%ks8{xXkeiWf)~`Bx?NIlWTkH`8zh(i2mX-&W%d}bc^M;_7mO>TIMb)5e)*1CyieX zOI-Pggh|oz6T0)67nPOK4-bpT$RHshMM|Bo#j)7dHT#a__F6@OezC2!rhaRQk_O%b9=p^~ixsnc>c9(3<(yqN4{ znv86z{EN#@H4Kqr&9fL=@j}-Wef+w(Jj$k04`|rfP6laERBoFFaEZ)^Bt9QP;N}sV z0P)wUTWnO67-0D85^SL%%2Z;r)^(q(+qoxNDP_=k@< zeYaM(e@13VbQf)WPUS(jSXzm1Z@m2rnnAwoZO;fGB*#Y;b|cb0?GU!Xg7nb_9kCyR zPOx6Zx`yC-fg`Pz{mXC7Fp>XXn9M{G;QeWDCTJ}<6P+Bql@KLd#nKbYzyvc&ZEr)S zL@Oghhu>F&$KJ$R@-Yxh*XZhg@ae3l-)OB?_!NWiW;g<*pzqiID`10{m&I&t$*Xr- zt8v}V+g3DDlh)-9@!4zP$2=QOOkSJoX>y0|V2$JopNmFAZu_&{Yt84R+ zWfgtBT!yEhho*Pzv^+RvKvoGS!+P8&ReBO=F%|Y;xrc{`&@q$3qJ21;=np|75r7?t zf?&*o3shv~M&PZG{geB5`?Cm$h+@8FBBw#kv7pGpvQn6*-{DZO;o+hEoJ1-5GVD!I zS~fVA*GfQ~lGo-TuBmw(`?0yX`RCVi;|}r4WI9uHP^;b-(kNN;QA!t0Tky=vnEoS* zMQ8}YvjLRos2C23ums>je3p;dVT$j$*3UOu7}-S>OGXGqs2~^O)2UJV*5R#~$HK+J z2;OL*=WIMbyL&v9n=riMhc%&ARh5L{F`Jny%YwGVa^zpk&-ZvhW+BLBwQkA{Tc-mff4_cT0+v%LEet{?|ZZ-8&wob4)|X2Mfv=& z$tkJkm8!+BD-zbd4V7wIPU}=}IBRbQsWt`@?6OPH%5LM~1vQG?TbY>tp-h}s=`j4b zstBhIA70WboIEAzL>&D%84fl(K&4Uoq-4Y4#NB??yC7H*_`&{%FP(;+_4_}b>DoXR zF^=VWKV=-2bA5AM_euVS??8<6H+<)i*>pDiC!SS?XkP{UNk7KV{_=rSMpmY=sqq`{ z5KftPfnh_(rcZEcjYsqD35VBw<^JM{11eIe%HGBZd5JHl@xTT{t)+SyChuLEbQ4ak zOCJDTM@k&jr$50XYWT64Pk8johk}`$FcR>2fTT)wTh_f!o1ZJr=*cn(Us1cHYrL2F zErsCVXBw0%sw*o=<@IbrXyG4~eue$&f^`7>WQX{^@tVa#uDE5Sz$8AWM+hTElZ2Pe zs}p{WE6n^cZt!NKM{n#fG%RFjcqqb?{|VX&5dxP~PF?}HLO%%OYgPjq>yv}S5AEqh zSzE~9$iQn{pNP*%$gi)j)pB5Bl(1(yy1GaecMlKp3Nq-Kt&w$WeG@v$2_aOf&cj+2 z^j5rxsSl(&7G}`L5Nba28Hq*;84ZG}F_{e1~cSEbW>y@NMB7uy1es6M3|> zzJ>#VSBV_TbIj;|Sor60@`bIbsrve{W4e|0Z|!u+6Je(jnP0?YI5&>XY*rZ)Wy#fe zc=*iaXrAp%Nz!yAWT!u}H2d7w|DZrbSlv*c$@s!%?`mfV#+j3=nVpo7ke8I?REF40 zA~S5P1f6qo=WTp$55#gOu*v0yF5gOLzZe@E%gG@r8iZ#uvdG61kgZRTZ4D}^2ET-o zX;FClN7#ddzv@eQS5~rU`dkaut{U7}8YKCVikT~KgV!knJjGY@5I@uN^OtQPCQTuF zRkb>t!>VRPzG*?;ls=#3H`7V6C%E$2)n*oDzCvAdm)?Qhyp}~W3`uImZZIp^u;2ju zC%XX%wXZ5*D)oe#p2I}|X+sl$g#g{2o-ZoB3D~`e2nc=eVhlWhoh=hu=q=`Rb4^;{ zSQS2deTFzPrNe3dbD>UB{`F~0fmO^t{4kjXV|JIPnz1uN>*Qfwvq#u< z;D>o?81WR{8H@-{`#bHPaVyaF$@I@1co5CHbxTs&m4izfti*`*=GJ|}TJcJ^HBn2T zN8O`#Fzu=NPaV4nJ_t=a7lDhKuNiDKni}xA>QcbcCre9LRZLr1iNgH+{N^K5TO}tc zDLGg6h@JdCVL15I4~S6thF>sP;-<|PEKgm6NrEut$`(oX_XZ1ccg9fkL?7ksU;@5} zo1eoBswSs6aU51jV>62fDy5Fh(Q9npaK}-}N#o3?8#5}(S-=@5@wif&8#PE}P9!g! zdGwwX&vU!h4$PIi5sRa+R#TDHP8(XYC!ii7domRk6*T}Os+VnJ-8|K)pZI&^NGB&J z5Rl<@Y}&?Wh02+k@&=9hI@_5vyRrxOS15+Cd>@x%Ia))tw4So`DU*&Bb2MKkQ6=hDVSV>kuh-RVY6`>#(+4e(CXNvnSF%FU6TgU-OH;b}PvLXUyd#QwRIB z0?&6^p2z#tlQsbd*hthQQWk*T^4xE1j@$8u7mY#BuOaQ+#BqZlIG~(FG-1m)%ltX*sNS~^1q0P*G&ka@ zy2jf_pBg{PhVBI<<`F*0$Oi`p*M5iFVvlm$9$c}2dDSR?(s4l6I<57hxiuMKKm^ot7V(3$?J|z{! zgXxglZU#OQoCJjDv*F-Yc6L`bp^9y}>@>3sNVf25h>pYodke41`8rzU7X-rk1`(tMc>?25?$xWC( zrX4;o7VKpw?c%4fvQTg@(3bBiB02ef5_BJW1TcPVxJUpSi5UU#qxmiKV3C0PK+V8I zs9-H4!zGw_Ucy>siuL^ z-??c*h}M2PH|H*lH5iACqwut5=t<`^0L~>Lpg*S5SOJZ9Oz=mXERCv@Y8h3F=6nIo zfD{_jJ-OK#gRnw`O)iI0z{vqp)RfPoZxdGRTP;AkMV|C-+yL z{UzF$p*MJq0QV5v`_Mfn@Fa*!8pr6P$%l9s+ktN0;dKMnH zqv+?X?qF86^R4P?wb)uA#Y_zJkEr%^VxD>p zooC(ZcXEat4%hQ7nkYLJpwvw!S+Uw(e5HZTpZr;Z>7EUkwAgnkBO?VCOVqDo6fM%K^GPgGZ3T#QImDNZ>#rcu#&dvu z)Urbn?MU=k99-Hi=u^$3O?Eu2a8)0oT7ihYeeGGE_sh~!H!x-Qkz>zII8PxF9Rnoh z^F==VDsw0{&2$V)$8&TS(cZuRd1Y0EYnA-RBO2i!_VVYB>D9dT4OXG&-GvQEvIG0x zQ`b9&G+D7CdtV%%2dhyXCVQLTg0H1)k5aAh2LAbL;o(exRch5Btir|qGjw;JPGt^l zHxKy7mU%mof_Dj8<5=!xLgHK>=G)F1bZmQ`qGuu_`X%6wSP`^h#1;|FmtJQ*S4_6y zu@V2vzyf1BR^Vl;Jf#4X-3Gg_lS7s?(4=~sD&HF(m<}pw!q*QyH8WLRSx(JJeR_^& zP=S`!iDl>FHDD#HQCIJg+h9Abh+$E)-Y8Fv#=4$uHK`t#-2k=(zE5i;O8cj2{}5-B zM~eNU$g}9pkwleWRuefXC5pQje@}4d>{d&b3A##zV4!kEX7|Y3YQ`dIj@7T* z79oXf4yy(`QG^(7QXE~Kc$W-oj;EIX{(fR#kaO+kvJb!)wZD}vN+ICj3o zf~jw8P58N`*<#S(8Y_!JymH()IazMdGUFsE#DVh=;K3Ji@zPF=ZW6=_vyu@07!Z-7 z%!XdZ#K%V<*{5~oWF>`&Q%{qrXf7_N2B=IkNX{%fDagJXMi5JgebzS(uvsL3Jbq3~ z0=Xs%Dw8DE3tW*jL*B7fQYV;ltp;Iow5sFE0i+JyA)I^|eM%inyxI6O0?fW+P~uq^ zJFidcv&H2Xu+G^|?FKZVKJ%RHlFsDJ!oK6&F3Z?eGK#a3Ukz z-G=bLakgE$oG_KLXmYHtKU8U8`n{{2tmbJb;2ZGy$?ZfKR3#?SZs~d`5NaHp#%Ikx zlZ)-$i{)B0XvP=T*E46xg~dIE9t;f0?fi8gm4I9p>>0|H3A00K06>4YNqXX!3x?1p zuNYbEve}L7n{Bxm?jFg#AQiO&QEtt=3_iCA^_*=Gzhjqv`*1E2;m-G7hx*4s;Bw(D z^eXgdO6WDE%;3(}fBt5oJY9BRz&EMr&3C!#58iK^tEW~bIo=G$sT2_3SsyeOaxrwt zq_Z6IH!c8jnGC!+?0TYjQ|n!$mHTwi$zH!B#m9i&ca0eI%iYCBa=7=2W-Ux5F%iQN zTS)4tVUa5$bDi5?ugD$5s{S?Ue;`K+Res6*`CfI#fL*WeIk||2bKT`x2Il7GieXO> zE=$&EwO`=J>9Gmi7f+|WS_uT-+@@BGC~G~OnZ~9^o2yiL?VdMw&6&o>XDDUX$DWSz zC}#+T9IRC7IdPK3$=x3i@n7%Cr|mZ$0zDyEa>mCeXD9`6Pw&RohRiNLTGZ;kPag5G zsaM~jM48_~b!e@15es*y0vLEywwt3}i`CBvdyTt2YOyJZ#S>|W%ICA^E~pYT8|ujv z7KNi3yV+HQJsnb8k-ee`8a(4ESMpMFivGLcMr0%;aaPcvX;34ybhK+vS@>rkIV31V zcz6+6ied53pF_ff4Nn@@$3Y-RDAT6DG(w=A9>Vi0kW-*_?+sR{(sq3i#)-EcV*o70 zYbozvKjw)zkheMAPyx;kI)ji1_l+q*Ni#le^~?g$3#5Tk)z5^GrH6ME5Ynl-^vkxg ziyaf`A@`@`D8ZrAHWFn`Md;~-j9Ln^;>!3sxijebp6&e7__DNV6IjYL8pV-{`{eV` zRoU9vqogDV;$I_{3#O73c`rzO2U1|6nG{W;FUOd{p^`d~^hqUUqC z=E7oPkYl)WY>ttG`{}py1s?L-9sst^1mQ~!*w%qQ5G5?((<>hfAg`nf>z&D&Si|70HQw%>M>os#Be`Ov1(LU4ZmA{Iw5WM=Np0z2ugc4j@U zo+t)3z+pUQd;iYbwBKNh!&-S|VMe=v7GN&c%T{Al!=94meaKzC)bQC9im+?L$WAj$ zJ!~UGM_}F~hZsqq1IG8|H{OZ;cNlqWrwCJv_3pU7k z{)>=FC|aQ=ZUefr7>FW6;!9B>VHj^1Pik2f|p z3WEV)bicciQNgcl7)naQa~?E)C9m-C@b4!_$!W>1CJ{`hAxNRhq$w0-3+O6~m)QcN z44Q!>KZCL^e&XDY*O~a`vPTUbl67RIB{dmdmP*U2Q%)KJb+1fvq{g?yWS*-kOKwQ>wfEh+jk}`QjhfDthGF&`D z{u?EZ$tMHivU$x!%x?jcAK*9``uI_pI9UWhlJ?L0&LPAB4f>0j+s&>-IYoOnEKFMD z@x@Icwy{zq7hTY5r06VoNKd2t4y@fwyz?6ZEF74aQpf|4K#DZ7ip(lLX4R3Ak%5Ot z$mx)?JpzwWHe=AfG(H?7qNp);6ot)X(7L7WS|&o|>=vfmu)OZ}65XN8_(}h|MkhxE zjB1Dq`}q6l=t!Mbo7IK72DK5fBT1B24z7WLYI2<_E&Hl^Sm=b%TfXP`fUWPRGU5w$ zHT6bK`msJF7|2@~8Orme7-z&I7e>3uo!7W``mgZl3Yi}@aJtRTdw>;A-Y9e3@rtBm zWF+sx(&h2vO2{Q?N|x1TIsV(-4_0x%D8}FGLr2uf(Ph*w+RJtytbI2+{wxDUW@oEl z@ALVgj!rMg7WKoGNtK5mf#VrX*)Jvt2XT;lp)5Hm2=XE?O*b=dW1$t~R#;u>q`lFS zmhI5{bGs+Og`G}}2F)A_?iYiRUZfHsy2YwRIbZa8;6@WO6Y9Cl*wLvQvEO1>cqzvM#j#nCY^nL*H>*Ib1Dwz1_2GfQ#>%8`62W6X&as~E^A>yb>>tv z&U3A`7r-ZW7kmz}{h!vSS1iRe;3fiG5nxYbq;hyLHzYP#tYw=kSPEBWT4QA;EfZ7R zI6KPUhX9olmmn$q<*@w>ASfDtB6&bj zakC0~y$+}?V%N#Ylz^Z`9V=8U&x*_$2?gzTEX4eEnrCun7vVTTswERZe*%XSG_j)( zOG3306fCre8;TVaPnmq{m;2((aGe0+ANTNgYhN^icRPRBx-1Wu4iBD~?v-^+MJz-Y z%XSz91B%6{Wy~(KF?XG*jY1DGIx<3dJAGcc8!&kH+5@&?;7~tbw8ORQQc+P+=Ag($ z$Hm1)A2qBie{4fa^CvFHJv$>#=|2M>MkMMb(Sm+M%MRLtpoGSP(vZIL2@VMHXhAy# zRdhlr(OYU$DzO?*-%D}y%)BeSHxT1pd~pa74Wy1CiIz1lTj;1@M=_vIgDX)kkfKE^ zW`jPXZ@_JpKxZ`Q$FVS{y+T2gk~1GFah!X^$>y(R77Ud&fjedA45pEiIj&zP&cM2U z#LKwDql%Dptn=Vx7p4WXW~_-EKENwqCXS34Bpm+*X<2-LFRUI!ooVknz*k z0$>tgVMAxKddaD&$(i{0C~3`a4vq;{942O`Rp{7oOAPzo_nXiUtUN>5YGmDed}p=D)_{XoQiLoTv|9I zENpB^NlE)|sf$VOhn7yDfDbGPVY&;Xgj6VUr4)J4F$s5R1q=JsDsZ^*W;4{{X@upc zON(B01uFjtQ|Nn^$Yg-v6AmW;r?{|Iu_35ec|G@-Db^fN56T-&VG;A&6{R@{-9wwMB@OFz0D&vcr0dt&f#trBQ}c-U6}J^x&jvxH4Ru$O-8}dOz@dBTqaUMJ{{86w zqG^A7EvK|@Tp^|K{!^M4?1Z>hAhK6(4rQiz=ie&G%0nAj0c286YHsQb^Q{rV7utl{ zW)FM;i?bt&Ru?-idTpEci(;)jWCA{?x7#OiTWB)Ms3yaQ(!7ybq_`E%BvB63+Buy5Cwt9Fu-Z)LpKN=hyEFgvLZKdJ` zpNomsQ&kfFN`&q)!tm|j&HtTy?bXh~#ky(QYSn_^5SzASfJ|%hT7OQH%&~Ub={TL9 zCC1gu+1S`q6E|-Vw8Xyr^88#^(j{jvoh#SUUcX4suUFp1!Sj zgmKizPkx6>hPU#838q_MzdYbkB1LoN4sxwkrXKo1j3(7_V4I>G3M&N&KMY_&-*&=x zWAGLAsbiURA2lHIqtHv7*$Z5af@Kz+5|Eb$7k~+H&EQ5)fhuh2G__V$>Z@sB`S3A? zL25Vg^%b4Bdt$R{WWHy_&*Zt%ETvXq*;PAKyN0-{UUM>CGrK^ElB#4Tr_FQe^k&gw zDucuOt@+Fa9Rpp$$4}jSCA%X^_;F=rxlZ4N%i-$odWqZ=&NBg*JTCM6B zR(=e?J+yY%&CX1y0|U69p8+?Z{PDA0{CjN$#?r1|hLHaZN@q(;)JaM--j|l)0#;N4 zXBuqayx5q@;p>MmGBN_}&`7vsxuuHE{CqIZ`dapbjVO$Ct zL}>GNDp`0y7avT1e25POG-cNZCG<)**7~4(1;MLiq%ZwUMyt6_U4K$Ns$efXKuSYN zN5D1IEbH}Et;d<-eK^e@fi zhXO0Cp{4`6Yl3k2Sy`1!GDa1$6h5X;F9FP7oY9fOrZ8;E)AZKUhhHVc_|h^9m_LCi zJooN3WpfC=O1Ni0B)! zMWaIi{Sjv0TXk-KwG$LsOso6tHnBw`yE>)Q314X3!2Qd9#~?Z#H!Im#YTyGXhG=R+ zxk`0RE8Nt5L*)z8SIud$r}T8(g{BYirS@_yHg{h4<=xW_)11V?v)qD?3P;dGN#v8cu;6dXyEB3e?U$eUh)lJ!{LxBkgIP|)ylCouGY*g~O_7-iR zj2SR_#8pWN$=Tc{$B`*7_lu9hU=~%&5V>G}(oJAsccu$3M?)jeO-+7pJ)R5P$8&kh zY^AB>Lx@kW*Vm3?=)`(Tn;%iAsjn5bB_fZ@to6a>y?cIw8xLNcRl*AY$*u9*vpicg zZdiNzG_R(zO9ya2uEKZ`FK9q}7ZAa+EC3MREyah%i=g7gx^G)w`-^u<2 zH?=9mdT@}Wa9L;H{nGG$`8@vJ52g2}(&D#&*Cy4F0hTmNM^;8cN{T_L^6>=wAqQHC zN6&|%TOls4)no^2Upwo$Zg!&tkLt*xork+ZQ`?9ud=6>JbLWXx;M{J^SKa3k=^S8k z8ZQKFzSx|ez$T!>Lb$9f( zzNgz>0MY&5uC&4{+FboWpf9%xEX+E3+MJ7%)A|uU;99A>0Br9_LQ*mkYvJJ4=lY{O z-T~d-%}0Kp9$b#~MIk76wiL$%QeKjEDsFy`6c}X$8pdlF^$k8>9_K;>M{dSA5nA&3 zbc49eF3TJNm+~)Ar&Y)wb=3;;gGH_D9tc@HA`I zeUj7%cS%W!KwDrx%Qn!Ao{&&gnjgN*KPJK4_+eLy5gofhl8W>5nV9RhQ7)^etB7ey{n)@HAnX)6wcdd`VHpG1^vE0Kd<#q-`sZWWFyR zWWC$t3#4>ce?0GS;P-aLR)j0Tik-EjK{Q&Ssi`n5HbuE+~P6lHLzN^TDl*Wqah@nxYz350Ay46Qvq0qn?4W@&ns zy5YKNn+xdY&oZ`tqAMywMoEIv`$i@9rOnxEc#Nd70wcwK^VV}~B0Acbv5cCc!?Z~6 z`Dwlb01)=})iZOD_Ys}%_}hLfWV747MDx%{k1JU+XVA~}-JLMSF3Me^R4B+x>oj{l zzaXQyJs@9j@kSG|`OO2{8&~Xr7V6DrtEM^wLm3(TsA0yr==p$K@D%=UAqz!P1#9C{ zvv)TKP8|Rn1VEr6ud;*(h&-Qe;k%$6yDBRqWj!_wu5UtLU<1Ej5Q!uAmM?2m1ys4?b#Re2 zwB5F@4gH<34;k`l1~=Bb@o#awZ9cYJDHg3;FWl7v;$LyA+#AvqGE%)9l`H`1!_IvI6#YpfQUoIER{AJerVDZ>=BM zPd=4k%B@o>AXG#uAG*R>kT;mH%rVnxK1vMLxFUcZHWeHr)ACU!^fY z3eIm}k!!(iZ2HquFX;4-5#IX+&rLk(tR)9|eV0s}gE`c{py9tQcQ1tpXA+k8bsUI> z-C$IxAxGcbF7j_@fR-P6>aodb`OUP$UX6()kDby;HcpDmES4lYuFiT*LdD*_2A9;> z^bXIpduXBPoYt9fy?neLYHS3Yb-OpK0l83gof({7&YWQ)7T>p1tte8Hdiz;IPLGx% zy3?ZoX4?}g(h}BC#?0CI!u4hv?D9P$$GT~AgVsdN z2<

Fv0iD;^w!DsNt`!%aFJ!03AL(0*w`+BX+6bNH`Ti4__e#sJ(D$fG)@6u^xD07Ylhu zu@|w{XA1%_FK{9(B7$tyqXO0gW8TXuRC?qG9-ikc|8Rdtzx&VMPmpTh9Lb=;D9fA< zl-nVumt;hH;)l^o7NE!3!Gp=l=Ii;#jqa4wl?%XZv_HTV6FRkuS7HLE%Jk3-J!N=* z0y8%&OcJUw{;*ZHE()wO3OOw!W9+o~g?6Jl+avCI`^DwuHboRLre-3PxV}HPm`YrA z{1{pEZAQXn(w{(!5I4R^9mmXEecTjF)Cez2?Tc!8yi_Ikk8fsC6MoMAY)t-a4dKu*?Zmy zpIH?^;ztz4!E|Vu?%;!XiY|R;L+_JF%mm0xU23r)bm;!!dCbtJ^XaLr8nl~Lye33-O8lWk>UcL?+5>pZIXC2fu@mk-v@ct6HuUvYI4you9<{O~E|Z=#ZXPqUT!7 zPG1@h4WB#nhigv&=+F$$w^#=ep#_8$l*B*n$~BLIg91A>J5rBLi#A;Ah_#WzM+6x0c^JfTGR= zK1l?>rQ(wGpX&^K3+GfGn0Dek7loy0u-Aj$CxzO_^fb43w7$7%0dVgp$7WTk`@>ti z=VCZN;6apg9P!EH?2u_EhJ(<+i})XIhWOO)l72*XV^0RFx7TmqVUwB zT)@mCD9A`Tl5D@v&zPoAHb@ru@g9Me&``|h;1gvMFa;&*b0OOI29sI1h4)khzN;3* zcSN9NvN)$8ymTa-Lbe2eB8*A$43Y`GO=g(Pq~{R^w|hUhETYdU0`zb_YAnhpAFH7~ zF_mz$`Eiq)v$L%=Q>K<3D*!=YHvR){-#xF;Z~n z30G-!wBK$9wZPw?#YqvbH7>jT>>7rc{thJtwE9CL`=alu!VPOn&_WJvx&HN|LBnLCITGRfFjZvT> z8K5-+cU>~Wc3n77bE$exjwd@N5mT!zav?YxDk2Yzz#Q_%w?NSR67_kn@0er`R%8u$lj7(BoKf zI+8xHn~veJ6o;^`r=xp1*A4UdQdOjXsyON|>(KmA`SEwxx05A*ex2Nw-dAZ&?`GFe zit6O**t614kI8x??(zj^r4ewF4Z&Dy9E6g0f)Fh3y)5QQQyg(AIRU4v|d;d*ID zzV!l=O{F(;6s~`v9P|n8R(nBxmBjMo z@ws!#at0iJjk>+-+3>h`qaRBE?~nnYz)d{XZaxThPt9H~>JD-ijr$Q*9(^I9RXx6u$1A+YN2|c z4f~DT=~r_}l~|$iJS3QiLclI62%>FV>XE_G08D8&_&0=KeE=$s(=)Q4waMBnasPQ0h zkLU!4R^#(U!3cud!h6VY@ed|T)joG@M_hM}$*wApT8EfXP;8XT3qQ&s>K&merj-A5O|B_0xYXj*|qxzqrkffBCeP`+I#CT=uS{ zVu<9{naiCz@67$i zt}G-d&=aseE5xh^a}=ViOC24@ZCtCw`(x027U zdlJfJYSFATzPm&amSmB~t{u)2TTV&_Le$?TFVZIUHG4Z7M*n_Epju4y{!st7g98(~ z^0Ae=APZ~m+G20}D6{{H?S0v;aiH=s1U?5wgH zjUFBP0G?%Hriq{K8{)4F(S&$%v{CiWg{S2c+*~VU{GK78WJS07J@5;_(8dvsFW^r6 z<(n<#X2A>6BaI6GyT=kA7j%VLcj&qAPKHkBd>{Z8jc_CCKK^%#_kZfvGTaS)5Rk8X zNfAMn|0PdtRJ)CXpJDcHmk{S5N2pt=WQZtfD+p*0Vr5DwmU%qbtlFyj7f5-Bs=O{= znOryAKOg5t6rq_5QEhBGcZdrp;AHuC`~EDN5uebwemEXo0~fw2{vI#TIyhhol(u|% z@fN{C6zCJ0=1+rRu#t-^p<+X`*yj^An_ICNZ1#N-FP3by8^@WY*b@~=V-5}V5*O_P zDBoq+mY5ml=}DOwqx%lvi_+b>1rh*kib7T(Nkt2ncm#~LQt8#x#abw>bAghvB_<^# zA$(K;qA8dMz=G`U0#AuahTfB~z9!E*9@cSmM5&wxe#rBfvP<$Lcw} zO_*L5$Ia(*yCRa`?AMc^l@kJAq0>@`A62)aQpp)Fkyo|_|+E{=gsID{`-YZt=L)F z?jn)({garcdev!sG#_q!&r;;4XVTGWbu4eZw$b3$N#l0H#54xvCOMhU$YZP(Do)EQ zq_OCEY7NXGQ@|x9B&B|tn)cWan6Qw^1F6KgI3AaEBXxE5dqMFcKZ+MB;}FV=E&-S* zoTs`st?+ zWwIvBQF@!cPx(Vt53w*jYFUGyKB*K5cZ}Uv70h$HaIK6oaEC0U(ppyp|-aNRU`bITjOUYc|Tn$&^g>`)F1d zuM8(wdO=M*XNzpTZ$sDDkvY%W?xR&77%6L!N>dnEn9swPTJ#t*umCvntL7tJl}l5*0vsPvXbqHRMiUJe#30i^QFMg z;wwQ&ZH}Pm8Ck%9mxZAHiO)vDC~9p0r2#H0oIh;hg8Autq5k@`{J1z$bx4Rhr&1I@ zxaB>P11?|_FsiH|+Oe{NNq)rI&%oohWN3wtVbXC|iuw%FFdi)=G#V zV`NEpM6qQH7Q$cfsQ=r4DkSRv`q{32lZu#3;wSt5DGpZ0;&$i$9p0U?H0&lJrhQ)`-y?8yw$XyA8WssCOX~=!X z(AM;d$3INQldgv4aJhX4-xnT7olHWwzD*vP7Y{JXg+WN#)Cu$&G2GtW<~B0`osbh4 zNB4DPle33sNpW!iqysav;N;FHCcdd@KW1_8NVCV#-H``kULY*LINt_e_$s}e0j@@ztv~Z

()$#wUmze4YKP@tVI;I$(xUy7Us=z>Gzdp@$F5RPE3cq zeH{Mg;_mTRJ+0&$IH#H+D)t#-k%?bDy0kXmHfS}2YqB9&tv&nvI|RMx1g#2)wH(}( zy4e_V!A!(W9LZ-4MvGVTjerosjLex-W?We=G%(=PqfyMIXU$3&FbTZr+Y4&!B?SG2 zRRj-hLENjY1O={D9y&1N>=+Jl0`}D!E($lZN`7b&hOJ9|T^`OpfpzUlldi{S?O^=t z*Ke*ar{k&MX6joeW_aZU*Y-BG;zIPJeHBu&#qo5t?g`_o82p1rT=>v0&G-=7pkg%> ztCdqO=T$sRWo|KnY6Y9MLu^bOe+UMSo1w%g3RF01YO4PNVEld_f+T#?%mtLzJ1{() z=EudF$(og`%?dNtq~9zClGTnKr#{F*+pK{q0!KfPg;drI#d4}?uC z2t~lY&-DWPOl1JfITC*nQg#J9PU1In#4z%59s3+oM0Y!e*Z7-$=ppqL67hYsILi)h z69&Co`afiBdlONP03&44J%AE~^vg!P`2#Z;{%(ML393GNQWfC4NA^Hm=3z1RaFk_( zyzJxbsY#YmlXSG`h3j%xC%e=GXPI(1-&%{@b>{QI`Sf^WpQ7}aTY=}Mb61eBMc1M8 zR?x0OBO2dGI#Rne)Hkw?iRk9`cAsR;3=zS;PG&vta#E>mR!Mn=-5{tSKvL!PP4Gl9?-5%cJaxwEZKdqgFN3IR7W{guops;z$xq2;A1Sqc<@{A3nR_Dno z#3!{IXZu!ulJ-+mth1A%v06w%^lu-x%7;cf-rr+<8@gmlt)z@po76GPaVV+Mpg?~K z5wUu_)@fUD_tfVIjpW3%ld}DmOjj4jgx#$V%TYf9M(TG4OWZd#h1`E`W#-q;Lr+bu zTsH5BH9=K8WNJ+opmO6xZz!Av%`S>T5D!O${1xlaDp}(7nKSwk-bwABKp%&lQ)ZUMY28q+UA7!#lM#*YH)=?3ROWA3jd2@}nX?W0D`P^i! zxY953cw`=|lvgR-3|-*=ruGLfuo_V@FVz7#QEH;W;8 z)oi3^$~M28lyrq}?H_*sPJNT*TA4o9nw_s&R(rNOeFPdV{K%*LX){4Dc9E+`Lgynd ztGOZ5az=L>L{?7luz9oO3+(4+U+hQE(Yf?Uht!$}g>i^rqJTtnEi4FAmCYT;G8~f( z5EK}@+h+FfB@xZfF<|^_p6>u4LhrQ^4=^ZX-eclCE9x7lhoUW(JIffjJIFaoJ?;U; zq#cE?)H%Be!n^Itd^k79xfN20$qU+ndd{Emv|lV1W)}&NMd@{ax63@;U+8q2x!C9g z^C;=&rHoxn$Wi_f421(p2w_235Xc|Ph`c|oYFVl8`zh0k13`8G_*{sd&gN_&#=z9& ztL?v?FH3$aNAsV6015pHa@h<7H0mRtsPBi()B=w~@oU{2EAofdQ|}2*Mr2cLcEv{z z@Q2Jg+HeVTMAAPhey(@%>(Dy_QoV$`V6a(We7{VrX7ND-NNeB-I=Hl3**O4x?mEy zY)w!gUyx%jal_jm#F#b)e1tK$=H}x6=Q9tN13vRePcpywYk^e~4hooZ>NpEv58b+D zLL62^#Ka1tf9(x_cUud$R@*#2u4ZeyFKY&as|+`*KH%Ux-78Gxy?9YvcXtJ+ABIVK z_Oxeebq7l^HU-UDl?M83GhT+U7={gRLZg+K;L+j;K-gSw?>{W=(Xn!RfdS4tM{7B@ z1Lt!`@pDrcFuI{+M4g2^1UpiyF@o&y_W>b-Fdybqzk6A+a4vBj{WrmSuc(bx7*Vo@ zjq6lgSdgelBe6cQ+|KT947s60xlI-P&dbKM~zo9ty!>BmPTY_s( zsV~&@R_t=rK}nM1uUlL$SP_I6gAoP9eHzF~brvF`J{?KL^C^)T&qRn{BI@2(%heE@ z$GU%qDWU=udVd491s+L0ZgB_}m2wsN2CAu?(s|tpe-^=KA3q6H4i4Y*^WUqx@Ar5f z7RH5Ny0H)9i{l*ZdnFYGP$LF?zHkI$W&U=2v&fuDh2v)H8%j5Xd{dm*acQ-a= zp_$ihf)P#Yw<}(vTv`cnL$bwp?q1>RLF9V#B=|C*em|iDk4=Q;ML>duH8nMzjmbJ? z3njS7D4?$`n`W>9KyvYsh21<5c%6v?3HyU4dGpMOfxEb%s-`9`ev!pl#K_j(+}X*; zvE4g=!)-D(Vo-=RcHnL(eh`DJ%xUc~6SU^JqWpb5upvE%n(JnjraFjd7M%GXH!=g*qSJuQ>U!uupn+Bdn1XAG=u-rka|;5pMYsOOl;1XK1@rY zxt+wp|8MobT!$HhPJy_-YXsox!A#xNm}GjO^_Ywe#x*<+0_A#ZJjM}ba-7;)Vi(h| zbBSCPTHo4V00j>Z0cw1FJcwBON*zky&CRW3p#J{{Y>!InPX=Lz*S~gZxTGOSjf+#z z(}I_SqEIc>7f=!khWJy*R%#9q`bXyN;7k9l(0oWk5JfC79eEti^Y4mZUgPQ`wUQfl`M&isanFD*$I;=t(2}rhRSD2U$qL+%Mrx(Y!2>q)XjMb6Ne2K z>?ICO=%J!#fURb`t&13d>5>a?wDg+Ja(khpMZR7NeYY#OsHkuRstOc6B`c4##6OS^ z(UjH+AWDOCiBaC$y`b85hjx4NK|XVb4+sytv{V;@Mw%7bspT_|C(eJ0Ijt( zU#waQSN=5|svhl*k@N~&T{EKs6=p%WFQ`6BsWD;^Oeb$?6cI=&H9*F**rk&_CdL@! zY)nrI>){xM{zd88pt9^5y+7iyg*X8#_!ZIm>u;|I?5p-0h1d+Dvhbsy2)0y=<_JIM zNr#~@6#l34^vn+7divu|+Jj+Cb&k8mVl8!#x0m(&HZut{J}%?))$eQWZd~N42{5BFY?nS`CyI15q_0*yG8|nYu7Rzr{*zE3 z;<2vg-->@G$PR$)@3UV${gKbx{0aQ%l(4;dZ^qI&R&VR+zOP;$N!80e@3Dya53>H8 zfq8mB9?k68h|Ai%cl7D0g+eF5ury1d@Du!K=jQhGbjwxV08w#&=HJcIW*TpEnSR{} zT)gUA^W;V`*Ow(>FxwWyeG(HF$35}2gaNz@5{n^dXu2%R(@E*eD0;%))J*$K(2M*z z!Hr$VvnCC7*06WU0*X>_;6XC~lJ~{oPQeO8nc>TKs$`N?e6d#E&kxT6y=+%YJ|&~uL>CT@0kT*Ssd-A~|K$tCPM zp2HWbamR;GUN$`kYiy+N`LWxvl?b;AMs6Q3>7rFcL~+DLN@Xq85WSWG-4XeqSPGWM zvaBhi=%+N~aZW0UtM|qBIx<_xEm{M|2!~&CrO0f@2@DlB)2CNOfFBxjFKxcYD zpb>EwlkR7=RZ=+@nE15Uq;j*Wv*ZT=mtZgeg0_ebEPvT4DCb6~x=S%b96%iS>e=|7 zB8VbH^R)}U*#Q5h|Mym-U%}jrh#>tzDhLsM-&wK!^J_H;XZbuzM<=g+?=A z#1Ie|Fs(1q#RUq2!3hD<1r5i^NeNrQ$px@e!#6G{;f`H~LQJ9LgJXFR@@lCTcG}kl z#4oHrH;o(@XAYD8DW{!t1dFuuU#CcCPc?e-&+or%^Y8GR+9z`Ja9+pc&bHctZj%JG zH9j4~l!o^K7s-$S|An@yKEEG8_>xkQ8tAU}!L+RTAYJ(2u6eOFi@&X-G?YU`t?Q>K z6UnhJo3j>5JHgg(p{p(;Dw9;;yj~_|CA%1m23aQZ^RQb^ABYB~t07yhanu^$_&Jh5 z5#n<_kJu>;;uwHE4`eih3xcrM;7srG)uyr5%5vn2-n`JwuqkC0e{-T?;ycBz$nfF_ zNQe1>(Af#lm4|SRP#hcT-@Uw#CbQ0tw?SruoiNvTfvLHrtv)(%I83QNP!OOMwZ+Ix zQZVgeyzzHyto3{>At8db0*5?yYv)uuPL6(jq?CrfMpm}^JA1LoWRx~}0~1LBF-xmP znTit`HJlsIG*uj(9d%z}Tm@in{pqhaZ-VsSnP#!;A^pfTm-5$0u$au5?lPjqj(`!`{&uuoyn|}Y8pRe_J80g>6jG0o9^SJ&kliP z@^kDpbiL< zaDimc^I0xD2c$`me%vXrAQh%Y708SKPKYcg0q_8F3eqO{c(VpX8eZ+UHM?$b8Cg+L z8#8N62BT`}$;zZifbquuB|zQyjmwV|ki6^w&xPsY4*8XUn&@#dg0jYo{^!t;_{ApXBF zYz7q^O_*0rkibU}_*^PDiystg0#5-yNL`4AVCx|QP8K{v1ZWWLm4!j!oV_Nq9)u)R zj7IicDvI&szANvt=g*t=f0`|gIsJ0}Tn&t3Wc3$zefHVfZm{=lf0m;+!=d#CCU$iV zSn!wQPk|DqwMuixOsI!FvuTx#j+pW~^;|^Q8B^G(jipl67s!j0WdB1f7ovlP_iOt> z>v4cLPq+QHtNIypdmE66_W`hS3=>Q!3fNoOK0;wL$w9Vp&8mZ2NvY0PY+Fim}iW6gb>7PA7`r?uaA* zJVER0j0yth!(Aoep^sSM{@Zz*R2nEKXRSz}?#S#)8gzd1YfCQjMVb73Uk~6$W&bj9 zOV@r^}#`EZxIlkvdKq=*Ug|GM4 z@>T7%b3ZvOxA49-x*94s&+CMy@%Dp<^n??1gRKes2S&KSG1SY8V0-}lHqhtSg06mN zYuu3mL7zD$l$4OrAkcmsebosRm;j4E9&Cjt!2<=YG{0Iv`!?XYsn_zxPmTN4V)NAd z;0a~3d{-b0D`KpTaSZecATz59p91b?W9;Mpi8%Rk=M!&brPji zTT~p3Im?`l(m-?6p+K4v%mQ9^#MZ={s#> z^gV;c17!SpLMJlV*@d`uX6}M-oodvk3dis-|Bz>#oCWOY9sxp}-0i{Ft7DDtKa*x1 z%2ayy0<*%06BBdu+1T(A{x{_PpVa0%6(TJJKwQZa0)vGE0Y#AG44s%%tMJcy^e?Mn zXLJAYgNG-RVi}ks%*^NJhj)FGl%b0sU&mrEX3{^OR9FHBi`UdlO~iUoKa3iX{D+eW z{s;@<>G;fPOu?WsB+X{^Y4z*|?Mj%Y0yQHfWG1s1b#R8cYAq){yt*FbB`6`&pM3G@ zwX1?xjOx4c zru54y`fh-UOq=H2$vl!*DM;N!ZP4-*nzwglo|_i_&*gy z*OBx_J)44&2P_=%griDuGJ){rYJQel~z_Ugs7>7~W%rnJ;pCc{n>CmNVIj5ar^ zZ&sy+dGWO3WCCPPgI!(=Q`}$?G%pW|oZ@)d3`qLtTX9%oR z<4-r*=x2QR0ptED8GNVbr9SacL!I1M;BLlgIrogZ7IPc3160Py)zSUT&8#}z0|?*8kL#$oW=fTn9%fBIxqAO!RarjUY(32oQE$3!~rI%Puj zhdsZ*tSkQG8)&g-IGEcLbUJF!4{v^ro~I9I&rPj{Gha*Bp1S%Q(-!b%NpW(>_m|f( z9YU*RcxMWg;#KZ6sQfZu1uA?4GX>l9ol^SPSZZh!)Q47nWeX2&DZ7^*VDaHec1u(y z|5I(QY^d>Q=G~e9B)ocT*|6<8-F)p&KAYmyekIQDYJBzMJ$pWzT*`K}%}H?zA-hyy za6m5_Ag>cLq4beB*Dam8ZuPX?2!$J?!(TuvbmFYK;H z(&YmA{_6=I9?4BlAr_56M^`R}(l8*G2Nn_5-qA5KHad70vd}@u%S%Bat|m4%ZWw%2 zM_Z#bx{D+#H60=*|NQ8HCt;FBD6SiYXheS-C^~SFb^5iu!-d`bB@S$2)&gB-^1DGu z13SunfMp?2qX5PdVjfykKx`lu@=SaLLB(3jHh;d%;z^z)s{gw*JrC3GR=Mz(0yyeA zQP}V_79z<1J|h2F`4m@^!AXjCx`c@G@P5MT@0MMHN(rww8P{n5b+B0&y>2gd2^9&r zlu}o}7+s3*+eJ$uG5 zRTHsd3KeI&z+Eu;;;c?8aw7NlcjF$JZ06saN}<+kSzRB)6IzeJ>40TRE9E82b}2fX zU5BiCp#tds(V>ZvkzZA>LC8KH9t86DegTKvazC!+d%*Xh)M742FM%O1&%{Ow$HQ&I(w{lzL3xr6Y)fo$PSW7w0^&_8plbzEE zCS8^_#o5(;?YzdfNrYKXU7vGF2KYL=-vcofM(Dt`+^<^3_%8}tjJ>0DvE$X*6Vb;X>YRpDWA<_d#OF$1&Dfl57SJu zy>3SZ1EH#PIxs&Tbh1>7fT!fWDh+}*5*(qahocF zPMaxx?kEWmU;P%(?RFjTrHe%v{dt(Ec7cI--dtP8YUqcKH{Y{Iuaj2Wq^G{2o*MR+ z#?f-R&Q_zJnIC`i{we=Pl|`IxauH2?gs-uOW2!JM(e<>FUi)fhpNQtapnbQre=Rec zk;^N;9hiQ^!mmNNHg}NO82DytYyAEqI}&}Am9e?Hd0E3F`;U*Kcdy@(?ji?j6A9yL zNsK~qn#twp07Epw1u?qkGhO`c-zAWtZ0_mqdRW_z#5MPYTlhn23mQa`G7ugeE$U8? zy&iWNJPsAi|9UP|5@=B5UrZ)uoT+dn5aaCXdSuR50Sd_F)|#yyot)OYy}4B=05}Se zv}#|iR94>0g^d(YLfX<0LCXvYQ=<~fN?Q`YXx~_msF{vjd=>?slhP`Vf?dE@1O{>g zc!rN(I|-9-N;=T3;3ffyPQ@8w46)#1$SzET)3aU_0?Cr}vn3iDnlTe6Ep2qG7qB?F zrvLu3F8u!>k_2qw^x^*JDd7c0Klt%u2kQdup-|w*bI;csP*oM@ZP4Wb$b3B6FiUNBQEAgjkuH7q9~a7_CtXdN`-IRPmAE)Gx|0q@-*T zOn+`OWmxqRh!&hoph8AZ`S%;W=q-^|&IQE_4J0+WJmWVGf6rn1Fd3bvw*50%v1xR? z-M)D)b|NJ~bKZhmyf=Xm$FxB0A_Rhd3ci7Q&cHmgRNn{<)?{ijTb(e9DuoOfZ>2XwUFv{|@G6m!fkD2mU~oZsIb4oO z$kYK&#`7@40U9i~b4!nK;#F}n#Fyht_fj*BO^lOe%H3m`QIii+O7luH*P8BKo$Z5T zC&7VZW>$N_kDq#U<>M+Qe<81Kb+)q6e6)#=z4{yEhKqse9MeRld3!k;#5L^AyUXaC zY^Fc$y8lExxE33-)vst)$d*;))<*ql{sQO^UZd&wyug@fJSXFw+-5{@%>bz811~ov zCV8Su6pV1Gi7~F$8^khMx8NO`pzyFT6gUXp_W7o1<&*jRDq zj9Qj3E2WaH+D83p?bdX$9f)PA%dhrw7|n~UXXAEyS`AIl{=U`ZJ(W}ay7h93OzgG! z`uySAV(WIdx|8B=Z`<>@s2>__tNnQ=DcIl9gM^G6_|t{gtNixH z5hFGe*m$@_BbsfKaA!|nFs%wJXMjrFqrsAOKH`Bs^MjeMcevW>2N>k3BNco4Te9{@ zfYhv2&GdFKB6hkg32+yBJ|Q%&-EE$3bBWQi8Nb=z&o+#hwG zwaqXa`EmXos`n?=C9NqgR#|xtdewa)i6Y`Tai{$azsDo|n%D^2>dF;%^7rwE81@_o zt54cbv0Q!np9SQpJ*H;s6OiU5&tne76jOnoc9a)U->$-tEloKJ{JcNVX?!bFJ~ zSUXX3d5Gxyn%O|P{L;ZTkt9?AvE$aE3aWSdmrVQk_$VhQ z$2c>i;5vX>+SJt23BFfMZUEF7TNBYQ=D|UQJc#iWe*U?(zf;m25t;>80to1~9Fdv< zc|g3fpS{ioVZm?<-KNQB6dm~`QUZlcfUxG`;$pTW;`iA5 zh9l^#8kb>d7FH7;^fPEx4)?7uFoWF|Y9=z<@n(0hu%_qlY@Crr*iXuE9$Q*DwYnhJ zQUP7f2GRQ?+gb9CbLL7JEB6nTUo#w^2VbNuT^V+kS-UKCW+BhYX5-tXZt`FH1bV6R z8tWtIx9&XG+I@E*j@YN&kTLYFof1^NcacFt%D@9cs?@|oEv(sZx-c9>5RSzA2j>f# z*1ShE%{C&EKs(y2<@*S8qtD6XtHpM)N1TAY*-DDnb#;_%fZfkmLYE5t4I+F6GSPr#m z63qLz5;=2af)^IF$#HJPh-&nKtqpA>Jq^W9$r%Qu*`?}#4zSm)0*J$0 z$lcGUye9h{Jw9(c&#>Th1fRQy)mU=sT`#659VIUO4)uM9A_oOPHNsbB4gu9amjLB- zKRs_E;H`rXkk}YUrsO?$krdjZ%R7O20XP4OI__!XEEZNT4&r-XJMUG^CaYalF??e& z7RxCTul~lRs~T%}kIPdi?&G`bMDrsHJyGK)rm z{jz^C;Y3V!&r1@-&#uo)xX``a?t*)+l>Yv;6qiWe2$p#i>_)}jUR^GA;-s3{n%Vr2|0pgf8toX^DvaAB>Vq| zFC-_<1nI9O$l|<|+ivLfyrI*VHdmoi+Uug!khi% zu!2lcE%s{Vo^nyH&%KYX$D!i4nAWBa*-Vi1Jq9lh%oj7U>>XWCWR}LlIQPkzdauO9 zgP50f=2HjX<1L&XX%Sz>;#=&(oi@D)E-$7E_VC>yBrY;8(Si`@E1b~5*;!bS{yY6&h|E~nPE!4)yT6f<`%?hOV98{r~`>9sVWJ%ZAQ(cHzOqKIJ zp95kq42(bahQmmB9M{7qb6bFMY&qg-%U4fUR(6&zc!Z<)pOK1ryx1G76l>1Zu%SzI zXZ(N{8#g_1J}GJIeyxtGg1(}RlZ6pPj?hjR=7kVkxBCIMkbs-t=Sqq!MROdUt5~yzb|d9~%BAsqZpYM# zj)P)ZzHafb-6*|mpCRVxmirzFT|lQ)^!f~f=T-27`KJ)H-h?Q8F$+mb#G!2WzkA*O zcoEajzp1vgv_#~c!^Hg)!+o9KqaFehcxJ(lxT?oLw?9G^`VIV%HEPBjjF6yYiAk#C z?j!`X&?I^-`82SJ(2SDfc|xhjH&9&8s4HUn9*NB0-ge) z%*;#yKR_sZVP#!FOssH%w!6E&v4MYn5jdz3A3X@CxkD5I?_zA7D4bMJ&5#K3eb(-j zPJ+G-Mh#HAGW>SXq(?GQ)44OuKD8dc@^WV59CQuzsWjMx_YWu0@!FIMkX9sl0YR9DL9BXy@oc{&VkAGU0Lmcdn24zTT8*ys-HIrOUzPLoDh#?z zwmL=3><018Av$?tY6sSLy$1DJZo^RIVNei!??lI+>_kpzE19c-4j8 zSu69#m&J@oNEg;DmKUuy`<9qpxx}Ah#)m|VtXBR(^KJhZUN3c7P?0N-M!e^?*{Pp6 z4!YUc*qVA@L*cW5Mx{hL0nzI0?fqd%^A3*T(10dP?}qPj_?y^)$&9;_zJAUo_O>IH z4yD%I*k&jnWEgsu*6aEgSU+*NY^ zCf8uq1Zh5HI~m-vdfHU@t{=x(Px4-F4aIu0ulxI{Ih>=3atrsK4leWYySC%bKGSR5 zj{Sx9UoT#osZYqRvA!N<=b@ex-Z@$C43t*)t=NVxRxd>4R&m|0BZ`4TUUwJQv^|J3 z3%I@lhE~dtxob^?+T}0DN*JZ|f`0TWK7J+oQqKK7MDt%!y$GxLTo8}Acqo4CLf!bb zwzfQxUFzo+cLDaRvifa?gK$VPUfoiD!>26Ki#D%=H_s;(^2^38Zx`0zi&q$K1xR47 z6()udFMs07@q>ZM18#>fuIr-5sZdKDd9Ut@OV?Os`Rt~qCRdIII%EaQ??p>8mrw}! zzO|_Ll>(DUEjpq&782@>_LLmtgVu|%jZPEGkv-2k3elafS*mMCV#w-{O|vT^H9ATb z14>^dIp6tncF7zJGG#H|Rv=6^(XQ5Vu=$?H_WRy@A3Jw(Q1&R)+H}v|A5#B?nh$Rz zmJ=s9YE-IcIsmvY0JC%o7L<86Ta}w1KXEA$5*9pR&?R}{mnbVI69oegkBlfA79Cs^ zfq?Al;sCZJ>I?-+f(XOQxiUOF+}8){8^2fyxB!`j=?le6jrZ;BUOT-Ju*FuZ5+F3D zdK6!Ov|g4)B9kTh|5-AIdTG6?y!Z{x%e1#rB-bYd+3}oUHn6$}&%-*NbT1NHO;y)| z_VDni+2B$Y((a)mA|fOd5FbBtNV|4h|F_^^&10M3+(+WiJ)r7R}_UiKvGJA{Kavx@>iCxD=G@78#xETa$kBm6Jf^%4C38f_VG4w`mnjq9#H!6)&MbwYwiBZcXK z--52t5IlIOYxWdROp#S8h9x55LyDM@c-_INWoNAlFkm#b=m5{2Sk_ur*2AKlN!iOd z=^u>)zn7M!ZRqJDlJdtekk?UK};t^ZqXrRhKVR23^=~$A0NgILDquTAqH>dBC<< zI|mMpX>X3`<&s@>xu<}I8vBdV9d$lP$@Z*-ZYY+s5r-~uO7?|h_D(l-ZQw@=^o+kL zc2ahV_oW(8gl3ECMh@T#A(Dqm`U1l7R;2! zw09ujv}a(DkeI;rmJ;VTAr=HzT~S?(iH+I^Ic3V!z|6$6vGIF?hnJ@}RGmieb8NYD zv$FiwqX-9!o`%BBU7S-2>uMMNJ19B|xDA?S%&IsJ1Wd}miMWQ~jN36&a?=~Im&$#a zY(4wp6T)C=!pzs*!#a6+6`IP?Ro9D=@wu14rY9K!X7|_Hx^KmD*iGgGVG-jSrj{jy zW$SJ)$DJ2izR%TLsfEXaPcc3|HIH+a4}|NSpSq5Z+upchvAB%QjE?Jn4hf}hd*;*$ zS!}LrYeHnOxy%LRZhbG4z1_OrKcrQ!q{IaG+(+T$#xjIIreF~2gXPI^#Lid{cy6nLAuL!EwD$bYx(m;E(v;V8ub+QicKayC z=kt~0TV@jM;p}m8zOP&D zC1q?aM|3m$^32_(!Cz<)cPz(vm=sD6>sP!1y-gba&xlcedUKim0*#*bJ**WmJRF<| ztKQmP$dQInBXtJ21c0NS5laCYTLcu29c_RXaW}xNM@>y_lR+C6ww9r8ckqa2e8QZ* z7&izC`r9ZTUT@;fH)9e2(8X0DB}9wLFqNhiXuNFR0`xVbc-u>J2hi~06QNC<%52Yc z>-YwzeQLd)l6@p`WQ6imNe!m;jl}0fp<#(|j?wz$Uyx(Wvqo@(K$OH4Lfh`>`FuPmsW+YkG+(zBlfls~czk|- zX>BkiEn)BEy;mSmzm3bnnh|xll?G`<7bsPFj(8C<;)^3BTzigtvt3L(#APhv$4_)v zxvAj`%a{u`!lU+Hq~X|d<672(3)4Vs85kMs@;f_Qq`8#8Ih?>EdWn&dv@wqu7VWp< zG-;mkn3g2L>53RCg8sz67unHO4_?pzv6QHroF7yhnIPwenT31l{Ztzh_Qx%PWD|yq zn)c7|_~BE%v51%=d<;JK;!CN{K4M->Y^=CqQk$VV=0);!;{|m zT%X}DonuC(^MZfV!`>yp=9+l+HsW<4+yr4^VT%R_Yc_}i&0rBQ$5GHx`R(!R#Td%w zX*1X}($b})I?!oA-;??Nv@o)db! zHYd0TpM%?Zh6t?C{QNI31FOi@D&BTyv98sb89N3%&tKhy4R)7Cj#a27XFVucA3aj1 zuJd8GmQq_iv)4Bd5l{4LUJl)-;IN?8Q#b*;M3g+XNDo`IBUCHK7l*rOczBg(!JCT{J_izKU6X+iNh^+I6#H(_n8yAT1YOVl5&S zVgt5nT^n5fQ z4ilQDW~BG$^c$?LEKlmyPS4LH@FU(MV$x`k-Zbd^`7SoU@!bu(@yp$v8{+l<^Qa`_ zaXEz*rWD302S^e@clC1iO%D(KRZ&&Bw}_~TOZ-OgTvGL7sH_uz13J@vk>9l@qFGM- zuz??1CE_$DN!M`ni5RqDHx&j?wlNQ!T9L5-B7$_%QCD9Y87cjCe3=UsPTXEqxJq91 zXHdWWMr%lkDV8w7u*cbQjIx|aLCTMT@H1EQ1IrEevoTH``?IMHPo2(zrpBXTm^CLq&;jOaZc0({j&Zq zqRu%u(tz3e8{65~w#|)g+qUhEZ9Cc6+Bn(Rb|$uM+SpUq7I={tZ4J)&U0b^=gBOkQiAq-3@HXHYmyBK}iXJWo3li?ZWc9H&91U0e9MN zNiqLZ>UPw_3zSSArP-N;b~2C&8U0j#hjK_mtd{_SXkInjueF)!cc zez*(oEaGRAxSbCBh4@~dl zTQ?$m@;nfMAc#PJ_;IW}<-=Je;G_M$8~fIyf%~po?)5A?1%*i~*!5wI&X!`??Ts?p z!@U@g-`C!Mn&2=v+GZSNgnx3y#iXC~Da?*LV#6Lo=^bd`Y&Z+J<(Vo*VnbB3!Kzr} zl8(mu;FE8&>XJ`Jx*iW1vBSs5ud%}q(Dxg!>1w%|o$Eh~ov{7FDg`_oUUkrKmBGd% z+u#V*ZriX&aDT5&ccg|ZZ2B!mk%CxhgcDlg)B?ak;h%V;3i=1%BIZTLe@3t^CfLu3 z(^J5QqF$=oLb8(W-~HH#`)2j-VpB}{N7|}5jtomjUG~RI;B)!UC$El@AmyCp@p0NM z%g|9T&e26_v~C^=*ckVo-EWQoa0 z!N4KJqStZu7tQ(l`5ONH`23LckDfV+fL=6^v{gm-PdXP2flS6UQm&|%0X8(ynYMOz zyZuIOrMQbJLE7RRCnLdG<2OsSmB-r|8Xh4zZ&h6k%VV1U^*0vyG?q{5`!6>Ky8oGV zj_~6}(mr1P{#~&&o1IQ|l!!hwUmB;l1-r05<*POnCGuPQqxx=gfqT_v8Q0Kj>!Fy8$wzX8FY1 zzV`@SD7FZAND)vy10aEKz=$4wx!XhL&_rTNy4a0a#0W%d;JZ}|udA-?N!PEi_3GTFUV9K_?3k0)ngQY2x8J}FTynAmEVeTudT6Q zrdyJ=ng0CTs@E(+^R&F_779Xw6m7Lb=8KY{Prry-tVtSZ3q-9&`g=o-4@e3o5;ibahy&@c2njgx62VQx);O(AB>Qn^j5SOio4+ONeF)GIZ_nYs z?0>}XmfEjE8Pm#{e_+oag!%aiV7-3d@aOek^>iuzDxG|;UG52J`Wm1uHPB`7dDb54 z)TrF*)P3E0J@c4ed2Cl+dzLE^-W3UjUz? z@C|;5qe_00{(|nZ)uBv{9h!1E2{t&X^Kvi-6ZK~7l`Mijajwfxh*X_Q?3lu%vdJ#(2 zMC2)pJVC4Fy4}%8NBex@j9UU0L!m&R&^tgcjYO?M1nh_o3K4vwN7AV^0M^pt`;`S{ zgt%?-9w=HAIiQ*SLOi*c;*1-ZK$-DH?lMC~zj>XlpEg8$SAFM^W_)5-muP;eu&VDp zfmGVCM>;xsyGxCVm|6g?o6NJ2$b>`V+Ofq{jO5m8FiRtM$_l#;XdYEOuy{p~4aSenUgix)7_f%dFZ zkVTZN3oe{CbqpSbRZK}s`%_lhJ^X^-2tlkywc2B{(zgAm^SUro%U~}A5@b|ZIFVL2 zJHI&C+xzvl;n4e)2CYvo0Aavkw^?0QR##EcVt38~B2lX_A_Fq2mmZZO^q!yI_Hg$9 zI-qgQf$y|H^MvZV*+P*UStic6X zXRXD?li3ZNPF{=Bz36B?o%j-*={nYQV=HTG77mWDn*pRmomn?LrKBGs$o^xvlOkrN z1P6KeiL%H$gu#UHv1m2M0;Nan<2nZj`HQ2dwMf<({OQoczvuXE-tH(A+VsT4E+KYse zer(%$?kBJ4y9X*gobjb&V>|YV9}DrHI3aRx#?zE$VhiDqXw?Y!K2?h3%2XD5sBkwEZ{Nb>dv`=wD3;dXXZ4{ zoR|=un<({gzg$B%RT*lAcXwQHFF8Oilh%5|uQ2Smt%gj0KuxL`+t9P+>DWXF>pH-2 zo285%Vf9j0r>y9H$a;xE-gE&P8#%*qjQp}t?*e_7UA#fTDeRcCwQ-4?`A}p+?}6ApYJW!@ia&9ya$9>`m4H--q!J z#lZ|b1Q{E%?telCaKH~5)_MXONaPBnX+eTIF~a#YW& z(tSR0+&@f5!a-ZW{WK}kz>nAObcU2c_4`;IaHErI;*k5jHQw-D-7b>Oh}GM25=u-I;v>PlE|lfQ4V-U`V5oD6L4CMC`@kVKy3G^o;fr|UXQ& zcyD{oi>*Zs`QhHw`^^5m1Dyw#fN-Z(j6U30kOXe?BpZ#3ySsSmg)ihQ2?Dz)!Fs(Q zI&3IgSXAoJRHNzE*P!Y{>22}$0D(nWZ{s#@ezv$zOKL(|lCV0ICif;Z20=?;S4B*L z?W`r6@9pCw0uo$un@@nl&oq!f1Dl(hDG{DNVt^rTl{2+rX;Pq5NMkK~m$>SFZFrFKumE=I22_J}sv5-rvLI z*lx80Biw;Od);mmX)h-yA#adCDyOZjg?uKoKR!BAtHbs6V$CIuPK(9?k*Q+TbfuKU zZ1(H;kiPqk_kbSc%Ofgj`KFh|&CRXJd`dVXQgdo#BwW6@6fTrs{x-Gz;Z9f)r*ydg zuKkE0ICU+HAGJP`Kwer`K4Au1C)z^WN0jGX)Y}?AEzDy8l%WBe-=PRj%G(WBQ#2EI zF!*{L&2T7oQy}<_daPzZm=F=#w>jsQi=;-I0;B@?Q(xc};dYkoph3d|;Yo3C9+)

LM{A54?4d0^wwTtUKX@f^HVF~ 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%0DOQFYC>SlX6|}NhpTRRGz6&91 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 diff --git a/docs/images/Physical-Architecture-Azure.png b/docs/images/Physical-Architecture-Azure.png index 0de057cbb7878fc208542a5a603e55c50d73b34f..348c4f7fdb331292b417dbc70d1a0bdeaa4582ab 100644 GIT binary patch delta 196827 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�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%0AFG@L_64GCR- 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 XWv~+#DWENZ0{&zrl_V;~48Q+BG`rdz diff --git a/docs/images/Ports-And-Adapters.png b/docs/images/Ports-And-Adapters.png index 5ab7622d33e1298f9153388ab4352afaa55867af..7fba2a40231b7355f77c6ba5e9db886bb0274856 100644 GIT binary patch delta 13984 zcmcI~WmHvt_wA-6MU+%T1f^3!x=yPnn*=nnh9ZoB=zTIPt2`UK6Fvc>x}4&Bqw??pIowXd5z#Hq5Wm;L;z%7;X{`DC z{$z@NA7sAxTp@1sh^okZ>)Pz$L~Z>!)5{gx>*9+ZUpf))-OM{+ubLq{qvOPd;ROJk zSR2TU{s~Sh9U<^;#l)-cI3y+&$|GbJo=*~{wUc^ZA53hN`wDCVvR~Ovo$$w2iPl|4 zM02OgH&Sq-PR7tz1Kz83G#BHNOq6zEPD~;NuO)k&?a-C;`YvtUzHERs19^LGnD` z=jYHzdZ*s{;D4Q&lK@w9x{W1|rmRT(gL$hutO)pX-N)Ndv;{)y!3=$59SRDYz#!@} z>iO7fu$+?0Ndy@rVP!$M-T)T@C~&dMaQkQjX5{ZgjISS@EcQw*@S!b30h0NIq#}mC zZ{rKAgYHramiF+LPAa0#hsw~Gp+ox0zhc{5LNEMgxMqGAr^T6_tu(B5&YTUKH_&`z z9DnYeiI>pb3emfGK_V*D#0}o~sV!LP_sPJ&rBsQGzx@ujvg7FM zgM$?hdDfw5=CNBQ{@CA5>De-^k<@Q zAue+nK%1YS;g*y=iORDrMuYn_4nM@8qt0n~Na}xx-yv~zF3F)Ik-KC=gMA$|A&PA$ zvxpacEga-rIYaD|o;}*f2DFbb2n4R+INUx1SNM(sF5h+<@0YtQ@qhhOg0-@QAax*ywUIw4;J4^O>#}s3aS5Qh_;A%FO;Nf0Z=2u>>*UAIJ-uA zgP}nni582diQ;R~7BE=YzVIkvI>y(wT33=*Hr=#D-+EzRJEgHz34W*NMWH&4#CS=S z2yrNhcWVa&5KU_SJX-*@|Hr%l6{)TR{Q*Nv>=#@ZmpNRt4vcbmUic_)=vvCm(+jr| ze{)BGl>oCz_n@cNRTIhc4jZ?hpP$XU$OFOKU6>q!GHNg0X6m>xv!%0AL^N2c^OYjX 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 Ce}Ods delta 11465 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

p6J3!KM^O_hZ+{UNG> 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 ka(^u~y?4vwz+; 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 avk>an>>G;T=#m{$%jdi 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 Tvr`EpdFbP*NFuE&CwlxpRTe0< diff --git a/src/AncillaryInfrastructure/Persistence/ReadModels/AuditProjection.cs b/src/AncillaryInfrastructure/Persistence/ReadModels/AuditProjection.cs index 9dc7e3c7..36a5b1f9 100644 --- a/src/AncillaryInfrastructure/Persistence/ReadModels/AuditProjection.cs +++ b/src/AncillaryInfrastructure/Persistence/ReadModels/AuditProjection.cs @@ -3,7 +3,6 @@ using Application.Persistence.Common.Extensions; using Application.Persistence.Interfaces; using Common; -using Domain.Common.ValueObjects; using Domain.Events.Shared.Ancillary.Audits; using Domain.Interfaces; using Domain.Interfaces.Entities; @@ -29,7 +28,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven switch (changeEvent) { case Created e: - return await _audits.HandleCreateAsync(e.RootId.ToId(), dto => + return await _audits.HandleCreateAsync(e.RootId, dto => { dto.OrganizationId = e.OrganizationId; dto.AuditCode = e.AuditCode; diff --git a/src/AncillaryInfrastructure/Persistence/ReadModels/EmailDeliveryProjection.cs b/src/AncillaryInfrastructure/Persistence/ReadModels/EmailDeliveryProjection.cs index ee8ba0ce..8cd65e03 100644 --- a/src/AncillaryInfrastructure/Persistence/ReadModels/EmailDeliveryProjection.cs +++ b/src/AncillaryInfrastructure/Persistence/ReadModels/EmailDeliveryProjection.cs @@ -3,7 +3,6 @@ using Application.Persistence.Common.Extensions; using Application.Persistence.Interfaces; using Common; -using Domain.Common.ValueObjects; using Domain.Events.Shared.Ancillary.EmailDelivery; using Domain.Interfaces; using Domain.Interfaces.Entities; @@ -29,7 +28,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven switch (changeEvent) { case Created e: - return await _deliveries.HandleCreateAsync(e.RootId.ToId(), dto => + return await _deliveries.HandleCreateAsync(e.RootId, dto => { dto.MessageId = e.MessageId; dto.Attempts = DeliveryAttempts.Empty; @@ -40,7 +39,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven cancellationToken); case EmailDetailsChanged e: - return await _deliveries.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _deliveries.HandleUpdateAsync(e.RootId, dto => { dto.Subject = e.Subject; dto.Body = e.Body; @@ -49,7 +48,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven }, cancellationToken); case DeliveryAttempted e: - return await _deliveries.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _deliveries.HandleUpdateAsync(e.RootId, dto => { var attempts = dto.Attempts.HasValue ? dto.Attempts.Value.Attempt(e.When) @@ -67,11 +66,11 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven }, cancellationToken); case DeliveryFailed e: - return await _deliveries.HandleUpdateAsync(e.RootId.ToId(), dto => { dto.Failed = e.When; }, + return await _deliveries.HandleUpdateAsync(e.RootId, dto => { dto.Failed = e.When; }, cancellationToken); case DeliverySucceeded e: - return await _deliveries.HandleUpdateAsync(e.RootId.ToId(), dto => { dto.Delivered = e.When; }, + return await _deliveries.HandleUpdateAsync(e.RootId, dto => { dto.Delivered = e.When; }, cancellationToken); default: diff --git a/src/Application.Interfaces/Audits.Designer.cs b/src/Application.Interfaces/Audits.Designer.cs index feb009c3..f262f831 100644 --- a/src/Application.Interfaces/Audits.Designer.cs +++ b/src/Application.Interfaces/Audits.Designer.cs @@ -86,6 +86,15 @@ public static string EndUserApplication_TenantRolesAssigned { } } + ///

+ /// Looks up a localized string similar to EndUser.TenantRolesUnassigned. + /// + public static string EndUserApplication_TenantRolesUnassigned { + get { + return ResourceManager.GetString("EndUserApplication_TenantRolesUnassigned", resourceCulture); + } + } + /// /// Looks up a localized string similar to EndUser.Registered.TermsAccepted. /// diff --git a/src/Application.Interfaces/Audits.resx b/src/Application.Interfaces/Audits.resx index 7dcfe3bc..47da3f3a 100644 --- a/src/Application.Interfaces/Audits.resx +++ b/src/Application.Interfaces/Audits.resx @@ -45,6 +45,9 @@ EndUser.TenantRolesAssigned + + EndUser.TenantRolesUnassigned + EndUser.PlatformRolesAssigned diff --git a/src/Application.Resources.Shared/EndUser.cs b/src/Application.Resources.Shared/EndUser.cs index bd52f492..bbc682ca 100644 --- a/src/Application.Resources.Shared/EndUser.cs +++ b/src/Application.Resources.Shared/EndUser.cs @@ -53,18 +53,20 @@ public class Membership : IIdentifiableResource public required string OrganizationId { get; set; } - public List Roles { get; set; } = new(); + public OrganizationOwnership Ownership { get; set; } - public required string Id { get; set; } + public List Roles { get; set; } = new(); public required string UserId { get; set; } + + public required string Id { get; set; } } public class MembershipWithUserProfile : Membership { - public EndUserStatus Status { get; set; } - public required UserProfile Profile { get; set; } + + public EndUserStatus Status { get; set; } } public class Invitation diff --git a/src/Application.Resources.Shared/UserProfile.cs b/src/Application.Resources.Shared/UserProfile.cs index 3530ff86..51d8f1bf 100644 --- a/src/Application.Resources.Shared/UserProfile.cs +++ b/src/Application.Resources.Shared/UserProfile.cs @@ -26,7 +26,7 @@ public class UserProfile : IIdentifiableResource public required string Id { get; set; } } -public class UserProfileForCurrent : UserProfileWithDefaultMembership +public class UserProfileForCaller : UserProfileWithDefaultMembership { public List Features { get; set; } = new(); diff --git a/src/CarsInfrastructure/Persistence/ReadModels/CarProjection.cs b/src/CarsInfrastructure/Persistence/ReadModels/CarProjection.cs index 14c826ad..6fda23ca 100644 --- a/src/CarsInfrastructure/Persistence/ReadModels/CarProjection.cs +++ b/src/CarsInfrastructure/Persistence/ReadModels/CarProjection.cs @@ -3,7 +3,6 @@ using CarsApplication.Persistence.ReadModels; using CarsDomain; using Common; -using Domain.Common.ValueObjects; using Domain.Events.Shared.Cars; using Domain.Interfaces; using Domain.Interfaces.Entities; @@ -32,7 +31,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven switch (changeEvent) { case Created e: - return await _cars.HandleCreateAsync(e.RootId.ToId(), dto => + return await _cars.HandleCreateAsync(e.RootId, dto => { dto.OrganizationId = e.OrganizationId; dto.Status = e.Status; diff --git a/src/Common/Error.cs b/src/Common/Error.cs index 348acc57..7613afbd 100644 --- a/src/Common/Error.cs +++ b/src/Common/Error.cs @@ -59,6 +59,15 @@ public Error Wrap(ErrorCode code, string message) } #endif + /// + /// Whether this error is of the specified + /// and optional + /// + public bool Is(ErrorCode code, string? message = null) + { + return code == Code && (message == null || message == Message); + } + /// /// Creates a error /// @@ -144,6 +153,14 @@ public static Error Unexpected(string? message = null) return new Error(ErrorCode.Unexpected, message); } + /// + /// Creates a error + /// + public static Error EntityDeleted(string? message = null) + { + return new Error(ErrorCode.EntityDeleted, message); + } + public override string ToString() { return $"{Code}: {Message}"; @@ -167,5 +184,6 @@ public enum ErrorCode NotAuthenticated, ForbiddenAccess, NotSubscribed, - Unexpected + Unexpected, + EntityDeleted } \ No newline at end of file diff --git a/src/Domain.Events.Shared/EndUsers/MembershipDefaultChanged.cs b/src/Domain.Events.Shared/EndUsers/DefaultMembershipChanged.cs similarity index 74% rename from src/Domain.Events.Shared/EndUsers/MembershipDefaultChanged.cs rename to src/Domain.Events.Shared/EndUsers/DefaultMembershipChanged.cs index dd0bb3a8..04a6530d 100644 --- a/src/Domain.Events.Shared/EndUsers/MembershipDefaultChanged.cs +++ b/src/Domain.Events.Shared/EndUsers/DefaultMembershipChanged.cs @@ -4,14 +4,14 @@ namespace Domain.Events.Shared.EndUsers; -public sealed class MembershipDefaultChanged : DomainEvent +public sealed class DefaultMembershipChanged : DomainEvent { - public MembershipDefaultChanged(Identifier id) : base(id) + public DefaultMembershipChanged(Identifier id) : base(id) { } [UsedImplicitly] - public MembershipDefaultChanged() + public DefaultMembershipChanged() { } diff --git a/src/Domain.Events.Shared/EndUsers/MembershipRemoved.cs b/src/Domain.Events.Shared/EndUsers/MembershipRemoved.cs new file mode 100644 index 00000000..8338183f --- /dev/null +++ b/src/Domain.Events.Shared/EndUsers/MembershipRemoved.cs @@ -0,0 +1,23 @@ +using Domain.Common; +using Domain.Common.ValueObjects; +using JetBrains.Annotations; + +namespace Domain.Events.Shared.EndUsers; + +public sealed class MembershipRemoved : DomainEvent +{ + public MembershipRemoved(Identifier id) : base(id) + { + } + + [UsedImplicitly] + public MembershipRemoved() + { + } + + public required string MembershipId { get; set; } + + public required string OrganizationId { get; set; } + + public required string UnInvitedById { get; set; } +} \ No newline at end of file diff --git a/src/Domain.Events.Shared/EndUsers/MembershipRoleUnassigned.cs b/src/Domain.Events.Shared/EndUsers/MembershipRoleUnassigned.cs new file mode 100644 index 00000000..fc2eced2 --- /dev/null +++ b/src/Domain.Events.Shared/EndUsers/MembershipRoleUnassigned.cs @@ -0,0 +1,23 @@ +using Domain.Common; +using Domain.Common.ValueObjects; +using JetBrains.Annotations; + +namespace Domain.Events.Shared.EndUsers; + +public sealed class MembershipRoleUnassigned : DomainEvent +{ + public MembershipRoleUnassigned(Identifier id) : base(id) + { + } + + [UsedImplicitly] + public MembershipRoleUnassigned() + { + } + + public required string MembershipId { get; set; } + + public required string OrganizationId { get; set; } + + public required string Role { get; set; } +} \ No newline at end of file diff --git a/src/Domain.Events.Shared/Organizations/MemberInvited.cs b/src/Domain.Events.Shared/Organizations/MemberInvited.cs new file mode 100644 index 00000000..ef181998 --- /dev/null +++ b/src/Domain.Events.Shared/Organizations/MemberInvited.cs @@ -0,0 +1,23 @@ +using Domain.Common; +using Domain.Common.ValueObjects; +using JetBrains.Annotations; + +namespace Domain.Events.Shared.Organizations; + +public sealed class MemberInvited : DomainEvent +{ + public MemberInvited(Identifier id) : base(id) + { + } + + [UsedImplicitly] + public MemberInvited() + { + } + + public string? EmailAddress { get; set; } + + public required string InvitedById { get; set; } + + public string? UserId { get; set; } +} \ No newline at end of file diff --git a/src/Domain.Events.Shared/Organizations/MemberUnInvited.cs b/src/Domain.Events.Shared/Organizations/MemberUnInvited.cs new file mode 100644 index 00000000..1b5ebfe3 --- /dev/null +++ b/src/Domain.Events.Shared/Organizations/MemberUnInvited.cs @@ -0,0 +1,21 @@ +using Domain.Common; +using Domain.Common.ValueObjects; +using JetBrains.Annotations; + +namespace Domain.Events.Shared.Organizations; + +public sealed class MemberUnInvited : DomainEvent +{ + public MemberUnInvited(Identifier id) : base(id) + { + } + + [UsedImplicitly] + public MemberUnInvited() + { + } + + public required string UninvitedById { get; set; } + + public required string UserId { get; set; } +} \ No newline at end of file diff --git a/src/Domain.Events.Shared/Organizations/MembershipAdded.cs b/src/Domain.Events.Shared/Organizations/MembershipAdded.cs index 52a1520c..ad6f948c 100644 --- a/src/Domain.Events.Shared/Organizations/MembershipAdded.cs +++ b/src/Domain.Events.Shared/Organizations/MembershipAdded.cs @@ -15,9 +15,5 @@ public MembershipAdded() { } - public string? EmailAddress { get; set; } - - public required string InvitedById { get; set; } - - public string? UserId { get; set; } + public required string UserId { get; set; } } \ No newline at end of file diff --git a/src/Domain.Events.Shared/Organizations/MembershipRemoved.cs b/src/Domain.Events.Shared/Organizations/MembershipRemoved.cs new file mode 100644 index 00000000..28e5d245 --- /dev/null +++ b/src/Domain.Events.Shared/Organizations/MembershipRemoved.cs @@ -0,0 +1,19 @@ +using Domain.Common; +using Domain.Common.ValueObjects; +using JetBrains.Annotations; + +namespace Domain.Events.Shared.Organizations; + +public sealed class MembershipRemoved : DomainEvent +{ + public MembershipRemoved(Identifier id) : base(id) + { + } + + [UsedImplicitly] + public MembershipRemoved() + { + } + + public required string UserId { get; set; } +} \ No newline at end of file diff --git a/src/Domain.Events.Shared/Organizations/NameChanged.cs b/src/Domain.Events.Shared/Organizations/NameChanged.cs new file mode 100644 index 00000000..a3e82c3a --- /dev/null +++ b/src/Domain.Events.Shared/Organizations/NameChanged.cs @@ -0,0 +1,19 @@ +using Domain.Common; +using Domain.Common.ValueObjects; +using JetBrains.Annotations; + +namespace Domain.Events.Shared.Organizations; + +public sealed class NameChanged : DomainEvent +{ + public NameChanged(Identifier id) : base(id) + { + } + + [UsedImplicitly] + public NameChanged() + { + } + + public required string Name { get; set; } +} \ No newline at end of file diff --git a/src/Domain.Events.Shared/Organizations/RoleAssigned.cs b/src/Domain.Events.Shared/Organizations/RoleAssigned.cs new file mode 100644 index 00000000..7c24b638 --- /dev/null +++ b/src/Domain.Events.Shared/Organizations/RoleAssigned.cs @@ -0,0 +1,23 @@ +using Domain.Common; +using Domain.Common.ValueObjects; +using JetBrains.Annotations; + +namespace Domain.Events.Shared.Organizations; + +public sealed class RoleAssigned : DomainEvent +{ + public RoleAssigned(Identifier id) : base(id) + { + } + + [UsedImplicitly] + public RoleAssigned() + { + } + + public required string AssignedById { get; set; } + + public required string Role { get; set; } + + public required string UserId { get; set; } +} \ No newline at end of file diff --git a/src/Domain.Events.Shared/Organizations/RoleUnassigned.cs b/src/Domain.Events.Shared/Organizations/RoleUnassigned.cs new file mode 100644 index 00000000..63fc76e6 --- /dev/null +++ b/src/Domain.Events.Shared/Organizations/RoleUnassigned.cs @@ -0,0 +1,23 @@ +using Domain.Common; +using Domain.Common.ValueObjects; +using JetBrains.Annotations; + +namespace Domain.Events.Shared.Organizations; + +public sealed class RoleUnassigned : DomainEvent +{ + public RoleUnassigned(Identifier id) : base(id) + { + } + + [UsedImplicitly] + public RoleUnassigned() + { + } + + public required string Role { get; set; } + + public required string UnassignedById { get; set; } + + public required string UserId { get; set; } +} \ No newline at end of file diff --git a/src/Domain.Shared.UnitTests/FeaturesSpec.cs b/src/Domain.Shared.UnitTests/FeaturesSpec.cs index 0c2021a9..4c4d2622 100644 --- a/src/Domain.Shared.UnitTests/FeaturesSpec.cs +++ b/src/Domain.Shared.UnitTests/FeaturesSpec.cs @@ -37,7 +37,7 @@ public void WhenCreateWithAnUnknownName_ThenReturnsValue() [Fact] public void WhenCreateWithAKnownName_ThenReturnsValue() { - var result = Feature.Create(PlatformFeatures.Basic.Name); + var result = Feature.Create(PlatformFeatures.Basic); result.Should().BeSuccess(); result.Value.Identifier.Should().Be(PlatformFeatures.Basic.Name); @@ -50,7 +50,7 @@ public class FeaturesSpec [Fact] public void WhenCreate_ThenReturnsError() { - var result = Features.Create(); + var result = Features.Empty; result.Items.Should().BeEmpty(); } @@ -66,10 +66,10 @@ public void WhenCreateWithSingleEmpty_ThenReturnsError() [Fact] public void WhenCreateWithSingle_ThenReturnsValue() { - var result = Features.Create(PlatformFeatures.Basic.Name); + var result = Features.Create(PlatformFeatures.Basic); result.Should().BeSuccess(); - result.Value.Items.Should().ContainInOrder(Feature.Create(PlatformFeatures.Basic.Name).Value); + result.Value.Items.Should().ContainInOrder(Feature.Create(PlatformFeatures.Basic).Value); } #if TESTINGONLY @@ -80,8 +80,8 @@ public void WhenCreateWithFeatureLevel_ThenReturnsValue() result.Should().BeSuccess(); result.Value.Items.Should().ContainInOrder(Feature.Create( - PlatformFeatures.TestingOnlySuperUser.Name).Value, - Feature.Create(PlatformFeatures.TestingOnly.Name).Value); + PlatformFeatures.TestingOnlySuperUser).Value, + Feature.Create(PlatformFeatures.TestingOnly).Value); } #endif @@ -97,18 +97,18 @@ public void WhenCreateWithListContainingInvalidItem_ThenReturnsError() [Fact] public void WhenCreateWithListContainingValidItems_ThenReturnsValue() { - var result = Features.Create(PlatformFeatures.Basic.Name, PlatformFeatures.TestingOnly.Name); + var result = Features.Create(PlatformFeatures.Basic, PlatformFeatures.TestingOnly); result.Should().BeSuccess(); - result.Value.Items.Should().ContainInOrder(Feature.Create(PlatformFeatures.Basic.Name).Value, - Feature.Create(PlatformFeatures.TestingOnly.Name).Value); + result.Value.Items.Should().ContainInOrder(Feature.Create(PlatformFeatures.Basic).Value, + Feature.Create(PlatformFeatures.TestingOnly).Value); } #endif [Fact] public void WhenAddStringWithUnknownName_ThenAddsFeature() { - var features = Features.Create(); + var features = Features.Empty; var result = features.Add("anunknownfeature"); @@ -119,7 +119,7 @@ public void WhenAddStringWithUnknownName_ThenAddsFeature() [Fact] public void WhenAddStringWithKnownName_ThenAddsFeature() { - var features = Features.Create(); + var features = Features.Empty; var result = features.Add(PlatformFeatures.Basic.Name); @@ -137,16 +137,16 @@ public void WhenAddFeatureLevel_ThenReturnsValue() result.Should().BeSuccess(); result.Value.Items.Should().ContainInOrder( - Feature.Create(PlatformFeatures.Basic.Name).Value, - Feature.Create(PlatformFeatures.TestingOnlySuperUser.Name).Value, - Feature.Create(PlatformFeatures.TestingOnly.Name).Value); + Feature.Create(PlatformFeatures.Basic).Value, + Feature.Create(PlatformFeatures.TestingOnlySuperUser).Value, + Feature.Create(PlatformFeatures.TestingOnly).Value); } #endif [Fact] public void WhenAddFeatureAndExists_ThenDoesNotAdd() { - var features = Features.Create(); + var features = Features.Empty; features.Add(PlatformFeatures.Basic.Name); var result = features.Add(PlatformFeatures.Basic.Name); @@ -159,22 +159,22 @@ public void WhenAddFeatureAndExists_ThenDoesNotAdd() [Fact] public void WhenAddFeatureAndNotExists_ThenAdds() { - var features = Features.Create(); - features = features.Add(PlatformFeatures.Basic.Name).Value; + var features = Features.Empty; + features = features.Add(PlatformFeatures.Basic).Value; - var result = features.Add(PlatformFeatures.TestingOnly.Name); + var result = features.Add(PlatformFeatures.TestingOnly); result.Should().BeSuccess(); - result.Value.Items.Should().ContainInOrder(Feature.Create(PlatformFeatures.Basic.Name).Value, - Feature.Create(PlatformFeatures.TestingOnly.Name).Value); + result.Value.Items.Should().ContainInOrder(Feature.Create(PlatformFeatures.Basic).Value, + Feature.Create(PlatformFeatures.TestingOnly).Value); } #endif [Fact] public void WhenClear_ThenRemovesAllItems() { - var features = Features.Create(); - features = features.Add(PlatformFeatures.Basic.Name).Value; + var features = Features.Empty; + features = features.Add(PlatformFeatures.Basic).Value; var result = features.Clear(); @@ -184,8 +184,8 @@ public void WhenClear_ThenRemovesAllItems() [Fact] public void WhenHasAnyAndSome_ThenReturnsTrue() { - var features = Features.Create(); - features = features.Add(PlatformFeatures.Basic.Name).Value; + var features = Features.Empty; + features = features.Add(PlatformFeatures.Basic).Value; var result = features.HasAny(); @@ -195,7 +195,7 @@ public void WhenHasAnyAndSome_ThenReturnsTrue() [Fact] public void WhenHasAnyAndNone_ThenReturnsFalse() { - var features = Features.Create(); + var features = Features.Empty; var result = features.HasAny(); @@ -205,8 +205,8 @@ public void WhenHasAnyAndNone_ThenReturnsFalse() [Fact] public void WhenHasNoneAndSome_ThenReturnsFalse() { - var features = Features.Create(); - features = features.Add(PlatformFeatures.Basic.Name).Value; + var features = Features.Empty; + features = features.Add(PlatformFeatures.Basic).Value; var result = features.HasNone(); @@ -216,7 +216,7 @@ public void WhenHasNoneAndSome_ThenReturnsFalse() [Fact] public void WhenHasNoneAndNone_ThenReturnsTrue() { - var features = Features.Create(); + var features = Features.Empty; var result = features.HasNone(); @@ -226,7 +226,7 @@ public void WhenHasNoneAndNone_ThenReturnsTrue() [Fact] public void WhenHasLevelAndInvalidName_ThenReturnsFalse() { - var features = Features.Create(); + var features = Features.Empty; var result = features.HasFeature("anunknownfeature"); @@ -237,10 +237,10 @@ public void WhenHasLevelAndInvalidName_ThenReturnsFalse() [Fact] public void WhenHasHasLevelAndNoMatch_ThenReturnsFalse() { - var features = Features.Create(); - features = features.Add(PlatformFeatures.Basic.Name).Value; + var features = Features.Empty; + features = features.Add(PlatformFeatures.Basic).Value; - var result = features.HasFeature(PlatformFeatures.TestingOnly.Name); + var result = features.HasFeature(PlatformFeatures.TestingOnly); result.Should().BeFalse(); } @@ -249,10 +249,10 @@ public void WhenHasHasLevelAndNoMatch_ThenReturnsFalse() [Fact] public void WhenHasHasLevelAndMatching_ThenReturnsTrue() { - var features = Features.Create(); - features = features.Add(PlatformFeatures.Basic.Name).Value; + var features = Features.Empty; + features = features.Add(PlatformFeatures.Basic).Value; - var result = features.HasFeature(PlatformFeatures.Basic.Name); + var result = features.HasFeature(PlatformFeatures.Basic); result.Should().BeTrue(); } @@ -260,8 +260,8 @@ public void WhenHasHasLevelAndMatching_ThenReturnsTrue() [Fact] public void WhenRemoveAndInvalidName_ThenDoesNotRemove() { - var features = Features.Create(); - features = features.Add(PlatformFeatures.Basic.Name).Value; + var features = Features.Empty; + features = features.Add(PlatformFeatures.Basic).Value; var result = features.Remove("anunknownfeature"); @@ -272,8 +272,8 @@ public void WhenRemoveAndInvalidName_ThenDoesNotRemove() [Fact] public void WhenRemoveAndNoMatch_ThenDoesNotRemove() { - var features = Features.Create(); - features = features.Add(PlatformFeatures.Basic.Name).Value; + var features = Features.Empty; + features = features.Add(PlatformFeatures.Basic).Value; var result = features.Remove(PlatformFeatures.TestingOnly.Name); @@ -284,10 +284,10 @@ public void WhenRemoveAndNoMatch_ThenDoesNotRemove() [Fact] public void WhenRemoveAndMatches_ThenRemoves() { - var features = Features.Create(); - features = features.Add(PlatformFeatures.Basic.Name).Value; + var features = Features.Empty; + features = features.Add(PlatformFeatures.Basic).Value; - var result = features.Remove(PlatformFeatures.Basic.Name); + var result = features.Remove(PlatformFeatures.Basic); result.Items.Should().BeEmpty(); } @@ -296,9 +296,9 @@ public void WhenRemoveAndMatches_ThenRemoves() [Fact] public void WhenToList_ThenReturnsStringList() { - var features = Features.Create(); - features = features.Add(PlatformFeatures.Basic.Name).Value; - features = features.Add(PlatformFeatures.TestingOnly.Name).Value; + var features = Features.Empty; + features = features.Add(PlatformFeatures.Basic).Value; + features = features.Add(PlatformFeatures.TestingOnly).Value; var result = features.ToList(); diff --git a/src/Domain.Shared.UnitTests/RolesSpec.cs b/src/Domain.Shared.UnitTests/RolesSpec.cs index ee766fee..7eea048c 100644 --- a/src/Domain.Shared.UnitTests/RolesSpec.cs +++ b/src/Domain.Shared.UnitTests/RolesSpec.cs @@ -50,7 +50,7 @@ public class RolesSpec [Fact] public void WhenCreate_ThenReturnsError() { - var result = Roles.Create(); + var result = Roles.Empty; result.Items.Should().BeEmpty(); } @@ -108,7 +108,7 @@ public void WhenCreateWithListContainingValidItems_ThenReturnsValue() [Fact] public void WhenAddStringWithUnknownName_ThenAddsRole() { - var roles = Roles.Create(); + var roles = Roles.Empty; var result = roles.Add("anunknownrole"); @@ -119,7 +119,7 @@ public void WhenAddStringWithUnknownName_ThenAddsRole() [Fact] public void WhenAddStringWithKnownName_ThenAddsRole() { - var roles = Roles.Create(); + var roles = Roles.Empty; var result = roles.Add(PlatformRoles.Standard.Name); @@ -145,7 +145,7 @@ public void WhenAddRoleLevel_ThenReturnsValue() [Fact] public void WhenAddRoleAndExists_ThenDoesNotAdd() { - var roles = Roles.Create(); + var roles = Roles.Empty; roles.Add(PlatformRoles.Standard.Name); var result = roles.Add(PlatformRoles.Standard.Name); @@ -158,7 +158,7 @@ public void WhenAddRoleAndExists_ThenDoesNotAdd() [Fact] public void WhenAddRoleAndNotExists_ThenAdds() { - var roles = Roles.Create(); + var roles = Roles.Empty; roles = roles.Add(PlatformRoles.Standard.Name).Value; var result = roles.Add(PlatformRoles.TestingOnly.Name); @@ -172,7 +172,7 @@ public void WhenAddRoleAndNotExists_ThenAdds() [Fact] public void WhenClear_ThenRemovesAllItems() { - var roles = Roles.Create(); + var roles = Roles.Empty; roles = roles.Add(PlatformRoles.Standard.Name).Value; var result = roles.Clear(); @@ -183,7 +183,7 @@ public void WhenClear_ThenRemovesAllItems() [Fact] public void WhenHasAnyAndSome_ThenReturnsTrue() { - var roles = Roles.Create(); + var roles = Roles.Empty; roles = roles.Add(PlatformRoles.Standard.Name).Value; var result = roles.HasAny(); @@ -194,7 +194,7 @@ public void WhenHasAnyAndSome_ThenReturnsTrue() [Fact] public void WhenHasAnyAndNone_ThenReturnsFalse() { - var roles = Roles.Create(); + var roles = Roles.Empty; var result = roles.HasAny(); @@ -204,7 +204,7 @@ public void WhenHasAnyAndNone_ThenReturnsFalse() [Fact] public void WhenHasNoneAndSome_ThenReturnsFalse() { - var roles = Roles.Create(); + var roles = Roles.Empty; roles = roles.Add(PlatformRoles.Standard.Name).Value; var result = roles.HasNone(); @@ -215,7 +215,7 @@ public void WhenHasNoneAndSome_ThenReturnsFalse() [Fact] public void WhenHasNoneAndNone_ThenReturnsTrue() { - var roles = Roles.Create(); + var roles = Roles.Empty; var result = roles.HasNone(); @@ -225,7 +225,7 @@ public void WhenHasNoneAndNone_ThenReturnsTrue() [Fact] public void WhenHasRoleAndInvalidName_ThenReturnsFalse() { - var roles = Roles.Create(); + var roles = Roles.Empty; var result = roles.HasRole("anunknownrole"); @@ -236,7 +236,7 @@ public void WhenHasRoleAndInvalidName_ThenReturnsFalse() [Fact] public void WhenHasRoleAndNoMatch_ThenReturnsFalse() { - var roles = Roles.Create(); + var roles = Roles.Empty; roles = roles.Add(PlatformRoles.Standard.Name).Value; var result = roles.HasRole(PlatformRoles.TestingOnly.Name); @@ -248,7 +248,7 @@ public void WhenHasRoleAndNoMatch_ThenReturnsFalse() [Fact] public void WhenHasRoleAndMatching_ThenReturnsTrue() { - var roles = Roles.Create(); + var roles = Roles.Empty; roles = roles.Add(PlatformRoles.Standard.Name).Value; var result = roles.HasRole(PlatformRoles.Standard.Name); @@ -259,7 +259,7 @@ public void WhenHasRoleAndMatching_ThenReturnsTrue() [Fact] public void WhenRemoveAndInvalidName_ThenDoesNotRemove() { - var roles = Roles.Create(); + var roles = Roles.Empty; roles = roles.Add(PlatformRoles.Standard.Name).Value; var result = roles.Remove("anunknownrole"); @@ -271,7 +271,7 @@ public void WhenRemoveAndInvalidName_ThenDoesNotRemove() [Fact] public void WhenRemoveAndNoMatch_ThenDoesNotRemove() { - var roles = Roles.Create(); + var roles = Roles.Empty; roles = roles.Add(PlatformRoles.Standard.Name).Value; var result = roles.Remove(PlatformRoles.TestingOnly.Name); @@ -283,7 +283,7 @@ public void WhenRemoveAndNoMatch_ThenDoesNotRemove() [Fact] public void WhenRemoveAndMatches_ThenRemoves() { - var roles = Roles.Create(); + var roles = Roles.Empty; roles = roles.Add(PlatformRoles.Standard.Name).Value; var result = roles.Remove(PlatformRoles.Standard.Name); @@ -295,7 +295,7 @@ public void WhenRemoveAndMatches_ThenRemoves() [Fact] public void WhenToList_ThenReturnsStringList() { - var roles = Roles.Create(); + var roles = Roles.Empty; roles = roles.Add(PlatformRoles.Standard.Name).Value; roles = roles.Add(PlatformRoles.TestingOnly.Name).Value; diff --git a/src/Domain.Shared/Features.cs b/src/Domain.Shared/Features.cs index f81a76b8..f0536c68 100644 --- a/src/Domain.Shared/Features.cs +++ b/src/Domain.Shared/Features.cs @@ -50,6 +50,23 @@ public static Result Create(params string[] features) return new Features(list); } + public static Result Create(params FeatureLevel[] features) + { + var list = new List(); + foreach (var feature in features) + { + var feat = Feature.Create(feature); + if (!feat.IsSuccessful) + { + return feat.Error; + } + + list.Add(feat.Value); + } + + return new Features(list); + } + private Features() : base(new List()) { } @@ -182,6 +199,17 @@ public Features Remove(Feature feature) return new Features(Value); } + public Features Remove(FeatureLevel feature) + { + var feat = Feature.Create(feature); + if (!feat.IsSuccessful) + { + return this; + } + + return Remove(feat.Value); + } + [SkipImmutabilityCheck] public List ToList() { diff --git a/src/EndUsersApplication.UnitTests/EndUsersApplication.DomainEventHandlersSpec.cs b/src/EndUsersApplication.UnitTests/EndUsersApplication.DomainEventHandlersSpec.cs index 69b1ab7e..13428c32 100644 --- a/src/EndUsersApplication.UnitTests/EndUsersApplication.DomainEventHandlersSpec.cs +++ b/src/EndUsersApplication.UnitTests/EndUsersApplication.DomainEventHandlersSpec.cs @@ -2,6 +2,7 @@ using Application.Services.Shared; using Common; using Common.Configuration; +using Domain.Common.Events; using Domain.Common.Identity; using Domain.Common.ValueObjects; using Domain.Interfaces.Authorization; @@ -97,4 +98,98 @@ public async Task HandleOrganizationCreatedAsync_ThenAddsMembership() && eu.Memberships[0].Features.HasFeature(TenantFeatures.Basic) ), It.IsAny())); } + + [Fact] + public async Task WhenHandleOrganizationRoleAssignedAsync_ThenAssigns() + { + var assigner = EndUserRoot.Create(_recorder.Object, _idFactory.Object, UserClassification.Person).Value; + assigner.Register(Roles.Create(PlatformRoles.Operations).Value, Features.Empty, + EndUserProfile.Create("afirstname").Value, Optional.None); + assigner.AddMembership(assigner, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Owner).Value, + Features.Create(TenantFeatures.Basic).Value); + _endUserRepository.Setup(rep => rep.LoadAsync("anassignerid".ToId(), It.IsAny())) + .ReturnsAsync(assigner); + var assignee = EndUserRoot.Create(_recorder.Object, _idFactory.Object, UserClassification.Person).Value; + assignee.Register(Roles.Create(PlatformRoles.Standard).Value, Features.Create(PlatformFeatures.Basic).Value, + EndUserProfile.Create("afirstname").Value, Optional.None); + assignee.AddMembership(assignee, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Member).Value, + Features.Create(TenantFeatures.Basic).Value); + _endUserRepository.Setup(rep => rep.LoadAsync("anassigneeid".ToId(), It.IsAny())) + .ReturnsAsync(assignee); + var domainEvent = Events.RoleAssigned("anorganizationid".ToId(), "anassignerid".ToId(), "anassigneeid".ToId(), + Role.Create(TenantRoles.TestingOnly).Value); + + var result = + await _application.HandleOrganizationRoleAssignedAsync(_caller.Object, domainEvent, CancellationToken.None); + + result.Should().BeSuccess(); + _endUserRepository.Verify(rep => rep.SaveAsync(It.Is(eu => + eu.Memberships[0].Roles.HasRole(TenantRoles.Member) + && eu.Memberships[0].Roles.HasRole(TenantRoles.TestingOnly) + ), It.IsAny())); + _recorder.Verify(rec => rec.AuditAgainst(It.IsAny(), "anid", + Audits.EndUserApplication_TenantRolesAssigned, It.IsAny(), + It.IsAny())); + } + + [Fact] + public async Task WhenHandleOrganizationRoleUnassignedAsync_ThenAssigns() + { + var assigner = EndUserRoot.Create(_recorder.Object, _idFactory.Object, UserClassification.Person).Value; + assigner.Register(Roles.Create(PlatformRoles.Operations).Value, Features.Empty, + EndUserProfile.Create("afirstname").Value, Optional.None); + assigner.AddMembership(assigner, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Owner).Value, + Features.Create(TenantFeatures.Basic).Value); + _endUserRepository.Setup(rep => rep.LoadAsync("anassignerid".ToId(), It.IsAny())) + .ReturnsAsync(assigner); + var assignee = EndUserRoot.Create(_recorder.Object, _idFactory.Object, UserClassification.Person).Value; + assignee.Register(Roles.Create(PlatformRoles.Standard).Value, Features.Create(PlatformFeatures.Basic).Value, + EndUserProfile.Create("afirstname").Value, Optional.None); + assignee.AddMembership(assignee, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Member).Value, + Features.Create(TenantFeatures.Basic).Value); + assignee.AssignMembershipRoles(assigner, "anorganizationid".ToId(), + Roles.Create(TenantRoles.TestingOnly).Value); + _endUserRepository.Setup(rep => rep.LoadAsync("anassigneeid".ToId(), It.IsAny())) + .ReturnsAsync(assignee); + var domainEvent = Events.RoleUnassigned("anorganizationid".ToId(), "anassignerid".ToId(), "anassigneeid".ToId(), + Role.Create(TenantRoles.TestingOnly).Value); + + var result = + await _application.HandleOrganizationRoleUnassignedAsync(_caller.Object, domainEvent, + CancellationToken.None); + + result.Should().BeSuccess(); + _endUserRepository.Verify(rep => rep.SaveAsync(It.Is(eu => + eu.Memberships[0].Roles.HasRole(TenantRoles.Member) + && !eu.Memberships[0].Roles.HasRole(TenantRoles.TestingOnly) + ), It.IsAny())); + _recorder.Verify(rec => rec.AuditAgainst(It.IsAny(), "anid", + Audits.EndUserApplication_TenantRolesUnassigned, It.IsAny(), + It.IsAny())); + } + + [Fact] + public async Task WhenHandleOrganizationDeletedAsync_ThenRemovesMembership() + { + var deleter = EndUserRoot.Create(_recorder.Object, _idFactory.Object, UserClassification.Person).Value; + deleter.Register(Roles.Create(PlatformRoles.Operations).Value, Features.Create(TenantFeatures.Basic).Value, + EndUserProfile.Create("afirstname").Value, Optional.None); + deleter.AddMembership(deleter, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Owner).Value, Features.Create(TenantFeatures.Basic).Value); + _endUserRepository.Setup(rep => rep.LoadAsync("adeleterid".ToId(), It.IsAny())) + .ReturnsAsync(deleter); + var domainEvent = Global.StreamDeleted.Create("anorganizationid".ToId(), "adeleterid".ToId()); + + var result = + await _application.HandleOrganizationDeletedAsync(_caller.Object, domainEvent, CancellationToken.None); + + result.Should().BeSuccess(); + _endUserRepository.Verify(rep => rep.SaveAsync(It.Is(eu => + eu.Memberships.Count == 0 + ), It.IsAny())); + } } \ No newline at end of file diff --git a/src/EndUsersApplication.UnitTests/EndUsersApplicationSpec.cs b/src/EndUsersApplication.UnitTests/EndUsersApplicationSpec.cs index 3be6979b..7f751c40 100644 --- a/src/EndUsersApplication.UnitTests/EndUsersApplicationSpec.cs +++ b/src/EndUsersApplication.UnitTests/EndUsersApplicationSpec.cs @@ -666,7 +666,7 @@ public async Task WhenAssignPlatformRolesAsync_ThenAssigns() _endUserRepository.Setup(rep => rep.LoadAsync("anassigneeid".ToId(), It.IsAny())) .ReturnsAsync(assignee); var assigner = EndUserRoot.Create(_recorder.Object, _idFactory.Object, UserClassification.Person).Value; - assigner.Register(Roles.Create(PlatformRoles.Operations).Value, Features.Create(), + assigner.Register(Roles.Create(PlatformRoles.Operations).Value, Features.Empty, EndUserProfile.Create("afirstname").Value, Optional.None); _endUserRepository.Setup(rep => rep.LoadAsync("anassignerid".ToId(), It.IsAny())) .ReturnsAsync(assigner); @@ -693,7 +693,7 @@ public async Task WhenUnassignPlatformRolesAsync_ThenUnassigns() _endUserRepository.Setup(rep => rep.LoadAsync("anassigneeid".ToId(), It.IsAny())) .ReturnsAsync(assignee); var assigner = EndUserRoot.Create(_recorder.Object, _idFactory.Object, UserClassification.Person).Value; - assigner.Register(Roles.Create(PlatformRoles.Operations).Value, Features.Create(), + assigner.Register(Roles.Create(PlatformRoles.Operations).Value, Features.Empty, EndUserProfile.Create("afirstname").Value, Optional.None); _endUserRepository.Setup(rep => rep.LoadAsync("anassignerid".ToId(), It.IsAny())) .ReturnsAsync(assigner); @@ -707,40 +707,6 @@ public async Task WhenUnassignPlatformRolesAsync_ThenUnassigns() } #endif -#if TESTINGONLY - [Fact] - public async Task WhenAssignTenantRolesAsync_ThenAssigns() - { - _caller.Setup(cc => cc.CallerId) - .Returns("anassignerid"); - var assigner = EndUserRoot.Create(_recorder.Object, _idFactory.Object, UserClassification.Person).Value; - assigner.Register(Roles.Create(PlatformRoles.Operations).Value, Features.Create(), - EndUserProfile.Create("afirstname").Value, Optional.None); - assigner.AddMembership(assigner, OrganizationOwnership.Shared, "anorganizationid".ToId(), - Roles.Create(TenantRoles.Owner).Value, - Features.Create(TenantFeatures.Basic).Value); - _endUserRepository.Setup(rep => rep.LoadAsync("anassignerid".ToId(), It.IsAny())) - .ReturnsAsync(assigner); - var assignee = EndUserRoot.Create(_recorder.Object, _idFactory.Object, UserClassification.Person).Value; - assignee.Register(Roles.Create(PlatformRoles.Standard).Value, Features.Create(PlatformFeatures.Basic).Value, - EndUserProfile.Create("afirstname").Value, Optional.None); - assignee.AddMembership(assignee, OrganizationOwnership.Shared, "anorganizationid".ToId(), - Roles.Create(TenantRoles.Member).Value, - Features.Create(TenantFeatures.Basic).Value); - _endUserRepository.Setup(rep => rep.LoadAsync("anassigneeid".ToId(), It.IsAny())) - .ReturnsAsync(assignee); - - var result = await _application.AssignTenantRolesAsync(_caller.Object, "anorganizationid", "anassigneeid", - [TenantRoles.TestingOnly.Name], - CancellationToken.None); - - result.Should().BeSuccess(); - result.Value.Roles.Should().ContainInOrder(PlatformRoles.Standard.Name); - result.Value.Memberships[0].Roles.Should() - .ContainInOrder(TenantRoles.Member.Name, TenantRoles.TestingOnly.Name); - } -#endif - [Fact] public async Task WhenFindPersonByEmailAsyncAndNotExists_ThenReturnsNone() { @@ -826,4 +792,22 @@ public async Task WhenGetMembershipsAsync_ThenReturnsUser() result.Value.Memberships[0].Roles.Should().ContainSingle(role => role == TenantRoles.Member.Name); result.Value.Memberships[0].Features.Should().ContainSingle(feat => feat == TenantFeatures.PaidTrial.Name); } + + [Fact] + public async Task WhenChangeDefaultMembershipAsync_ThenChanges() + { + var user = EndUserRoot.Create(_recorder.Object, _idFactory.Object, UserClassification.Person).Value; + user.Register(Roles.Create(PlatformRoles.Operations).Value, Features.Empty, + EndUserProfile.Create("afirstname").Value, Optional.None); + user.AddMembership(user, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Owner).Value, + Features.Create(TenantFeatures.Basic).Value); + _endUserRepository.Setup(rep => rep.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(user); + + var result = await _application.ChangeDefaultMembershipAsync(_caller.Object, "anorganizationid", + CancellationToken.None); + + result.Value.Id.Should().Be("anid"); + } } \ No newline at end of file diff --git a/src/EndUsersApplication.UnitTests/InvitationsApplication.DomainEventHandlersSpec.cs b/src/EndUsersApplication.UnitTests/InvitationsApplication.DomainEventHandlersSpec.cs index ddf7c64e..2b62ede0 100644 --- a/src/EndUsersApplication.UnitTests/InvitationsApplication.DomainEventHandlersSpec.cs +++ b/src/EndUsersApplication.UnitTests/InvitationsApplication.DomainEventHandlersSpec.cs @@ -58,14 +58,14 @@ public InvitationsApplicationDomainEventHandlersSpec() } [Fact] - public async Task WhenHandleOrganizationMembershipAddedAsyncAndNoUserIdNorEmailAddress_ThenReturnsError() + public async Task WhenHandleOrganizationMemberInvitedAsyncAndNoUserIdNorEmailAddress_ThenReturnsError() { - var domainEvent = Events.MembershipAdded("anorganizationid".ToId(), "aninviterid".ToId(), + var domainEvent = Events.MemberInvited("anorganizationid".ToId(), "aninviterid".ToId(), Optional.None, Optional.None); var result = - await _application.HandleOrganizationMembershipAddedAsync(_caller.Object, domainEvent, + await _application.HandleOrganizationMemberInvitedAsync(_caller.Object, domainEvent, CancellationToken.None); result.Should().BeError(ErrorCode.RuleViolation, @@ -73,7 +73,7 @@ await _application.HandleOrganizationMembershipAddedAsync(_caller.Object, domain } [Fact] - public async Task WhenHandleOrganizationMembershipAddedAsyncWithRegisteredUserEmail_ThenAddsMembership() + public async Task WhenHandleOrganizationMemberInvitedAsyncWithRegisteredUserEmail_ThenAddsMembership() { var inviter = EndUserRoot .Create(_recorder.Object, "aninviterid".ToIdentifierFactory(), UserClassification.Person).Value; @@ -103,12 +103,12 @@ public async Task WhenHandleOrganizationMembershipAddedAsyncWithRegisteredUserEm .Create(_recorder.Object, "aninviteeid".ToIdentifierFactory(), UserClassification.Person).Value; _repository.Setup(rep => rep.LoadAsync("aninviteeid".ToId(), It.IsAny())) .ReturnsAsync(invitee); - var domainEvent = Events.MembershipAdded("anorganizationid".ToId(), "aninviterid".ToId(), + var domainEvent = Events.MemberInvited("anorganizationid".ToId(), "aninviterid".ToId(), Optional.None, EmailAddress.Create("aninvitee@company.com").Value); var result = - await _application.HandleOrganizationMembershipAddedAsync(_caller.Object, domainEvent, + await _application.HandleOrganizationMemberInvitedAsync(_caller.Object, domainEvent, CancellationToken.None); result.Should().BeSuccess(); @@ -131,7 +131,7 @@ await _application.HandleOrganizationMembershipAddedAsync(_caller.Object, domain } [Fact] - public async Task WhenHandleOrganizationMembershipAddedAsyncWithGuestEmailAddress_ThenAddsMembership() + public async Task WhenHandleOrganizationMemberInvitedAsyncWithGuestEmailAddress_ThenAddsMembership() { var inviter = EndUserRoot .Create(_recorder.Object, "aninviterid".ToIdentifierFactory(), UserClassification.Person).Value; @@ -158,12 +158,12 @@ public async Task WhenHandleOrganizationMembershipAddedAsyncWithGuestEmailAddres UserId = "aninviterid", Id = "aprofileid" }); - var domainEvent = Events.MembershipAdded("anorganizationid".ToId(), "aninviterid".ToId(), + var domainEvent = Events.MemberInvited("anorganizationid".ToId(), "aninviterid".ToId(), Optional.None, EmailAddress.Create("aninvitee@company.com").Value); var result = - await _application.HandleOrganizationMembershipAddedAsync(_caller.Object, domainEvent, + await _application.HandleOrganizationMemberInvitedAsync(_caller.Object, domainEvent, CancellationToken.None); result.Should().BeSuccess(); @@ -186,7 +186,7 @@ await _application.HandleOrganizationMembershipAddedAsync(_caller.Object, domain } [Fact] - public async Task WhenHandleOrganizationMembershipAddedAsyncWithUserId_ThenAddsMembership() + public async Task WhenHandleOrganizationMemberInvitedAsyncWithUserId_ThenAddsMembership() { var inviter = EndUserRoot .Create(_recorder.Object, "aninviterid".ToIdentifierFactory(), UserClassification.Person).Value; @@ -212,11 +212,11 @@ await invitee.InviteGuestAsync(_tokensService.Object, "aninviterid".ToId(), UserId = "aninviterid", Id = "aprofileid" }); - var domainEvent = Events.MembershipAdded("anorganizationid".ToId(), "aninviterid".ToId(), "aninviteeid".ToId(), + var domainEvent = Events.MemberInvited("anorganizationid".ToId(), "aninviterid".ToId(), "aninviteeid".ToId(), Optional.None); var result = - await _application.HandleOrganizationMembershipAddedAsync(_caller.Object, domainEvent, + await _application.HandleOrganizationMemberInvitedAsync(_caller.Object, domainEvent, CancellationToken.None); result.Should().BeSuccess(); @@ -236,4 +236,33 @@ await _application.HandleOrganizationMembershipAddedAsync(_caller.Object, domain _repository.Verify(rep => rep.LoadAsync("aninviterid".ToId(), It.IsAny())); _repository.Verify(rep => rep.LoadAsync("aninviteeid".ToId(), It.IsAny())); } + + [Fact] + public async Task WhenHandleOrganizationMemberUnInvitedAsync_ThenRemovesMembership() + { + var inviter = EndUserRoot + .Create(_recorder.Object, "anuninviterid".ToIdentifierFactory(), UserClassification.Person).Value; + inviter.AddMembership(inviter, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Owner).Value, Features.Empty); + _repository.Setup(rep => rep.LoadAsync("anuninviterid".ToId(), It.IsAny())) + .ReturnsAsync(inviter); + var invitee = EndUserRoot + .Create(_recorder.Object, "anuninviteeid".ToIdentifierFactory(), UserClassification.Person).Value; + await invitee.InviteGuestAsync(_tokensService.Object, "anuninviterid".ToId(), + EmailAddress.Create("aninvitee@company.com").Value, (_, _) => Task.FromResult(Result.Ok)); + _repository.Setup(rep => rep.LoadAsync("anuninviteeid".ToId(), It.IsAny())) + .ReturnsAsync(invitee); + var domainEvent = + Events.MemberUnInvited("anorganizationid".ToId(), "anuninviterid".ToId(), "anuninviteeid".ToId()); + + var result = await _application.HandleOrganizationMemberUnInvitedAsync(_caller.Object, domainEvent, + CancellationToken.None); + + result.Should().BeSuccess(); + _repository.Verify(rep => rep.SaveAsync(It.Is(eu => + eu.Memberships.Count == 0 + ), It.IsAny())); + _repository.Verify(rep => rep.LoadAsync("anuninviterid".ToId(), It.IsAny())); + _repository.Verify(rep => rep.LoadAsync("anuninviteeid".ToId(), It.IsAny())); + } } \ No newline at end of file diff --git a/src/EndUsersApplication/EndUsersApplication.DomainEventHandlers.cs b/src/EndUsersApplication/EndUsersApplication.DomainEventHandlers.cs index 843df232..8c8d0839 100644 --- a/src/EndUsersApplication/EndUsersApplication.DomainEventHandlers.cs +++ b/src/EndUsersApplication/EndUsersApplication.DomainEventHandlers.cs @@ -1,9 +1,15 @@ +using Application.Common.Extensions; using Application.Interfaces; using Application.Resources.Shared; using Common; using Common.Extensions; +using Domain.Common.Events; using Domain.Common.ValueObjects; using Domain.Events.Shared.Organizations; +using Domain.Shared; +using Domain.Shared.EndUsers; +using EndUsersDomain; +using Membership = Application.Resources.Shared.Membership; namespace EndUsersApplication; @@ -22,4 +28,220 @@ public async Task> HandleOrganizationCreatedAsync(ICallerContext c return Result.Ok; } + + public async Task> HandleOrganizationDeletedAsync(ICallerContext caller, + Global.StreamDeleted domainEvent, + CancellationToken cancellationToken) + { + var deleted = await RemoveMembershipFromDeletedOrganizationAsync(caller, domainEvent.RootId.ToId(), + domainEvent.DeletedById.ToId(), cancellationToken); + if (!deleted.IsSuccessful) + { + return deleted.Error; + } + + return Result.Ok; + } + + public async Task> HandleOrganizationRoleAssignedAsync(ICallerContext caller, + RoleAssigned domainEvent, + CancellationToken cancellationToken) + { + var assigned = await AssignTenantRolesAsync(caller, domainEvent.AssignedById.ToId(), domainEvent.RootId.ToId(), + domainEvent.UserId.ToId(), [domainEvent.Role], cancellationToken); + if (!assigned.IsSuccessful) + { + return assigned.Error; + } + + return Result.Ok; + } + + public async Task> HandleOrganizationRoleUnassignedAsync(ICallerContext caller, + RoleUnassigned domainEvent, + CancellationToken cancellationToken) + { + var assigned = await UnassignTenantRolesAsync(caller, domainEvent.UnassignedById.ToId(), + domainEvent.RootId.ToId(), domainEvent.UserId.ToId(), + [domainEvent.Role], cancellationToken); + if (!assigned.IsSuccessful) + { + return assigned.Error; + } + + return Result.Ok; + } + + private async Task> RemoveMembershipFromDeletedOrganizationAsync(ICallerContext caller, + Identifier organizationId, Identifier deletedById, CancellationToken cancellationToken) + { + var retrievedDeleter = await _endUserRepository.LoadAsync(deletedById, cancellationToken); + if (!retrievedDeleter.IsSuccessful) + { + return retrievedDeleter.Error; + } + + var deleter = retrievedDeleter.Value; + var removed = deleter.RemoveMembership(deleter, organizationId); + if (!removed.IsSuccessful) + { + return removed.Error; + } + + var saved = await _endUserRepository.SaveAsync(deleter, cancellationToken); + if (!saved.IsSuccessful) + { + return saved.Error; + } + + deleter = saved.Value; + _recorder.TraceInformation(caller.ToCall(), + "EndUser {Id} has been removed from the deleted organization {Organization}", + deleter.Id, organizationId); + + return Result.Ok; + } + + private async Task> CreateMembershipAsync(ICallerContext caller, + Identifier createdById, Identifier organizationId, OrganizationOwnership ownership, + CancellationToken cancellationToken) + { + var retrievedInviter = await _endUserRepository.LoadAsync(createdById, cancellationToken); + if (!retrievedInviter.IsSuccessful) + { + return retrievedInviter.Error; + } + + var inviter = retrievedInviter.Value; + var useCase = ownership switch + { + OrganizationOwnership.Shared => RolesAndFeaturesUseCase.CreatingOrg, + OrganizationOwnership.Personal => inviter.Classification == UserClassification.Person + ? RolesAndFeaturesUseCase.CreatingPerson + : RolesAndFeaturesUseCase.CreatingMachine, + _ => RolesAndFeaturesUseCase.CreatingOrg + }; + var (_, _, tenantRoles, tenantFeatures) = + EndUserRoot.GetInitialRolesAndFeatures(useCase, caller.IsAuthenticated); + var inviterOwnership = ownership.ToEnumOrDefault(Domain.Shared.Organizations.OrganizationOwnership.Shared); + var membered = inviter.AddMembership(inviter, inviterOwnership, organizationId, tenantRoles, tenantFeatures); + if (!membered.IsSuccessful) + { + return membered.Error; + } + + var saved = await _endUserRepository.SaveAsync(inviter, cancellationToken); + if (!saved.IsSuccessful) + { + return saved.Error; + } + + inviter = saved.Value; + _recorder.TraceInformation(caller.ToCall(), "EndUser {Id} has become a member of organization {Organization}", + inviter.Id, organizationId); + + var membership = inviter.FindMembership(organizationId); + if (!membership.HasValue) + { + return Error.EntityNotFound(Resources.EndUsersApplication_MembershipNotFound); + } + + return membership.Value.ToMembership(); + } + + private async Task> AssignTenantRolesAsync(ICallerContext caller, Identifier assignerId, + Identifier organizationId, Identifier assigneeId, List roles, CancellationToken cancellationToken) + { + var retrievedAssigner = await _endUserRepository.LoadAsync(assignerId, cancellationToken); + if (!retrievedAssigner.IsSuccessful) + { + return retrievedAssigner.Error; + } + + var retrievedAssignee = await _endUserRepository.LoadAsync(assigneeId, cancellationToken); + if (!retrievedAssignee.IsSuccessful) + { + return retrievedAssignee.Error; + } + + var assigner = retrievedAssigner.Value; + var assignee = retrievedAssignee.Value; + var assigneeRoles = Roles.Create(roles.ToArray()); + if (!assigneeRoles.IsSuccessful) + { + return assigneeRoles.Error; + } + + var assigned = assignee.AssignMembershipRoles(assigner, organizationId, assigneeRoles.Value); + if (!assigned.IsSuccessful) + { + return assigned.Error; + } + + var membership = assigned.Value; + var saved = await _endUserRepository.SaveAsync(assignee, cancellationToken); + if (!saved.IsSuccessful) + { + return saved.Error; + } + + assignee = saved.Value; + _recorder.TraceInformation(caller.ToCall(), + "EndUser {Id} has been assigned tenant roles {Roles} to membership {Membership}", + assignee.Id, roles.JoinAsOredChoices(), membership.Id); + _recorder.AuditAgainst(caller.ToCall(), assignee.Id, + Audits.EndUserApplication_TenantRolesAssigned, + "EndUser {AssignerId} assigned the tenant roles {Roles} to assignee {AssigneeId} for membership {Membership}", + assigner.Id, roles.JoinAsOredChoices(), assignee.Id, membership.Id); + + return Result.Ok; + } + + private async Task> UnassignTenantRolesAsync(ICallerContext caller, Identifier unassignerId, + Identifier organizationId, Identifier assigneeId, List roles, CancellationToken cancellationToken) + { + var retrievedAssigner = await _endUserRepository.LoadAsync(unassignerId, cancellationToken); + if (!retrievedAssigner.IsSuccessful) + { + return retrievedAssigner.Error; + } + + var retrievedAssignee = await _endUserRepository.LoadAsync(assigneeId, cancellationToken); + if (!retrievedAssignee.IsSuccessful) + { + return retrievedAssignee.Error; + } + + var assigner = retrievedAssigner.Value; + var assignee = retrievedAssignee.Value; + var assigneeRoles = Roles.Create(roles.ToArray()); + if (!assigneeRoles.IsSuccessful) + { + return assigneeRoles.Error; + } + + var assigned = assignee.UnassignMembershipRoles(assigner, organizationId, assigneeRoles.Value); + if (!assigned.IsSuccessful) + { + return assigned.Error; + } + + var membership = assigned.Value; + var saved = await _endUserRepository.SaveAsync(assignee, cancellationToken); + if (!saved.IsSuccessful) + { + return saved.Error; + } + + assignee = saved.Value; + _recorder.TraceInformation(caller.ToCall(), + "EndUser {Id} has been unassigned tenant roles {Roles} from membership {Membership}", + assignee.Id, roles.JoinAsOredChoices(), membership.Id); + _recorder.AuditAgainst(caller.ToCall(), assignee.Id, + Audits.EndUserApplication_TenantRolesUnassigned, + "EndUser {AssignerId} unassigned the tenant roles {Roles} from assignee {AssigneeId} for membership {Membership}", + assigner.Id, roles.JoinAsOredChoices(), assignee.Id, membership.Id); + + return Result.Ok; + } } \ No newline at end of file diff --git a/src/EndUsersApplication/EndUsersApplication.cs b/src/EndUsersApplication/EndUsersApplication.cs index 9a5ee4b5..5a5928ea 100644 --- a/src/EndUsersApplication/EndUsersApplication.cs +++ b/src/EndUsersApplication/EndUsersApplication.cs @@ -61,6 +61,25 @@ public async Task> GetUserAsync(ICallerContext context, s return user.ToUser(); } + public async Task, Error>> ListMembershipsForCallerAsync(ICallerContext caller, + SearchOptions searchOptions, GetOptions getOptions, + CancellationToken cancellationToken) + { + var userId = caller.ToCallerId(); + var retrieved = await _endUserRepository.LoadAsync(userId, cancellationToken); + if (!retrieved.IsSuccessful) + { + return retrieved.Error; + } + + var user = retrieved.Value; + var memberships = user.Memberships.Select(ms => ms.ToMembership()).ToList(); + + _recorder.TraceInformation(caller.ToCall(), "Retrieved memberships for user: {Id}", user.Id); + + return searchOptions.ApplyWithMetadata(memberships); + } + public async Task, Error>> ListMembershipsForOrganizationAsync( ICallerContext caller, string organizationId, SearchOptions searchOptions, GetOptions getOptions, CancellationToken cancellationToken) @@ -446,98 +465,34 @@ public async Task> UnassignPlatformRolesAsync(ICallerCont return updated.Value.ToUser(); } - public async Task> AssignTenantRolesAsync(ICallerContext context, - string organizationId, - string id, List roles, CancellationToken cancellationToken) - { - var retrievedAssignee = await _endUserRepository.LoadAsync(id.ToId(), cancellationToken); - if (!retrievedAssignee.IsSuccessful) - { - return retrievedAssignee.Error; - } - - var retrievedAssigner = await _endUserRepository.LoadAsync(context.ToCallerId(), cancellationToken); - if (!retrievedAssigner.IsSuccessful) - { - return retrievedAssigner.Error; - } - - var assignee = retrievedAssignee.Value; - var assigner = retrievedAssigner.Value; - var assigneeRoles = Roles.Create(roles.ToArray()); - if (!assigneeRoles.IsSuccessful) - { - return assigneeRoles.Error; - } - - var assigned = assignee.AssignMembershipRoles(assigner, organizationId.ToId(), assigneeRoles.Value); - if (!assigned.IsSuccessful) - { - return assigned.Error; - } - - var membership = assigned.Value; - var updated = await _endUserRepository.SaveAsync(assignee, cancellationToken); - if (!updated.IsSuccessful) - { - return updated.Error; - } - - _recorder.TraceInformation(context.ToCall(), - "EndUser {Id} has been assigned tenant roles {Roles} to membership {Membership}", - assignee.Id, roles.JoinAsOredChoices(), membership.Id); - _recorder.AuditAgainst(context.ToCall(), assignee.Id, - Audits.EndUserApplication_TenantRolesAssigned, - "EndUser {AssignerId} assigned the tenant roles {Roles} to assignee {AssigneeId} for membership {Membership}", - assigner.Id, roles.JoinAsOredChoices(), assignee.Id, membership.Id); - - return assignee.ToUserWithMemberships(); - } - - private async Task> CreateMembershipAsync(ICallerContext context, - Identifier createdById, Identifier organizationId, OrganizationOwnership ownership, + public async Task> ChangeDefaultMembershipAsync(ICallerContext caller, string organizationId, CancellationToken cancellationToken) { - var retrievedInviter = await _endUserRepository.LoadAsync(createdById, cancellationToken); - if (!retrievedInviter.IsSuccessful) + var userId = caller.ToCallerId(); + var retrieved = await _endUserRepository.LoadAsync(userId, cancellationToken); + if (!retrieved.IsSuccessful) { - return retrievedInviter.Error; + return retrieved.Error; } - var inviter = retrievedInviter.Value; - var useCase = ownership switch - { - OrganizationOwnership.Shared => RolesAndFeaturesUseCase.CreatingOrg, - OrganizationOwnership.Personal => inviter.Classification == UserClassification.Person - ? RolesAndFeaturesUseCase.CreatingPerson - : RolesAndFeaturesUseCase.CreatingMachine, - _ => RolesAndFeaturesUseCase.CreatingOrg - }; - var (_, _, tenantRoles, tenantFeatures) = - EndUserRoot.GetInitialRolesAndFeatures(useCase, context.IsAuthenticated); - var inviterOwnership = ownership.ToEnumOrDefault(Domain.Shared.Organizations.OrganizationOwnership.Shared); - var membered = inviter.AddMembership(inviter, inviterOwnership, organizationId, tenantRoles, tenantFeatures); - if (!membered.IsSuccessful) + var user = retrieved.Value; + var changed = user.ChangeDefaultMembership(organizationId.ToId()); + if (!changed.IsSuccessful) { - return membered.Error; + return changed.Error; } - var saved = await _endUserRepository.SaveAsync(inviter, cancellationToken); + var saved = await _endUserRepository.SaveAsync(user, cancellationToken); if (!saved.IsSuccessful) { return saved.Error; } - _recorder.TraceInformation(context.ToCall(), "EndUser {Id} has become a member of organization {Organization}", - inviter.Id, organizationId); + user = saved.Value; + _recorder.TraceInformation(caller.ToCall(), "Default membership changed for user {Id} to {OrganizationId}", + user.Id, organizationId); - var membership = saved.Value.FindMembership(organizationId); - if (!membership.HasValue) - { - return Error.EntityNotFound(Resources.EndUsersApplication_MembershipNotFound); - } - - return membership.Value.ToMembership(); + return user.ToUser(); } private async Task> WithGetOptionsAsync(ICallerContext caller, @@ -690,6 +645,7 @@ public static MembershipWithUserProfile ToMembership(this MembershipJoinInvitati UserId = membership.UserId.Value, IsDefault = membership.IsDefault, OrganizationId = membership.UserId.Value, + Ownership = membership.Ownership.Value.ToEnumOrDefault(OrganizationOwnership.Shared), Status = membership.Status.Value.ToEnumOrDefault(EndUserStatus.Unregistered), Roles = membership.Roles.Value.ToList(), Features = membership.Features.Value.ToList(), @@ -699,16 +655,17 @@ public static MembershipWithUserProfile ToMembership(this MembershipJoinInvitati return dto; } - public static Membership ToMembership(this EndUsersDomain.Membership ms) + public static Membership ToMembership(this EndUsersDomain.Membership membership) { return new Membership { - Id = ms.Id, - UserId = ms.RootId.Value, - IsDefault = ms.IsDefault, - OrganizationId = ms.OrganizationId.Value, - Features = ms.Features.ToList(), - Roles = ms.Roles.ToList() + Id = membership.Id, + UserId = membership.RootId.Value, + IsDefault = membership.IsDefault, + OrganizationId = membership.OrganizationId.Value, + Ownership = membership.Ownership.Value.ToEnumOrDefault(OrganizationOwnership.Shared), + Features = membership.Features.ToList(), + Roles = membership.Roles.ToList() }; } diff --git a/src/EndUsersApplication/IEndUsersApplication.DomainEventHandlers.cs b/src/EndUsersApplication/IEndUsersApplication.DomainEventHandlers.cs index e1c80b1c..13b8bb1c 100644 --- a/src/EndUsersApplication/IEndUsersApplication.DomainEventHandlers.cs +++ b/src/EndUsersApplication/IEndUsersApplication.DomainEventHandlers.cs @@ -1,5 +1,6 @@ using Application.Interfaces; using Common; +using Domain.Common.Events; using Domain.Events.Shared.Organizations; namespace EndUsersApplication; @@ -8,4 +9,13 @@ partial interface IEndUsersApplication { Task> HandleOrganizationCreatedAsync(ICallerContext caller, Created domainEvent, CancellationToken cancellationToken); + + Task> HandleOrganizationDeletedAsync(ICallerContext caller, Global.StreamDeleted domainEvent, + CancellationToken cancellationToken); + + Task> HandleOrganizationRoleAssignedAsync(ICallerContext caller, RoleAssigned domainEvent, + CancellationToken cancellationToken); + + Task> HandleOrganizationRoleUnassignedAsync(ICallerContext caller, RoleUnassigned domainEvent, + CancellationToken cancellationToken); } \ No newline at end of file diff --git a/src/EndUsersApplication/IEndUsersApplication.cs b/src/EndUsersApplication/IEndUsersApplication.cs index 2bfe90d8..8118e58c 100644 --- a/src/EndUsersApplication/IEndUsersApplication.cs +++ b/src/EndUsersApplication/IEndUsersApplication.cs @@ -9,9 +9,8 @@ public partial interface IEndUsersApplication Task> AssignPlatformRolesAsync(ICallerContext context, string id, List roles, CancellationToken cancellationToken); - Task> AssignTenantRolesAsync(ICallerContext context, string organizationId, - string id, - List roles, CancellationToken cancellationToken); + Task> ChangeDefaultMembershipAsync(ICallerContext caller, string organizationId, + CancellationToken cancellationToken); Task, Error>> FindPersonByEmailAddressAsync(ICallerContext context, string emailAddress, CancellationToken cancellationToken); @@ -21,6 +20,9 @@ Task> GetMembershipsAsync(ICallerContext c Task> GetUserAsync(ICallerContext context, string id, CancellationToken cancellationToken); + Task, Error>> ListMembershipsForCallerAsync(ICallerContext caller, + SearchOptions searchOptions, GetOptions getOptions, CancellationToken cancellationToken); + Task, Error>> ListMembershipsForOrganizationAsync( ICallerContext caller, string organizationId, SearchOptions searchOptions, GetOptions getOptions, CancellationToken cancellationToken); diff --git a/src/EndUsersApplication/IInvitationsApplication.DomainEventHandlers.cs b/src/EndUsersApplication/IInvitationsApplication.DomainEventHandlers.cs index 5d69f92a..b18eaf59 100644 --- a/src/EndUsersApplication/IInvitationsApplication.DomainEventHandlers.cs +++ b/src/EndUsersApplication/IInvitationsApplication.DomainEventHandlers.cs @@ -6,6 +6,9 @@ namespace EndUsersApplication; partial interface IInvitationsApplication { - Task> HandleOrganizationMembershipAddedAsync(ICallerContext caller, MembershipAdded domainEvent, + Task> HandleOrganizationMemberInvitedAsync(ICallerContext caller, MemberInvited domainEvent, + CancellationToken cancellationToken); + + Task> HandleOrganizationMemberUnInvitedAsync(ICallerContext caller, MemberUnInvited domainEvent, CancellationToken cancellationToken); } \ No newline at end of file diff --git a/src/EndUsersApplication/InvitationsApplication.DomainEventHandlers.cs b/src/EndUsersApplication/InvitationsApplication.DomainEventHandlers.cs index e6f18289..a235a101 100644 --- a/src/EndUsersApplication/InvitationsApplication.DomainEventHandlers.cs +++ b/src/EndUsersApplication/InvitationsApplication.DomainEventHandlers.cs @@ -1,14 +1,19 @@ +using Application.Common.Extensions; using Application.Interfaces; using Common; +using Common.Extensions; using Domain.Common.ValueObjects; using Domain.Events.Shared.Organizations; +using EndUsersDomain; +using Membership = Application.Resources.Shared.Membership; +using OrganizationOwnership = Domain.Shared.Organizations.OrganizationOwnership; namespace EndUsersApplication; partial class InvitationsApplication { - public async Task> HandleOrganizationMembershipAddedAsync(ICallerContext caller, - MembershipAdded domainEvent, CancellationToken cancellationToken) + public async Task> HandleOrganizationMemberInvitedAsync(ICallerContext caller, + MemberInvited domainEvent, CancellationToken cancellationToken) { var membership = await InviteMemberToOrganizationAsync(caller, domainEvent.RootId.ToId(), domainEvent.InvitedById, domainEvent.UserId, domainEvent.EmailAddress, cancellationToken); @@ -19,4 +24,119 @@ public async Task> HandleOrganizationMembershipAddedAsync(ICallerC return Result.Ok; } + + public async Task> HandleOrganizationMemberUnInvitedAsync(ICallerContext caller, + MemberUnInvited domainEvent, + CancellationToken cancellationToken) + { + var membership = await UnInviteMemberFromOrganizationAsync(caller, domainEvent.RootId.ToId(), + domainEvent.UninvitedById, domainEvent.UserId, cancellationToken); + if (!membership.IsSuccessful) + { + return membership.Error; + } + + return Result.Ok; + } + + private async Task> InviteMemberToOrganizationAsync(ICallerContext context, + string organizationId, string invitedById, string? userId, string? emailAddress, + CancellationToken cancellationToken) + { + if (emailAddress.HasNoValue() && userId.HasNoValue()) + { + return Error.RuleViolation(Resources + .InvitationsApplication_InviteMemberToOrganization_NoUserIdNorEmailAddress); + } + + var retrievedInviter = await _repository.LoadAsync(invitedById.ToId(), cancellationToken); + if (!retrievedInviter.IsSuccessful) + { + return retrievedInviter.Error; + } + + var inviter = retrievedInviter.Value; + EndUserRoot invitee = null!; + if (emailAddress.HasValue()) + { + var retrievedByEmail = + await InviteGuestByEmailInternalAsync(context, invitedById, emailAddress, cancellationToken); + if (!retrievedByEmail.IsSuccessful) + { + return retrievedByEmail.Error; + } + + invitee = retrievedByEmail.Value.Invitee; + } + + if (userId.HasValue()) + { + var retrievedById = await InviteGuestByUserIdInternalAsync(context, invitedById, userId, cancellationToken); + if (!retrievedById.IsSuccessful) + { + return retrievedById.Error; + } + + invitee = retrievedById.Value.Invitee; + } + + var (_, _, tenantRoles, tenantFeatures) = + EndUserRoot.GetInitialRolesAndFeatures(RolesAndFeaturesUseCase.InvitingMemberToOrg, + context.IsAuthenticated); + var enrolled = invitee.AddMembership(inviter, OrganizationOwnership.Shared, organizationId.ToId(), + tenantRoles, tenantFeatures); + if (!enrolled.IsSuccessful) + { + return enrolled.Error; + } + + var membership = invitee.FindMembership(organizationId.ToId()); + var saved = await _repository.SaveAsync(invitee, cancellationToken); + if (!saved.IsSuccessful) + { + return saved.Error; + } + + invitee = saved.Value; + _recorder.TraceInformation(context.ToCall(), + "EndUser {Id} has been invited to organization {Organization}", invitee.Id, organizationId); + + return membership.Value.ToMembership(); + } + + private async Task> UnInviteMemberFromOrganizationAsync(ICallerContext context, + string organizationId, string unInvitedById, string? userId, CancellationToken cancellationToken) + { + var retrievedUninviter = await _repository.LoadAsync(unInvitedById.ToId(), cancellationToken); + if (!retrievedUninviter.IsSuccessful) + { + return retrievedUninviter.Error; + } + + var uninviter = retrievedUninviter.Value; + var retrievedUninvitee = await _repository.LoadAsync(userId.ToId(), cancellationToken); + if (!retrievedUninvitee.IsSuccessful) + { + return retrievedUninvitee.Error; + } + + var uninvitee = retrievedUninvitee.Value; + var uninvited = uninvitee.RemoveMembership(uninviter, organizationId.ToId()); + if (!uninvited.IsSuccessful) + { + return uninvited.Error; + } + + var saved = await _repository.SaveAsync(uninvitee, cancellationToken); + if (!saved.IsSuccessful) + { + return saved.Error; + } + + uninvitee = saved.Value; + _recorder.TraceInformation(context.ToCall(), + "EndUser {Id} has been uninvited from organization {Organization}", uninvitee.Id, organizationId); + + return Result.Ok; + } } \ No newline at end of file diff --git a/src/EndUsersApplication/InvitationsApplication.cs b/src/EndUsersApplication/InvitationsApplication.cs index 2057c1fe..efc5b9f1 100644 --- a/src/EndUsersApplication/InvitationsApplication.cs +++ b/src/EndUsersApplication/InvitationsApplication.cs @@ -11,17 +11,15 @@ using Domain.Shared.EndUsers; using EndUsersApplication.Persistence; using EndUsersDomain; -using Membership = Application.Resources.Shared.Membership; -using OrganizationOwnership = Domain.Shared.Organizations.OrganizationOwnership; namespace EndUsersApplication; public partial class InvitationsApplication : IInvitationsApplication { private readonly IIdentifierFactory _idFactory; - private readonly IInvitationRepository _repository; private readonly INotificationsService _notificationsService; private readonly IRecorder _recorder; + private readonly IInvitationRepository _repository; private readonly ITokensService _tokensService; private readonly IUserProfilesService _userProfilesService; @@ -40,19 +38,21 @@ public InvitationsApplication(IRecorder recorder, IIdentifierFactory idFactory, public async Task> InviteGuestAsync(ICallerContext context, string emailAddress, CancellationToken cancellationToken) { - var invited = await InviteGuestByEmailInternalAsync(context, context.CallerId, emailAddress, cancellationToken); - if (!invited.IsSuccessful) + var invitedByEmail = + await InviteGuestByEmailInternalAsync(context, context.CallerId, emailAddress, cancellationToken); + if (!invitedByEmail.IsSuccessful) { - return invited.Error; + return invitedByEmail.Error; } - var invitee = invited.Value.Invitee; + var invitee = invitedByEmail.Value.Invitee; var saved = await _repository.SaveAsync(invitee, cancellationToken); if (!saved.IsSuccessful) { return saved.Error; } + invitee = saved.Value; _recorder.TraceInformation(context.ToCall(), "Guest {Id} was invited", invitee.Id); _recorder.TrackUsage(context.ToCall(), UsageConstants.Events.UsageScenarios.GuestInvited, new Dictionary @@ -61,7 +61,7 @@ public async Task> InviteGuestAsync(ICallerContext con { nameof(UserProfile.EmailAddress), emailAddress } }); - return invited.Value.Invitee.ToInvitation(invited.Value.Profile); + return invitee.ToInvitation(invitedByEmail.Value.Profile); } public async Task> ResendGuestInvitationAsync(ICallerContext context, string token, @@ -138,68 +138,6 @@ public async Task> VerifyGuestInvitationAsync(ICallerC return invitee.ToInvitation(); } - private async Task> InviteMemberToOrganizationAsync(ICallerContext context, - string organizationId, string invitedById, string? userId, string? emailAddress, - CancellationToken cancellationToken) - { - if (emailAddress.HasNoValue() && userId.HasNoValue()) - { - return Error.RuleViolation(Resources - .InvitationsApplication_InviteMemberToOrganization_NoUserIdNorEmailAddress); - } - - var inviter = await _repository.LoadAsync(invitedById.ToId(), cancellationToken); - if (!inviter.IsSuccessful) - { - return inviter.Error; - } - - EndUserRoot invitee = null!; - if (emailAddress.HasValue()) - { - var invited = await InviteGuestByEmailInternalAsync(context, invitedById, emailAddress, cancellationToken); - if (!invited.IsSuccessful) - { - return invited.Error; - } - - invitee = invited.Value.Invitee; - } - - if (userId.HasValue()) - { - var invited = await InviteGuestByUserIdInternalAsync(context, invitedById, userId, cancellationToken); - if (!invited.IsSuccessful) - { - return invited.Error; - } - - invitee = invited.Value.Invitee; - } - - var (_, _, tenantRoles, tenantFeatures) = - EndUserRoot.GetInitialRolesAndFeatures(RolesAndFeaturesUseCase.InvitingMemberToOrg, - context.IsAuthenticated); - var enrolled = invitee.AddMembership(inviter.Value, OrganizationOwnership.Shared, organizationId.ToId(), - tenantRoles, tenantFeatures); - if (!enrolled.IsSuccessful) - { - return enrolled.Error; - } - - var membership = invitee.FindMembership(organizationId.ToId()); - var saved = await _repository.SaveAsync(invitee, cancellationToken); - if (!saved.IsSuccessful) - { - return saved.Error; - } - - _recorder.TraceInformation(context.ToCall(), - "EndUser {Id} has been invited to organization {Organization}", saved.Value.Id, organizationId); - - return membership.Value.ToMembership(); - } - private async Task> InviteGuestByEmailInternalAsync( ICallerContext context, string invitedById, string emailAddress, CancellationToken cancellationToken) { @@ -265,9 +203,7 @@ await _repository.LoadAsync(retrievedEmailOwner.Value.Value.UserId.ToId(), invitee = created.Value; } - var invited = await invitee.InviteGuestAsync(_tokensService, inviter.Id, email.Value, - async (inviterId, newToken) => - await SendInvitationNotificationAsync(context, inviterId, newToken, invitee, cancellationToken)); + var invited = await InviteGuestInternalAsync(context, inviter, invitee, email.Value, cancellationToken); if (!invited.IsSuccessful) { return invited.Error; @@ -277,8 +213,7 @@ await _repository.LoadAsync(retrievedEmailOwner.Value.Value.UserId.ToId(), } private async Task> InviteGuestByUserIdInternalAsync( - ICallerContext context, string invitedById, - string userId, CancellationToken cancellationToken) + ICallerContext context, string invitedById, string userId, CancellationToken cancellationToken) { var retrievedInviter = await _repository.LoadAsync(invitedById.ToId(), cancellationToken); if (!retrievedInviter.IsSuccessful) @@ -306,9 +241,7 @@ await _repository.LoadAsync(retrievedEmailOwner.Value.Value.UserId.ToId(), return email.Error; } - var invited = await invitee.InviteGuestAsync(_tokensService, inviter.Id, email.Value, - async (inviterId, newToken) => - await SendInvitationNotificationAsync(context, inviterId, newToken, invitee, cancellationToken)); + var invited = await InviteGuestInternalAsync(context, inviter, invitee, email.Value, cancellationToken); if (!invited.IsSuccessful) { return invited.Error; @@ -317,6 +250,20 @@ await _repository.LoadAsync(retrievedEmailOwner.Value.Value.UserId.ToId(), return (invitee, null); } + private async Task> InviteGuestInternalAsync(ICallerContext caller, EndUserRoot inviter, + EndUserRoot invitee, EmailAddress emailAddress, CancellationToken cancellationToken) + { + var invited = await invitee.InviteGuestAsync(_tokensService, inviter.Id, emailAddress, + async (inviterId, newToken) => + await SendInvitationNotificationAsync(caller, inviterId, newToken, invitee, cancellationToken)); + if (!invited.IsSuccessful) + { + return invited.Error; + } + + return invitee; + } + private async Task> SendInvitationNotificationAsync(ICallerContext context, Identifier inviterId, string token, EndUserRoot invitee, CancellationToken cancellationToken) { diff --git a/src/EndUsersApplication/Persistence/ReadModels/Membership.cs b/src/EndUsersApplication/Persistence/ReadModels/Membership.cs index 5a795488..05faeeea 100644 --- a/src/EndUsersApplication/Persistence/ReadModels/Membership.cs +++ b/src/EndUsersApplication/Persistence/ReadModels/Membership.cs @@ -1,6 +1,7 @@ using Application.Persistence.Common; using Common; using Domain.Shared; +using Domain.Shared.Organizations; using QueryAny; namespace EndUsersApplication.Persistence.ReadModels; @@ -14,6 +15,8 @@ public class Membership : ReadModelEntity public Optional OrganizationId { get; set; } + public Optional Ownership { get; set; } + public Optional Roles { get; set; } public Optional UserId { get; set; } diff --git a/src/EndUsersApplication/Persistence/ReadModels/MembershipJoinInvitation.cs b/src/EndUsersApplication/Persistence/ReadModels/MembershipJoinInvitation.cs index 997ed02a..625b83d4 100644 --- a/src/EndUsersApplication/Persistence/ReadModels/MembershipJoinInvitation.cs +++ b/src/EndUsersApplication/Persistence/ReadModels/MembershipJoinInvitation.cs @@ -2,6 +2,7 @@ using Common; using Domain.Shared; using Domain.Shared.EndUsers; +using Domain.Shared.Organizations; using QueryAny; namespace EndUsersApplication.Persistence.ReadModels; @@ -17,6 +18,8 @@ public class MembershipJoinInvitation : ReadModelEntity public Optional OrganizationId { get; set; } + public Optional Ownership { get; set; } + public Optional Roles { get; set; } public Optional Status { get; set; } diff --git a/src/EndUsersDomain.UnitTests/EndUserRootSpec.cs b/src/EndUsersDomain.UnitTests/EndUserRootSpec.cs index 31e65417..66101bda 100644 --- a/src/EndUsersDomain.UnitTests/EndUserRootSpec.cs +++ b/src/EndUsersDomain.UnitTests/EndUserRootSpec.cs @@ -26,8 +26,8 @@ private static EndUserRoot CreateOrgOwner(Mock recorder, string organ { var owner = EndUserRoot.Create(recorder.Object, "anownerid".ToIdentifierFactory(), classification) .Value; - owner.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + owner.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("orgowner@company.com").Value); owner.AddMembership(owner, OrganizationOwnership.Shared, organizationId.ToId(), Roles.Create(TenantRoles.Owner).Value, Features.Empty); @@ -40,8 +40,8 @@ private static EndUserRoot CreateOrgMember(Mock recorder, string orga var owner = EndUserRoot .Create(recorder.Object, "amemberid".ToIdentifierFactory(), UserClassification.Person) .Value; - owner.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + owner.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("orgowner@company.com").Value); owner.AddMembership(owner, OrganizationOwnership.Shared, organizationId.ToId(), Roles.Create(TenantRoles.Member).Value, Features.Empty); @@ -53,8 +53,8 @@ private static EndUserRoot CreateOperator(Mock recorder, Mock Task.FromResult(Result.Ok)); - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, userProfile, emailAddress); + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, userProfile, emailAddress); _user.Access.Should().Be(UserAccess.Enabled); _user.Status.Should().Be(UserStatus.Registered); _user.Classification.Should().Be(UserClassification.Person); - _user.Roles.Items.Should().ContainInOrder(Role.Create(PlatformRoles.Standard.Name).Value); - _user.Features.Items.Should().ContainInOrder(Feature.Create(PlatformFeatures.Basic.Name).Value); + _user.Roles.Items.Should().ContainInOrder(Role.Create(PlatformRoles.Standard).Value); + _user.Features.Items.Should().ContainInOrder(Feature.Create(PlatformFeatures.Basic).Value); _user.GuestInvitation.IsAccepted.Should().BeTrue(); _user.GuestInvitation.AcceptedEmailAddress.Should().Be(emailAddress); _user.Events[2].Should().BeOfType(); @@ -125,22 +125,22 @@ await _user.InviteGuestAsync(_tokensService.Object, "aninviterid".ToId(), emailA [Fact] public void WhenRegister_ThenRegistered() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); _user.Access.Should().Be(UserAccess.Enabled); _user.Status.Should().Be(UserStatus.Registered); _user.Classification.Should().Be(UserClassification.Person); - _user.Roles.Items.Should().ContainInOrder(Role.Create(PlatformRoles.Standard.Name).Value); - _user.Features.Items.Should().ContainInOrder(Feature.Create(PlatformFeatures.Basic.Name).Value); + _user.Roles.Items.Should().ContainInOrder(Role.Create(PlatformRoles.Standard).Value); + _user.Features.Items.Should().ContainInOrder(Feature.Create(PlatformFeatures.Basic).Value); _user.Events.Last().Should().BeOfType(); } [Fact] public void WhenEnsureInvariantsAndRegisteredPersonDoesNotHaveADefaultRole_ThenReturnsError() { - _user.Register(Roles.Empty, Features.Create(PlatformFeatures.Basic.Name).Value, + _user.Register(Roles.Empty, Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var result = _user.EnsureInvariants(); @@ -151,7 +151,7 @@ public void WhenEnsureInvariantsAndRegisteredPersonDoesNotHaveADefaultRole_ThenR [Fact] public void WhenEnsureInvariantsAndRegisteredPersonDoesNotHaveADefaultFeature_ThenReturnsError() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, Features.Empty, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); @@ -164,8 +164,8 @@ public void WhenEnsureInvariantsAndRegisteredPersonDoesNotHaveADefaultFeature_Th public void WhenEnsureInvariantsAndRegisteredPersonStillInvited_ThenReturnsError() { var emailAddress = EmailAddress.Create("auser@company.com").Value; - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, emailAddress); #if TESTINGONLY _user.TestingOnly_InviteGuest(emailAddress); @@ -180,8 +180,8 @@ public void WhenEnsureInvariantsAndRegisteredPersonStillInvited_ThenReturnsError public void WhenAddMembershipByNonOwner_ThenReturnsError() { var inviter = CreateOrgMember(_recorder, "anorganizationid"); - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var result = _user.AddMembership(inviter, OrganizationOwnership.Shared, "anorganizationid".ToId(), @@ -195,8 +195,8 @@ public void WhenAddMembershipByNonOwner_ThenReturnsError() public void WhenAddMembershipAndAlreadyMember_ThenReturns() { var inviter = CreateOrgOwner(_recorder, "anorganizationid"); - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); _user.AddMembership(inviter, OrganizationOwnership.Shared, "anorganizationid".ToId(), Roles.Empty, Features.Empty); @@ -208,11 +208,27 @@ public void WhenAddMembershipAndAlreadyMember_ThenReturns() result.Should().BeSuccess(); } + [Fact] + public void WhenAddMembershipAndAlreadyPersonalOrg_ThenReturnsError() + { + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, + EmailAddress.Create("auser@company.com").Value); + _user.AddMembership(_user, OrganizationOwnership.Personal, "anorganizationid1".ToId(), Roles.Empty, + Features.Empty); + + var result = _user.AddMembership(_user, OrganizationOwnership.Personal, "anorganizationid2".ToId(), + Roles.Create(TenantRoles.Owner).Value, Features.Empty); + + result.Should().BeError(ErrorCode.RuleViolation, + Resources.EndUserRoot_AddMembership_OnlyOnePersonalOrganization); + } + [Fact] public void WhenAddMembershipToPersonsSharedOrganization_ThenAddsMembership() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var inviter = CreateOrgOwner(_recorder, "anorganizationid"); @@ -227,14 +243,14 @@ public void WhenAddMembershipToPersonsSharedOrganization_ThenAddsMembership() && ms.IsDefault && ms.Roles == roles && ms.Features == features); - _user.Events.Last().Should().BeOfType(); + _user.Events.Last().Should().BeOfType(); } [Fact] public void WhenAddMembershipToPersonsPersonalOrganization_ThenReturnsError() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var inviter = CreateOrgOwner(_recorder, "anorganizationid"); @@ -242,14 +258,14 @@ public void WhenAddMembershipToPersonsPersonalOrganization_ThenReturnsError() Roles.Create(TenantRoles.Member).Value, Features.Create(TenantFeatures.Basic).Value); result.Should().BeError(ErrorCode.RuleViolation, - Resources.EndUserRoot_Addmembership_SharedOwnershipRequired); + Resources.EndUserRoot_AddMembership_SharedOwnershipRequired); } [Fact] public void WhenAddMembershipToMachinesPersonalOrganization_ThenReturnsError() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var inviter = CreateOrgOwner(_recorder, "anorganizationid", UserClassification.Machine); var roles = Roles.Create(TenantRoles.Member).Value; @@ -259,14 +275,14 @@ public void WhenAddMembershipToMachinesPersonalOrganization_ThenReturnsError() roles, features); result.Should().BeError(ErrorCode.RuleViolation, - Resources.EndUserRoot_Addmembership_SharedOwnershipRequired); + Resources.EndUserRoot_AddMembership_SharedOwnershipRequired); } [Fact] public void WhenAddMembershipToMachinesSharedOrganization_ThenAddsMembership() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var inviter = CreateOrgOwner(_recorder, "anorganizationid", UserClassification.Machine); var roles = Roles.Create(TenantRoles.Member).Value; @@ -281,14 +297,14 @@ public void WhenAddMembershipToMachinesSharedOrganization_ThenAddsMembership() && ms.IsDefault && ms.Roles == roles && ms.Features == features); - _user.Events.Last().Should().BeOfType(); + _user.Events.Last().Should().BeOfType(); } [Fact] public void WhenAddMembershipToSelfPersonalOrganization_ThenAddsMembership() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var roles = Roles.Create(TenantRoles.Member).Value; var features = Features.Create(TenantFeatures.Basic).Value; @@ -302,14 +318,14 @@ public void WhenAddMembershipToSelfPersonalOrganization_ThenAddsMembership() && ms.IsDefault && ms.Roles == roles && ms.Features == features); - _user.Events.Last().Should().BeOfType(); + _user.Events.Last().Should().BeOfType(); } [Fact] public void WhenAddMembershipToSelfSharedOrganization_ThenAddsMembership() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var roles = Roles.Create(TenantRoles.Member).Value; var features = Features.Create(TenantFeatures.Basic).Value; @@ -323,15 +339,15 @@ public void WhenAddMembershipToSelfSharedOrganization_ThenAddsMembership() && ms.IsDefault && ms.Roles == roles && ms.Features == features); - _user.Events.Last().Should().BeOfType(); + _user.Events.Last().Should().BeOfType(); } [Fact] public void WhenAddMembership_ThenAddsMembershipAsDefaultWithRolesAndFeatures() { var inviter = CreateOrgOwner(_recorder, "anorganizationid"); - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var roles = Roles.Create(TenantRoles.Member).Value; var features = Features.Create(TenantFeatures.Basic).Value; @@ -345,15 +361,15 @@ public void WhenAddMembership_ThenAddsMembershipAsDefaultWithRolesAndFeatures() && ms.IsDefault && ms.Roles == roles && ms.Features == features); - _user.Events.Last().Should().BeOfType(); + _user.Events.Last().Should().BeOfType(); } [Fact] public void WhenAddMembershipAndAlreadyHasMembership_ThenChangesToDefaultMembership() { var inviter = CreateOrgOwner(_recorder, "anorganizationid2"); - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var roles = Roles.Create(TenantRoles.Member).Value; var features = Features.Create(TenantFeatures.Basic).Value; @@ -373,7 +389,7 @@ public void WhenAddMembershipAndAlreadyHasMembership_ThenChangesToDefaultMembers && ms.IsDefault && ms.Roles == roles && ms.Features == features); - _user.Events.Last().Should().BeOfType(); + _user.Events.Last().Should().BeOfType(); } #if TESTINGONLY @@ -408,8 +424,8 @@ public void WhenAssignMembershipFeaturesAndNoMembership_ThenReturnsError() public void WhenAssignMembershipFeaturesAndFeatureNotAssignable_ThenReturnsError() { var assigner = CreateOrgOwner(_recorder, "anorganizationid"); - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); _user.AddMembership(assigner, OrganizationOwnership.Shared, "anorganizationid".ToId(), Roles.Create(TenantRoles.Member).Value, @@ -422,13 +438,37 @@ public void WhenAssignMembershipFeaturesAndFeatureNotAssignable_ThenReturnsError Resources.EndUserRoot_UnassignableTenantFeature.Format("anunknownfeature")); } +#if TESTINGONLY + [Fact] + public void WhenAssignMembershipFeaturesAndHasFeature_ThenDoesNothing() + { + var assigner = CreateOrgOwner(_recorder, "anorganizationid"); + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, + EmailAddress.Create("auser@company.com").Value); + _user.AddMembership(assigner, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Member).Value, + Features.Create(TenantFeatures.Basic, TenantFeatures.TestingOnly).Value); + + var result = _user.AssignMembershipFeatures(assigner, "anorganizationid".ToId(), + Features.Create(TenantFeatures.TestingOnly).Value); + + result.Should().BeSuccess(); + _user.Memberships[0].Roles.Should() + .Be(Roles.Create(TenantRoles.Member).Value); + _user.Memberships[0].Features.Should() + .Be(Features.Create(TenantFeatures.Basic, TenantFeatures.TestingOnly).Value); + _user.Events.Should().NotContainItemsAssignableTo(); + } +#endif + #if TESTINGONLY [Fact] public void WhenAssignMembershipFeatures_ThenAssigns() { var assigner = CreateOrgOwner(_recorder, "anorganizationid"); - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); _user.AddMembership(assigner, OrganizationOwnership.Shared, "anorganizationid".ToId(), Roles.Create(TenantRoles.Member).Value, @@ -438,9 +478,9 @@ public void WhenAssignMembershipFeatures_ThenAssigns() Features.Create(TenantFeatures.TestingOnly).Value); result.Should().BeSuccess(); - _user.Memberships[0].Roles.Should().Be(Roles.Create(TenantRoles.Member.Name).Value); + _user.Memberships[0].Roles.Should().Be(Roles.Create(TenantRoles.Member).Value); _user.Memberships[0].Features.Should() - .Be(Features.Create(TenantFeatures.Basic.Name, TenantFeatures.TestingOnly.Name).Value); + .Be(Features.Create(TenantFeatures.Basic, TenantFeatures.TestingOnly).Value); _user.Events.Last().Should().BeOfType(); } #endif @@ -463,8 +503,8 @@ public void WhenAssignMembershipRolesAndAssignerNotOwner_ThenReturnsError() public void WhenAssignMembershipRolesAndRoleNotAssignable_ThenReturnsError() { var assigner = CreateOrgOwner(_recorder, "anorganizationid"); - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); _user.AddMembership(assigner, OrganizationOwnership.Shared, "anorganizationid".ToId(), Roles.Create(TenantRoles.Member).Value, @@ -474,16 +514,40 @@ public void WhenAssignMembershipRolesAndRoleNotAssignable_ThenReturnsError() Roles.Create("anunknownrole").Value); result.Should().BeError(ErrorCode.RuleViolation, - Resources.EndUserRoot_UnassignableTenantRole.Format("anunknownrole")); + Resources.EndUserRoot_NotAssignableTenantRole.Format("anunknownrole")); } +#if TESTINGONLY + [Fact] + public void WhenAssignMembershipRolesAndAlreadyHasRole_ThenDoesNothing() + { + var assigner = CreateOrgOwner(_recorder, "anorganizationid"); + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, + EmailAddress.Create("auser@company.com").Value); + _user.AddMembership(assigner, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Member, TenantRoles.TestingOnly).Value, + Features.Create(TenantFeatures.Basic).Value); + + var result = _user.AssignMembershipRoles(assigner, "anorganizationid".ToId(), + Roles.Create(TenantRoles.TestingOnly).Value); + + result.Should().BeSuccess(); + _user.Memberships[0].Roles.Should() + .Be(Roles.Create(TenantRoles.Member, TenantRoles.TestingOnly).Value); + _user.Memberships[0].Features.Should() + .Be(Features.Create(TenantFeatures.Basic).Value); + _user.Events.Should().NotContainItemsAssignableTo(); + } +#endif + #if TESTINGONLY [Fact] public void WhenAssignMembershipRoles_ThenAssigns() { var assigner = CreateOrgOwner(_recorder, "anorganizationid"); - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); _user.AddMembership(assigner, OrganizationOwnership.Shared, "anorganizationid".ToId(), Roles.Create(TenantRoles.Member).Value, @@ -494,13 +558,93 @@ public void WhenAssignMembershipRoles_ThenAssigns() result.Should().BeSuccess(); _user.Memberships[0].Roles.Should() - .Be(Roles.Create(TenantRoles.Member.Name, TenantRoles.TestingOnly.Name).Value); + .Be(Roles.Create(TenantRoles.Member, TenantRoles.TestingOnly).Value); _user.Memberships[0].Features.Should() - .Be(Features.Create(TenantFeatures.Basic.Name).Value); + .Be(Features.Create(TenantFeatures.Basic).Value); _user.Events.Last().Should().BeOfType(); } #endif +#if TESTINGONLY + [Fact] + public void WhenUnassignMembershipRolesAndAssignerNotOwner_ThenReturnsError() + { + var assigner = EndUserRoot.Create(_recorder.Object, _identifierFactory.Object, UserClassification.Person) + .Value; + + var result = _user.UnassignMembershipRoles(assigner, "anorganizationid".ToId(), + Roles.Create(TenantRoles.TestingOnly).Value); + + result.Should().BeError(ErrorCode.RoleViolation, Resources.EndUserRoot_NotOrganizationOwner); + } +#endif + + [Fact] + public void WhenUnassignMembershipRolesAndRoleNotAssignable_ThenReturnsError() + { + var assigner = CreateOrgOwner(_recorder, "anorganizationid"); + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, + EmailAddress.Create("auser@company.com").Value); + _user.AddMembership(assigner, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Member).Value, + Features.Create(TenantFeatures.Basic).Value); + + var result = _user.UnassignMembershipRoles(assigner, "anorganizationid".ToId(), + Roles.Create("anunknownrole").Value); + + result.Should().BeError(ErrorCode.RuleViolation, + Resources.EndUserRoot_NotAssignableTenantRole.Format("anunknownrole")); + } + +#if TESTINGONLY + [Fact] + public void WhenUnassignMembershipRolesAndNotHaveRole_ThenDoesNothing() + { + var assigner = CreateOrgOwner(_recorder, "anorganizationid"); + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, + EmailAddress.Create("auser@company.com").Value); + _user.AddMembership(assigner, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Member).Value, + Features.Create(TenantFeatures.Basic).Value); + + var result = _user.UnassignMembershipRoles(assigner, "anorganizationid".ToId(), + Roles.Create(TenantRoles.TestingOnly).Value); + + result.Should().BeSuccess(); + _user.Memberships[0].Roles.Should() + .Be(Roles.Create(TenantRoles.Member).Value); + _user.Memberships[0].Features.Should() + .Be(Features.Create(TenantFeatures.Basic).Value); + _user.Events.Should().NotContainItemsAssignableTo(); + } +#endif + +#if TESTINGONLY + [Fact] + public void WhenUnassignMembershipRoles_ThenUnassigns() + { + var assigner = CreateOrgOwner(_recorder, "anorganizationid"); + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, + EmailAddress.Create("auser@company.com").Value); + _user.AddMembership(assigner, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Member, TenantRoles.TestingOnly).Value, + Features.Create(TenantFeatures.Basic).Value); + + var result = _user.UnassignMembershipRoles(assigner, "anorganizationid".ToId(), + Roles.Create(TenantRoles.TestingOnly).Value); + + result.Should().BeSuccess(); + _user.Memberships[0].Roles.Should() + .Be(Roles.Create(TenantRoles.Member).Value); + _user.Memberships[0].Features.Should() + .Be(Features.Create(TenantFeatures.Basic).Value); + _user.Events.Last().Should().BeOfType(); + } +#endif + #if TESTINGONLY [Fact] public void WhenAssignPlatformFeaturesAndAssignerNotOperator_ThenReturnsError() @@ -522,9 +666,24 @@ public void WhenAssignPlatformFeaturesAndFeatureNotAssignable_ThenReturnsError() var result = _user.AssignPlatformFeatures(assigner, Features.Create("anunknownfeature").Value); result.Should().BeError(ErrorCode.RuleViolation, - Resources.EndUserRoot_UnassignablePlatformFeature.Format("anunknownfeature")); + Resources.EndUserRoot_NotAssignablePlatformFeature.Format("anunknownfeature")); } +#if TESTINGONLY + [Fact] + public void WhenAssignPlatformFeaturesAndHasFeature_ThenDoesNothing() + { + var assigner = CreateOperator(_recorder, _identifierFactory); + _user.AssignPlatformFeatures(assigner, Features.Create(PlatformFeatures.TestingOnly).Value); + + var result = _user.AssignPlatformFeatures(assigner, Features.Create(PlatformFeatures.TestingOnly).Value); + + result.Should().BeSuccess(); + _user.Roles.HasNone().Should().BeTrue(); + _user.Features.Should().Be(Features.Create(PlatformFeatures.TestingOnly).Value); + } +#endif + #if TESTINGONLY [Fact] public void WhenAssignPlatformFeatures_ThenAssigns() @@ -535,7 +694,7 @@ public void WhenAssignPlatformFeatures_ThenAssigns() result.Should().BeSuccess(); _user.Roles.HasNone().Should().BeTrue(); - _user.Features.Should().Be(Features.Create(PlatformFeatures.TestingOnly.Name).Value); + _user.Features.Should().Be(Features.Create(PlatformFeatures.TestingOnly).Value); _user.Events.Last().Should().BeOfType(); } #endif @@ -561,9 +720,24 @@ public void WhenAssignPlatformRolesAndRoleNotAssignable_ThenReturnsError() var result = _user.AssignPlatformRoles(assigner, Roles.Create("anunknownrole").Value); result.Should().BeError(ErrorCode.RuleViolation, - Resources.EndUserRoot_UnassignablePlatformRole.Format("anunknownrole")); + Resources.EndUserRoot_NotAssignablePlatformRole.Format("anunknownrole")); } +#if TESTINGONLY + [Fact] + public void WhenAssignPlatformRolesAndHasRole_ThenDoesNothing() + { + var assigner = CreateOperator(_recorder, _identifierFactory); + _user.AssignPlatformRoles(assigner, Roles.Create(PlatformRoles.TestingOnly).Value); + + var result = _user.AssignPlatformRoles(assigner, Roles.Create(PlatformRoles.TestingOnly).Value); + + result.Should().BeSuccess(); + _user.Roles.Should().Be(Roles.Create(PlatformRoles.TestingOnly).Value); + _user.Features.HasNone().Should().BeTrue(); + } +#endif + #if TESTINGONLY [Fact] public void WhenAssignPlatformRoles_ThenAssigns() @@ -573,7 +747,7 @@ public void WhenAssignPlatformRoles_ThenAssigns() var result = _user.AssignPlatformRoles(assigner, Roles.Create(PlatformRoles.TestingOnly).Value); result.Should().BeSuccess(); - _user.Roles.Should().Be(Roles.Create(PlatformRoles.TestingOnly.Name).Value); + _user.Roles.Should().Be(Roles.Create(PlatformRoles.TestingOnly).Value); _user.Features.HasNone().Should().BeTrue(); _user.Events.Last().Should().BeOfType(); } @@ -600,19 +774,19 @@ public void WhenUnassignPlatformRolesAndRoleNotAssignable_ThenReturnsError() var result = _user.UnassignPlatformRoles(assigner, Roles.Create("anunknownrole").Value); result.Should().BeError(ErrorCode.RuleViolation, - Resources.EndUserRoot_UnassignablePlatformRole.Format("anunknownrole")); + Resources.EndUserRoot_NotAssignablePlatformRole.Format("anunknownrole")); } #if TESTINGONLY [Fact] - public void WhenUnassignPlatformRolesAndUserNotAssignedRole_ThenReturnsError() + public void WhenUnassignPlatformRolesAndUserNotAssignedRole_ThenDoesNothing() { var assigner = CreateOperator(_recorder, _identifierFactory); var result = _user.UnassignPlatformRoles(assigner, Roles.Create(PlatformRoles.TestingOnly).Value); - result.Should().BeError(ErrorCode.RuleViolation, - Resources.EndUserRoot_CannotUnassignUnassignedRole.Format(PlatformRoles.TestingOnly.Name)); + result.Should().BeSuccess(); + _user.Events.Should().NotContainItemsAssignableTo(); } #endif @@ -625,7 +799,7 @@ public void WhenUnassignPlatformRolesAndStandardRole_ThenReturnsError() var result = _user.UnassignPlatformRoles(assigner, Roles.Create(PlatformRoles.Standard).Value); result.Should().BeError(ErrorCode.RuleViolation, - Resources.EndUserRoot_CannotUnassignBaselinePlatformRole.Format(PlatformRoles.Standard.Name)); + Resources.EndUserRoot_CannotUnassignBaselinePlatformRole.Format(PlatformRoles.Standard)); } #endif @@ -871,6 +1045,112 @@ await _user.InviteGuestAsync(_tokensService.Object, "aninviterid".ToId(), emailA _user.GuestInvitation.IsAccepted.Should().BeTrue(); _user.GuestInvitation.AcceptedEmailAddress.Should().Be(emailAddress); } + + [Fact] + public void WhenChangeDefaultMembershipAndNotAMember_ThenReturnsError() + { + var result = _user.ChangeDefaultMembership("anorganizationid".ToId()); + + result.Should().BeError(ErrorCode.RuleViolation, + Resources.EndUserRoot_NoMembership.Format("anorganizationid")); + } + + [Fact] + public void WhenChangeDefaultMembershipAndAlreadyDefault_ThenReturns() + { + _user.AddMembership(_user, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Member).Value, Features.Create(TenantFeatures.Basic).Value); + + var result = _user.ChangeDefaultMembership("anorganizationid".ToId()); + + result.Should().BeSuccess(); + _user.Memberships.DefaultMembership.OrganizationId.Value.Should().Be("anorganizationid".ToId()); + } + + [Fact] + public void WhenChangeDefaultMembership_ThenChangesDefault() + { + _user.AddMembership(_user, OrganizationOwnership.Shared, "anorganizationid1".ToId(), + Roles.Create(TenantRoles.Member).Value, Features.Create(TenantFeatures.Basic).Value); + _user.AddMembership(_user, OrganizationOwnership.Shared, "anorganizationid2".ToId(), + Roles.Create(TenantRoles.Member).Value, Features.Create(TenantFeatures.Basic).Value); + + var result = _user.ChangeDefaultMembership("anorganizationid1".ToId()); + + result.Should().BeSuccess(); + _user.Memberships.DefaultMembership.OrganizationId.Value.Should().Be("anorganizationid1".ToId()); + _user.Events.Last().Should().BeOfType(); + } + + [Fact] + public void WhenRemoveMembershipAndNotOwner_ThenReturnsError() + { + var result = _user.RemoveMembership(_user, "anorganizationid".ToId()); + + result.Should().BeError(ErrorCode.RoleViolation, Resources.EndUserRoot_NotOrganizationOwner); + } + + [Fact] + public void WhenRemoveMembershipAndNotMember_ThenDoesNothing() + { + var uninviter = EndUserRoot.Create(_recorder.Object, _identifierFactory.Object, UserClassification.Person) + .Value; + uninviter.AddMembership(uninviter, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Owner).Value, Features.Create(TenantFeatures.Basic).Value); + + var result = _user.RemoveMembership(uninviter, "anorganizationid".ToId()); + + result.Should().BeSuccess(); + _user.Memberships.HasNone().Should().BeTrue(); + _user.Events.Last().Should().BeOfType(); + } + + [Fact] + public void WhenRemoveMembershipAndIsNotDefaultMembership_ThenRemoves() + { + var uninviter = EndUserRoot.Create(_recorder.Object, _identifierFactory.Object, UserClassification.Person) + .Value; + uninviter.AddMembership(uninviter, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Owner).Value, Features.Create(TenantFeatures.Basic).Value); + _user.AddMembership(uninviter, OrganizationOwnership.Shared, "anorganizationid".ToId(), + Roles.Create(TenantRoles.Member).Value, Features.Create(TenantFeatures.Basic).Value); + + var result = _user.RemoveMembership(uninviter, "anorganizationid".ToId()); + + result.Should().BeSuccess(); + _user.Memberships.HasNone().Should().BeTrue(); + _user.Events.Count.Should().Be(4); + _user.Events[0].Should().BeOfType(); + _user.Events[1].Should().BeOfType(); + _user.Events[2].Should().BeOfType(); + _user.Events.Last().Should().BeOfType(); + } + + [Fact] + public void WhenRemoveMembershipAndIsDefaultMembership_ThenRemovesAndResetsDefault() + { + var uninviter = EndUserRoot.Create(_recorder.Object, _identifierFactory.Object, UserClassification.Person) + .Value; + uninviter.AddMembership(uninviter, OrganizationOwnership.Shared, "anorganizationid2".ToId(), + Roles.Create(TenantRoles.Owner).Value, Features.Create(TenantFeatures.Basic).Value); + _user.AddMembership(_user, OrganizationOwnership.Personal, "anorganizationid1".ToId(), + Roles.Create(TenantRoles.Owner).Value, Features.Create(TenantFeatures.Basic).Value); + _user.AddMembership(uninviter, OrganizationOwnership.Shared, "anorganizationid2".ToId(), + Roles.Create(TenantRoles.Member).Value, Features.Create(TenantFeatures.Basic).Value); + + var result = _user.RemoveMembership(uninviter, "anorganizationid2".ToId()); + + result.Should().BeSuccess(); + _user.Memberships.Count.Should().Be(1); + _user.Events.Count.Should().Be(7); + _user.Events[0].Should().BeOfType(); + _user.Events[1].Should().BeOfType(); + _user.Events[2].Should().BeOfType(); + _user.Events[3].Should().BeOfType(); + _user.Events[4].Should().BeOfType(); + _user.Events[5].Should().BeOfType(); + _user.Events.Last().Should().BeOfType(); + } } [Trait("Category", "Unit")] @@ -923,8 +1203,8 @@ public void WhenEnsureInvariantsAndMachineIsNotRegistered_ThenReturnsError() [Fact] public void WhenAddMembershipToPersonsSharedOrganization_ThenAddsMembership() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var inviter = CreateOrgOwner(_recorder, "anorganizationid"); @@ -939,14 +1219,14 @@ public void WhenAddMembershipToPersonsSharedOrganization_ThenAddsMembership() && ms.IsDefault && ms.Roles == roles && ms.Features == features); - _user.Events.Last().Should().BeOfType(); + _user.Events.Last().Should().BeOfType(); } [Fact] public void WhenAddMembershipToPersonsPersonalOrganization_ThenReturnsError() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var inviter = CreateOrgOwner(_recorder, "anorganizationid"); @@ -954,14 +1234,14 @@ public void WhenAddMembershipToPersonsPersonalOrganization_ThenReturnsError() Roles.Create(TenantRoles.Member).Value, Features.Create(TenantFeatures.Basic).Value); result.Should().BeError(ErrorCode.RuleViolation, - Resources.EndUserRoot_Addmembership_SharedOwnershipRequired); + Resources.EndUserRoot_AddMembership_SharedOwnershipRequired); } [Fact] public void WhenAddMembershipToMachinesPersonalOrganization_ThenReturnsError() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var inviter = CreateOrgOwner(_recorder, "anorganizationid", UserClassification.Machine); var roles = Roles.Create(TenantRoles.Member).Value; @@ -971,14 +1251,14 @@ public void WhenAddMembershipToMachinesPersonalOrganization_ThenReturnsError() roles, features); result.Should().BeError(ErrorCode.RuleViolation, - Resources.EndUserRoot_Addmembership_SharedOwnershipRequired); + Resources.EndUserRoot_AddMembership_SharedOwnershipRequired); } [Fact] public void WhenAddMembershipToMachinesSharedOrganization_ThenAddsMembership() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var inviter = CreateOrgOwner(_recorder, "anorganizationid", UserClassification.Machine); var roles = Roles.Create(TenantRoles.Member).Value; @@ -993,14 +1273,14 @@ public void WhenAddMembershipToMachinesSharedOrganization_ThenAddsMembership() && ms.IsDefault && ms.Roles == roles && ms.Features == features); - _user.Events.Last().Should().BeOfType(); + _user.Events.Last().Should().BeOfType(); } [Fact] public void WhenAddMembershipToSelfPersonalOrganization_ThenAddsMembership() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var roles = Roles.Create(TenantRoles.Member).Value; var features = Features.Create(TenantFeatures.Basic).Value; @@ -1014,14 +1294,14 @@ public void WhenAddMembershipToSelfPersonalOrganization_ThenAddsMembership() && ms.IsDefault && ms.Roles == roles && ms.Features == features); - _user.Events.Last().Should().BeOfType(); + _user.Events.Last().Should().BeOfType(); } [Fact] public void WhenAddMembershipToSelfSharedOrganization_ThenAddsMembership() { - _user.Register(Roles.Create(PlatformRoles.Standard.Name).Value, - Features.Create(PlatformFeatures.Basic.Name).Value, EndUserProfile.Create("afirstname").Value, + _user.Register(Roles.Create(PlatformRoles.Standard).Value, + Features.Create(PlatformFeatures.Basic).Value, EndUserProfile.Create("afirstname").Value, EmailAddress.Create("auser@company.com").Value); var roles = Roles.Create(TenantRoles.Member).Value; var features = Features.Create(TenantFeatures.Basic).Value; @@ -1035,7 +1315,7 @@ public void WhenAddMembershipToSelfSharedOrganization_ThenAddsMembership() && ms.IsDefault && ms.Roles == roles && ms.Features == features); - _user.Events.Last().Should().BeOfType(); + _user.Events.Last().Should().BeOfType(); } } } \ No newline at end of file diff --git a/src/EndUsersDomain.UnitTests/MembershipSpec.cs b/src/EndUsersDomain.UnitTests/MembershipSpec.cs index a4a5a843..8d6ae150 100644 --- a/src/EndUsersDomain.UnitTests/MembershipSpec.cs +++ b/src/EndUsersDomain.UnitTests/MembershipSpec.cs @@ -41,8 +41,8 @@ public void WhenConstructed_ThenAssigned() [Fact] public void WhenMembershipAddedEventRaised_ThenAssigned() { - var roles = Roles.Create(); - var features = Features.Create(); + var roles = Roles.Empty; + var features = Features.Empty; _membership.As() .RaiseEvent(Events.MembershipAdded("arootid".ToId(), "anorganizationid".ToId(), diff --git a/src/EndUsersDomain/EndUserRoot.cs b/src/EndUsersDomain/EndUserRoot.cs index ec070712..4082bfe7 100644 --- a/src/EndUsersDomain/EndUserRoot.cs +++ b/src/EndUsersDomain/EndUserRoot.cs @@ -42,7 +42,7 @@ private EndUserRoot(IRecorder recorder, IIdentifierFactory idFactory, ISingleVal public Membership DefaultMembership => Memberships.DefaultMembership; - public Features Features { get; private set; } = Features.Create(); + public Features Features { get; private set; } = Features.Empty; public GuestInvitation GuestInvitation { get; private set; } = GuestInvitation.Empty; @@ -54,7 +54,7 @@ private EndUserRoot(IRecorder recorder, IIdentifierFactory idFactory, ISingleVal public Memberships Memberships { get; } = new(); - public Roles Roles { get; private set; } = Roles.Create(); + public Roles Roles { get; private set; } = Roles.Empty; public UserStatus Status { get; private set; } @@ -113,8 +113,8 @@ protected override Result OnStateChanged(IDomainEvent @event, bool isReco Access = created.Access; Status = created.Status; Classification = created.Classification; - Features = Features.Create(); - Roles = Roles.Create(); + Features = Features.Empty; + Roles = Roles.Empty; return Result.Ok; } @@ -158,7 +158,22 @@ protected override Result OnStateChanged(IDomainEvent @event, bool isReco return Result.Ok; } - case MembershipDefaultChanged changed: + case MembershipRemoved removed: + { + var membership = Memberships.FindByMembershipId(removed.MembershipId.ToId()); + if (!membership.HasValue) + { + return Error.RuleViolation(Resources.EndUserRoot_MissingMembership); + } + + Memberships.Remove(membership.Value.Id); + Recorder.TraceDebug(null, + "EndUser {Id} removed membership {Membership} from organization {Organization}", Id, + membership.Value.Id, removed.OrganizationId); + return Result.Ok; + } + + case DefaultMembershipChanged changed: { if (changed.FromMembershipId.Exists()) { @@ -194,98 +209,120 @@ protected override Result OnStateChanged(IDomainEvent @event, bool isReco return Result.Ok; } - case MembershipRoleAssigned added: + case MembershipRoleAssigned assigned: { - var membershipId = added.MembershipId.ToId(); + var membershipId = assigned.MembershipId.ToId(); var membership = Memberships.FindByMembershipId(membershipId); if (!membership.HasValue) { return Error.RuleViolation(Resources.EndUserRoot_NoMembership); } - var assigned = RaiseEventToChildEntity(added, membership.Value); - if (!assigned.IsSuccessful) + var forwarded = RaiseEventToChildEntity(assigned, membership.Value); + if (!forwarded.IsSuccessful) { - return assigned.Error; + return forwarded.Error; } - Recorder.TraceDebug(null, "EndUser {Id} added role {Role} to membership {MembershipId}", Id, added.Role, + Recorder.TraceDebug(null, "EndUser {Id} assigned role {Role} to membership {MembershipId}", Id, + assigned.Role, membershipId); return Result.Ok; } - case MembershipFeatureAssigned added: + case MembershipRoleUnassigned unassigned: { - var membershipId = added.MembershipId.ToId(); + var membershipId = unassigned.MembershipId.ToId(); var membership = Memberships.FindByMembershipId(membershipId); if (!membership.HasValue) { return Error.RuleViolation(Resources.EndUserRoot_NoMembership); } - var assigned = RaiseEventToChildEntity(added, membership.Value); - if (!assigned.IsSuccessful) + var forwarded = RaiseEventToChildEntity(unassigned, membership.Value); + if (!forwarded.IsSuccessful) { - return assigned.Error; + return forwarded.Error; } - Recorder.TraceDebug(null, "EndUser {Id} added feature {Role} to membership {MembershipId}", Id, - added.Feature, membershipId); + Recorder.TraceDebug(null, "EndUser {Id} unassigned role {Role} from membership {MembershipId}", Id, + unassigned.Role, + membershipId); return Result.Ok; } - case PlatformRoleAssigned added: + case MembershipFeatureAssigned assigned: { - var roles = Roles.Add(added.Role); + var membershipId = assigned.MembershipId.ToId(); + var membership = Memberships.FindByMembershipId(membershipId); + if (!membership.HasValue) + { + return Error.RuleViolation(Resources.EndUserRoot_NoMembership); + } + + var forwarded = RaiseEventToChildEntity(assigned, membership.Value); + if (!forwarded.IsSuccessful) + { + return forwarded.Error; + } + + Recorder.TraceDebug(null, "EndUser {Id} assigned feature {Role} to membership {MembershipId}", Id, + assigned.Feature, membershipId); + return Result.Ok; + } + + case PlatformRoleAssigned assigned: + { + var roles = Roles.Add(assigned.Role); if (!roles.IsSuccessful) { return roles.Error; } Roles = roles.Value; - Recorder.TraceDebug(null, "EndUser {Id} added role {Role}", Id, added.Role); + Recorder.TraceDebug(null, "EndUser {Id} assigned role {Role}", Id, assigned.Role); return Result.Ok; } - case PlatformRoleUnassigned added: + case PlatformRoleUnassigned unassigned: { - var roles = Roles.Remove(added.Role); + var roles = Roles.Remove(unassigned.Role); Roles = roles; - Recorder.TraceDebug(null, "EndUser {Id} removed role {Role}", Id, added.Role); + Recorder.TraceDebug(null, "EndUser {Id} unassigned role {Role}", Id, unassigned.Role); return Result.Ok; } - case PlatformFeatureAssigned added: + case PlatformFeatureAssigned assigned: { - var features = Features.Add(added.Feature); + var features = Features.Add(assigned.Feature); if (!features.IsSuccessful) { return features.Error; } Features = features.Value; - Recorder.TraceDebug(null, "EndUser {Id} added feature {Feature}", Id, added.Feature); + Recorder.TraceDebug(null, "EndUser {Id} assigned feature {Feature}", Id, assigned.Feature); return Result.Ok; } - case GuestInvitationCreated added: + case GuestInvitationCreated created: { - var inviteeEmailAddress = EmailAddress.Create(added.EmailAddress); + var inviteeEmailAddress = EmailAddress.Create(created.EmailAddress); if (!inviteeEmailAddress.IsSuccessful) { return inviteeEmailAddress.Error; } var invited = GuestInvitation.IsStillOpen - ? GuestInvitation.Renew(added.Token, inviteeEmailAddress.Value) - : GuestInvitation.Invite(added.Token, inviteeEmailAddress.Value, added.InvitedById.ToId()); + ? GuestInvitation.Renew(created.Token, inviteeEmailAddress.Value) + : GuestInvitation.Invite(created.Token, inviteeEmailAddress.Value, created.InvitedById.ToId()); if (!invited.IsSuccessful) { return invited.Error; } GuestInvitation = invited.Value; - Recorder.TraceDebug(null, "EndUser {Id} invited as a guest by {InvitedBy}", Id, added.InvitedById); + Recorder.TraceDebug(null, "EndUser {Id} invited as a guest by {InvitedBy}", Id, created.InvitedById); return Result.Ok; } @@ -342,10 +379,16 @@ public Result AddMembership(EndUserRoot adder, OrganizationOwnership owne if (ownership == OrganizationOwnership.Personal) { - return Error.RuleViolation(Resources.EndUserRoot_Addmembership_SharedOwnershipRequired); + return Error.RuleViolation(Resources.EndUserRoot_AddMembership_SharedOwnershipRequired); } } + if (ownership == OrganizationOwnership.Personal + && Memberships.HasPersonalOrganization) + { + return Error.RuleViolation(Resources.EndUserRoot_AddMembership_OnlyOnePersonalOrganization); + } + var existing = Memberships.FindByOrganizationId(organizationId); if (existing.HasValue) { @@ -365,12 +408,12 @@ public Result AddMembership(EndUserRoot adder, OrganizationOwnership owne : Memberships.DefaultMembership.Id.ToOptional(); var addedMembership = Memberships.FindByOrganizationId(organizationId); - return RaiseChangeEvent(EndUsersDomain.Events.MembershipDefaultChanged(Id, defaultMembershipId, + return RaiseChangeEvent(EndUsersDomain.Events.DefaultMembershipChanged(Id, defaultMembershipId, addedMembership.Value.Id, addedMembership.Value.OrganizationId, tenantRoles, tenantFeatures)); } public Result AssignMembershipFeatures(EndUserRoot assigner, Identifier organizationId, - Features tenantFeatures) + Features featuresToAssign) { if (!IsOrganizationOwner(assigner, organizationId)) { @@ -383,9 +426,9 @@ public Result AssignMembershipFeatures(EndUserRoot assigner, Identifier o return Error.RuleViolation(Resources.EndUserRoot_NoMembership.Format(organizationId)); } - if (tenantFeatures.HasAny()) + if (featuresToAssign.HasAny()) { - foreach (var feature in tenantFeatures.Items) + foreach (var feature in featuresToAssign.Items) { if (!TenantFeatures.IsTenantAssignableFeature(feature.Identifier)) { @@ -393,6 +436,11 @@ public Result AssignMembershipFeatures(EndUserRoot assigner, Identifier o Resources.EndUserRoot_UnassignableTenantFeature.Format(feature.Identifier)); } + if (membership.Value.Features.HasFeature(feature.Identifier)) + { + return Result.Ok; + } + var addedFeature = RaiseChangeEvent( EndUsersDomain.Events.MembershipFeatureAssigned(Id, organizationId, membership.Value.Id, @@ -408,7 +456,7 @@ public Result AssignMembershipFeatures(EndUserRoot assigner, Identifier o } public Result AssignMembershipRoles(EndUserRoot assigner, Identifier organizationId, - Roles tenantRoles) + Roles rolesToAssign) { if (!IsOrganizationOwner(assigner, organizationId)) { @@ -421,44 +469,56 @@ public Result AssignMembershipRoles(EndUserRoot assigner, Ide return Error.RuleViolation(Resources.EndUserRoot_NoMembership.Format(organizationId)); } - if (tenantRoles.HasAny()) + if (rolesToAssign.HasNone()) { - foreach (var role in tenantRoles.Items) + return membership.Value; + } + + foreach (var role in rolesToAssign.Items) + { + if (!TenantRoles.IsTenantAssignableRole(role.Identifier)) { - if (!TenantRoles.IsTenantAssignableRole(role.Identifier)) - { - return Error.RuleViolation(Resources.EndUserRoot_UnassignableTenantRole.Format(role.Identifier)); - } + return Error.RuleViolation(Resources.EndUserRoot_NotAssignableTenantRole.Format(role.Identifier)); + } - var addedRole = - RaiseChangeEvent( - EndUsersDomain.Events.MembershipRoleAssigned(Id, organizationId, membership.Value.Id, - role)); - if (!addedRole.IsSuccessful) - { - return addedRole.Error; - } + if (membership.Value.Roles.HasRole(role.Identifier)) + { + return membership.Value; + } + + var addedRole = + RaiseChangeEvent( + EndUsersDomain.Events.MembershipRoleAssigned(Id, organizationId, membership.Value.Id, + role)); + if (!addedRole.IsSuccessful) + { + return addedRole.Error; } } return membership.Value; } - public Result AssignPlatformFeatures(EndUserRoot assigner, Features platformFeatures) + public Result AssignPlatformFeatures(EndUserRoot assigner, Features featuresToAssign) { if (!IsPlatformOperator(assigner)) { return Error.RuleViolation(Resources.EndUserRoot_NotOperator); } - if (platformFeatures.HasAny()) + if (featuresToAssign.HasAny()) { - foreach (var feature in platformFeatures.Items) + foreach (var feature in featuresToAssign.Items) { if (!PlatformFeatures.IsPlatformAssignableFeature(feature.Identifier)) { return Error.RuleViolation( - Resources.EndUserRoot_UnassignablePlatformFeature.Format(feature.Identifier)); + Resources.EndUserRoot_NotAssignablePlatformFeature.Format(feature.Identifier)); + } + + if (Features.HasFeature(feature.Identifier)) + { + return Result.Ok; } var addedFeature = @@ -474,20 +534,25 @@ public Result AssignPlatformFeatures(EndUserRoot assigner, Features platf return Result.Ok; } - public Result AssignPlatformRoles(EndUserRoot assigner, Roles platformRoles) + public Result AssignPlatformRoles(EndUserRoot assigner, Roles rolesToAssign) { if (!IsPlatformOperator(assigner)) { return Error.RuleViolation(Resources.EndUserRoot_NotOperator); } - if (platformRoles.HasAny()) + if (rolesToAssign.HasAny()) { - foreach (var role in platformRoles.Items) + foreach (var role in rolesToAssign.Items) { if (!PlatformRoles.IsPlatformAssignableRole(role.Identifier)) { - return Error.RuleViolation(Resources.EndUserRoot_UnassignablePlatformRole.Format(role.Identifier)); + return Error.RuleViolation(Resources.EndUserRoot_NotAssignablePlatformRole.Format(role.Identifier)); + } + + if (Roles.HasRole(role.Identifier)) + { + return Result.Ok; } var addedRole = @@ -503,6 +568,25 @@ public Result AssignPlatformRoles(EndUserRoot assigner, Roles platformRol return Result.Ok; } + public Result ChangeDefaultMembership(Identifier organizationId) + { + var targetMembership = Memberships.FindByOrganizationId(organizationId); + if (!targetMembership.HasValue) + { + return Error.RuleViolation(Resources.EndUserRoot_NoMembership.Format(organizationId)); + } + + var defaultMembership = Memberships.DefaultMembership; + if (defaultMembership.Equals(targetMembership.Value)) + { + return Result.Ok; + } + + return RaiseChangeEvent(EndUsersDomain.Events.DefaultMembershipChanged(Id, defaultMembership.Id.ToOptional(), + targetMembership.Value.Id, targetMembership.Value.OrganizationId, targetMembership.Value.Roles, + targetMembership.Value.Features)); + } + public Optional FindMembership(Identifier organizationId) { return Memberships.FindByOrganizationId(organizationId); @@ -515,7 +599,7 @@ public static (Roles PlatformRoles, Features PlatformFeatures, Roles TenantRoles GetInitialRolesAndFeatures(RolesAndFeaturesUseCase useCase, bool isAuthenticated, EmailAddress? username = null, List? permittedOperators = null) { - var platformRoles = Roles.Create(); + var platformRoles = Roles.Empty; platformRoles = platformRoles.Add(PlatformRoles.Standard).Value; if (username.Exists() && permittedOperators.Exists()) { @@ -527,9 +611,9 @@ public static (Roles PlatformRoles, Features PlatformFeatures, Roles TenantRoles } } - var platformFeatures = Features.Create(); + var platformFeatures = Features.Empty; Roles tenantRoles; - var tenantFeatures = Features.Create(); + var tenantFeatures = Features.Empty; switch (useCase) { case RolesAndFeaturesUseCase.CreatingMachine: @@ -632,6 +716,46 @@ public async Task> ReInviteGuestAsync(ITokensService tokensService return await InviteGuestAsync(tokensService, inviterId, GuestInvitation.InviteeEmailAddress!, onInvited); } + public Result RemoveMembership(EndUserRoot remover, Identifier organizationId) + { + if (!IsOrganizationOwner(remover, organizationId)) + { + return Error.RoleViolation(Resources.EndUserRoot_NotOrganizationOwner); + } + + var membership = Memberships.FindByOrganizationId(organizationId); + if (!membership.HasValue) + { + return Result.Ok; + } + + if (membership.Value.Ownership == OrganizationOwnership.Personal) + { + return Error.RuleViolation(Resources.EndUserRoot_RemoveMembership_SharedOwnershipRequired); + } + + var isLastMembership = Memberships.Count == 1; + if (!isLastMembership) + { + if (membership.Value.Equals(Memberships.DefaultMembership)) + { + var defaultMembership = Memberships.DefaultMembership; + var newDefaultMembership = Memberships.FindNextDefaultMembership(); + var defaulted = RaiseChangeEvent(EndUsersDomain.Events.DefaultMembershipChanged(Id, + defaultMembership.Id, + newDefaultMembership.Id, newDefaultMembership.OrganizationId, newDefaultMembership.Roles, + newDefaultMembership.Features)); + if (!defaulted.IsSuccessful) + { + return defaulted.Error; + } + } + } + + return RaiseChangeEvent( + EndUsersDomain.Events.MembershipRemoved(Id, membership.Value.Id, organizationId, remover.Id)); + } + #if TESTINGONLY public void TestingOnly_ExpireGuestInvitation() { @@ -646,20 +770,64 @@ public void TestingOnly_InviteGuest(EmailAddress emailAddress) } #endif - public Result UnassignPlatformRoles(EndUserRoot assigner, Roles platformRoles) + public Result UnassignMembershipRoles(EndUserRoot unassigner, Identifier organizationId, + Roles rolesToUnassign) + { + if (!IsOrganizationOwner(unassigner, organizationId)) + { + return Error.RoleViolation(Resources.EndUserRoot_NotOrganizationOwner); + } + + var membership = Memberships.FindByOrganizationId(organizationId); + if (!membership.HasValue) + { + return Error.RuleViolation(Resources.EndUserRoot_NoMembership.Format(organizationId)); + } + + if (rolesToUnassign.HasNone()) + { + return membership.Value; + } + + foreach (var role in rolesToUnassign.Items) + { + if (!TenantRoles.IsTenantAssignableRole(role.Identifier)) + { + return Error.RuleViolation(Resources.EndUserRoot_NotAssignableTenantRole.Format(role.Identifier)); + } + + if (!membership.Value.Roles.HasRole(role.Identifier)) + { + return membership.Value; + } + + var removedRole = + RaiseChangeEvent( + EndUsersDomain.Events.MembershipRoleUnassigned(Id, organizationId, membership.Value.Id, + role)); + if (!removedRole.IsSuccessful) + { + return removedRole.Error; + } + } + + return membership.Value; + } + + public Result UnassignPlatformRoles(EndUserRoot assigner, Roles rolesToUnassign) { if (!IsPlatformOperator(assigner)) { return Error.RuleViolation(Resources.EndUserRoot_NotOperator); } - if (platformRoles.HasAny()) + if (rolesToUnassign.HasAny()) { - foreach (var role in platformRoles.Items) + foreach (var role in rolesToUnassign.Items) { if (!PlatformRoles.IsPlatformAssignableRole(role.Identifier)) { - return Error.RuleViolation(Resources.EndUserRoot_UnassignablePlatformRole.Format(role.Identifier)); + return Error.RuleViolation(Resources.EndUserRoot_NotAssignablePlatformRole.Format(role.Identifier)); } if (role.Identifier == PlatformRoles.Standard.Name) @@ -671,13 +839,10 @@ public Result UnassignPlatformRoles(EndUserRoot assigner, Roles platformR if (!Roles.HasRole(role.Identifier)) { - return Error.RuleViolation( - Resources.EndUserRoot_CannotUnassignUnassignedRole.Format(role.Identifier)); + return Result.Ok; } - var removedRole = - RaiseChangeEvent( - EndUsersDomain.Events.PlatformRoleUnassigned(Id, role)); + var removedRole = RaiseChangeEvent(EndUsersDomain.Events.PlatformRoleUnassigned(Id, role)); if (!removedRole.IsSuccessful) { return removedRole.Error; diff --git a/src/EndUsersDomain/Events.cs b/src/EndUsersDomain/Events.cs index 89c70f0c..cecc95f9 100644 --- a/src/EndUsersDomain/Events.cs +++ b/src/EndUsersDomain/Events.cs @@ -20,6 +20,20 @@ public static Created Created(Identifier id, UserClassification classification) }; } + public static DefaultMembershipChanged DefaultMembershipChanged(Identifier id, + Optional fromMembershipId, Identifier toMembershipId, Identifier toOrganizationId, Roles roles, + Features features) + { + return new DefaultMembershipChanged(id) + { + FromMembershipId = fromMembershipId.ValueOrDefault!, + ToMembershipId = toMembershipId, + ToOrganizationId = toOrganizationId, + Roles = roles.ToList(), + Features = features.ToList() + }; + } + public static GuestInvitationAccepted GuestInvitationAccepted(Identifier id, EmailAddress emailAddress) { return new GuestInvitationAccepted(id) @@ -55,20 +69,6 @@ public static MembershipAdded MembershipAdded(Identifier id, Identifier organiza }; } - public static MembershipDefaultChanged MembershipDefaultChanged(Identifier id, - Optional fromMembershipId, - Identifier toMembershipId, Identifier toOrganizationId, Roles roles, Features features) - { - return new MembershipDefaultChanged(id) - { - FromMembershipId = fromMembershipId.ValueOrDefault!, - ToMembershipId = toMembershipId, - ToOrganizationId = toOrganizationId, - Roles = roles.ToList(), - Features = features.ToList() - }; - } - public static MembershipFeatureAssigned MembershipFeatureAssigned(Identifier id, Identifier organizationId, Identifier membershipId, Feature feature) { @@ -80,9 +80,19 @@ public static MembershipFeatureAssigned MembershipFeatureAssigned(Identifier id, }; } + public static MembershipRemoved MembershipRemoved(Identifier id, Identifier membershipId, Identifier organizationId, + Identifier uninviterId) + { + return new MembershipRemoved(id) + { + MembershipId = membershipId, + OrganizationId = organizationId, + UnInvitedById = uninviterId + }; + } + public static MembershipRoleAssigned MembershipRoleAssigned(Identifier id, Identifier organizationId, - Identifier membershipId, - Role role) + Identifier membershipId, Role role) { return new MembershipRoleAssigned(id) { @@ -92,6 +102,17 @@ public static MembershipRoleAssigned MembershipRoleAssigned(Identifier id, Ident }; } + public static MembershipRoleUnassigned MembershipRoleUnassigned(Identifier id, Identifier organizationId, + Identifier membershipId, Role role) + { + return new MembershipRoleUnassigned(id) + { + OrganizationId = organizationId, + MembershipId = membershipId, + Role = role.Identifier + }; + } + public static PlatformFeatureAssigned PlatformFeatureAssigned(Identifier id, Feature feature) { return new PlatformFeatureAssigned(id) diff --git a/src/EndUsersDomain/Membership.cs b/src/EndUsersDomain/Membership.cs index 9f7136cd..e9adc439 100644 --- a/src/EndUsersDomain/Membership.cs +++ b/src/EndUsersDomain/Membership.cs @@ -31,16 +31,16 @@ private Membership(IRecorder recorder, IIdentifierFactory idFactory, public bool IsDefault { get; private set; } + public bool IsShared => Ownership is { HasValue: true, Value: OrganizationOwnership.Shared }; + public Optional OrganizationId { get; private set; } = Optional.None; + public Optional Ownership { get; private set; } + public Roles Roles { get; private set; } = Roles.Empty; public Optional RootId { get; private set; } = Optional.None; - public Optional Ownership { get; private set; } - - public bool IsShared => Ownership is { HasValue: true, Value: OrganizationOwnership.Shared }; - protected override Result OnStateChanged(IDomainEvent @event) { switch (@event) @@ -68,7 +68,7 @@ protected override Result OnStateChanged(IDomainEvent @event) return Result.Ok; } - case MembershipDefaultChanged changed: + case DefaultMembershipChanged changed: { if (changed.FromMembershipId == Id) { @@ -83,27 +83,34 @@ protected override Result OnStateChanged(IDomainEvent @event) return Result.Ok; } - case MembershipRoleAssigned added: + case MembershipRoleAssigned assigned: { - var role = Roles.Add(added.Role); - if (!role.IsSuccessful) + var roles = Roles.Add(assigned.Role); + if (!roles.IsSuccessful) { - return role.Error; + return roles.Error; } - Roles = role.Value; + Roles = roles.Value; return Result.Ok; } - case MembershipFeatureAssigned added: + case MembershipRoleUnassigned unassigned: { - var feature = Features.Add(added.Feature); - if (!feature.IsSuccessful) + var roles = Roles.Remove(unassigned.Role); + Roles = roles; + return Result.Ok; + } + + case MembershipFeatureAssigned assigned: + { + var features = Features.Add(assigned.Feature); + if (!features.IsSuccessful) { - return feature.Error; + return features.Error; } - Features = feature.Value; + Features = features.Value; return Result.Ok; } diff --git a/src/EndUsersDomain/Memberships.cs b/src/EndUsersDomain/Memberships.cs index a4a90b62..1e29ad25 100644 --- a/src/EndUsersDomain/Memberships.cs +++ b/src/EndUsersDomain/Memberships.cs @@ -2,6 +2,7 @@ using Common; using Common.Extensions; using Domain.Common.ValueObjects; +using Domain.Shared.Organizations; namespace EndUsersDomain; @@ -11,6 +12,8 @@ public class Memberships : IReadOnlyList public Membership DefaultMembership => _memberships.First(ms => ms.IsDefault); + public bool HasPersonalOrganization => _memberships.Any(ms => ms.Ownership == OrganizationOwnership.Personal); + public Result EnsureInvariants() { foreach (var membership in _memberships) @@ -82,6 +85,22 @@ public Optional FindByOrganizationId(Identifier organizationId) .SingleOrDefault(ms => ms.OrganizationId == organizationId); } + public Membership FindNextDefaultMembership() + { + var next = _memberships + .Except(new[] { DefaultMembership }) + // ReSharper disable once SimplifyLinqExpressionUseMinByAndMaxBy + .OrderByDescending(ms => ms.CreatedAtUtc) + .FirstOrDefault(); + + if (next.NotExists()) + { + throw new InvalidOperationException(Resources.Memberships_MissingNextDefaultMembership); + } + + return next; + } + public void Remove(Identifier membershipId) { var membership = _memberships.Find(ms => ms.Id == membershipId); diff --git a/src/EndUsersDomain/Resources.Designer.cs b/src/EndUsersDomain/Resources.Designer.cs index dbf907c0..d5e63a01 100644 --- a/src/EndUsersDomain/Resources.Designer.cs +++ b/src/EndUsersDomain/Resources.Designer.cs @@ -60,7 +60,7 @@ internal Resources() { } /// - /// Looks up a localized string similar to Cannot add a membership to machines organization. + /// Looks up a localized string similar to Cannot add a membership to machine's organization. /// internal static string EndUserRoot_AddMembership_MachineCannotHaveMemberships { get { @@ -69,11 +69,20 @@ internal static string EndUserRoot_AddMembership_MachineCannotHaveMemberships { } /// - /// Looks up a localized string similar to The adder cannot add a membership to a personal organization. + /// Looks up a localized string similar to Cannot add another 'Personal' organization. /// - internal static string EndUserRoot_Addmembership_SharedOwnershipRequired { + internal static string EndUserRoot_AddMembership_OnlyOnePersonalOrganization { get { - return ResourceManager.GetString("EndUserRoot_Addmembership_SharedOwnershipRequired", resourceCulture); + return ResourceManager.GetString("EndUserRoot_AddMembership_OnlyOnePersonalOrganization", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The adder cannot add a membership to a 'Personal' organization. + /// + internal static string EndUserRoot_AddMembership_SharedOwnershipRequired { + get { + return ResourceManager.GetString("EndUserRoot_AddMembership_SharedOwnershipRequired", resourceCulture); } } @@ -186,65 +195,74 @@ internal static string EndUserRoot_NoMembership { } /// - /// Looks up a localized string similar to The assigner is not a member of the operations team. + /// Looks up a localized string similar to The feature '{0}' is not a supported platform feature. /// - internal static string EndUserRoot_NotOperator { + internal static string EndUserRoot_NotAssignablePlatformFeature { get { - return ResourceManager.GetString("EndUserRoot_NotOperator", resourceCulture); + return ResourceManager.GetString("EndUserRoot_NotAssignablePlatformFeature", resourceCulture); } } /// - /// Looks up a localized string similar to The assigner is not an owner of the organization. + /// Looks up a localized string similar to The role '{0}' is not a supported platform role. /// - internal static string EndUserRoot_NotOrganizationOwner { + internal static string EndUserRoot_NotAssignablePlatformRole { get { - return ResourceManager.GetString("EndUserRoot_NotOrganizationOwner", resourceCulture); + return ResourceManager.GetString("EndUserRoot_NotAssignablePlatformRole", resourceCulture); } } /// - /// Looks up a localized string similar to This user is not yet registered. + /// Looks up a localized string similar to The role '{0}' is not a supported tenant role. /// - internal static string EndUserRoot_NotRegistered { + internal static string EndUserRoot_NotAssignableTenantRole { get { - return ResourceManager.GetString("EndUserRoot_NotRegistered", resourceCulture); + return ResourceManager.GetString("EndUserRoot_NotAssignableTenantRole", resourceCulture); } } /// - /// Looks up a localized string similar to The feature '{0}' is not a supported platform feature. + /// Looks up a localized string similar to The assigner is not a member of the operations team. /// - internal static string EndUserRoot_UnassignablePlatformFeature { + internal static string EndUserRoot_NotOperator { get { - return ResourceManager.GetString("EndUserRoot_UnassignablePlatformFeature", resourceCulture); + return ResourceManager.GetString("EndUserRoot_NotOperator", resourceCulture); } } /// - /// Looks up a localized string similar to The role '{0}' is not a supported platform role. + /// Looks up a localized string similar to The assigner is not an owner of the organization. /// - internal static string EndUserRoot_UnassignablePlatformRole { + internal static string EndUserRoot_NotOrganizationOwner { get { - return ResourceManager.GetString("EndUserRoot_UnassignablePlatformRole", resourceCulture); + return ResourceManager.GetString("EndUserRoot_NotOrganizationOwner", resourceCulture); } } /// - /// Looks up a localized string similar to The feature '{0}' is not a supported tenant feature. + /// Looks up a localized string similar to This user is not yet registered. /// - internal static string EndUserRoot_UnassignableTenantFeature { + internal static string EndUserRoot_NotRegistered { get { - return ResourceManager.GetString("EndUserRoot_UnassignableTenantFeature", resourceCulture); + return ResourceManager.GetString("EndUserRoot_NotRegistered", resourceCulture); } } /// - /// Looks up a localized string similar to The role '{0}' is not a supported tenant role. + /// Looks up a localized string similar to The remover cannot remove a membership from a 'Personal' organization. + /// + internal static string EndUserRoot_RemoveMembership_SharedOwnershipRequired { + get { + return ResourceManager.GetString("EndUserRoot_RemoveMembership_SharedOwnershipRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The feature '{0}' is not a supported tenant feature. /// - internal static string EndUserRoot_UnassignableTenantRole { + internal static string EndUserRoot_UnassignableTenantFeature { get { - return ResourceManager.GetString("EndUserRoot_UnassignableTenantRole", resourceCulture); + return ResourceManager.GetString("EndUserRoot_UnassignableTenantFeature", resourceCulture); } } @@ -302,6 +320,15 @@ internal static string Memberships_DuplicateMemberships { } } + /// + /// Looks up a localized string similar to There are no more remaining memberships for this user. + /// + internal static string Memberships_MissingNextDefaultMembership { + get { + return ResourceManager.GetString("Memberships_MissingNextDefaultMembership", resourceCulture); + } + } + /// /// Looks up a localized string similar to Only one membership can be the default membership. /// diff --git a/src/EndUsersDomain/Resources.resx b/src/EndUsersDomain/Resources.resx index a772a3ac..d85c792a 100644 --- a/src/EndUsersDomain/Resources.resx +++ b/src/EndUsersDomain/Resources.resx @@ -36,13 +36,13 @@ The membership does not exist - + The role '{0}' is not a supported tenant role - + The role '{0}' is not a supported platform role - + The feature '{0}' is not a supported platform feature @@ -75,8 +75,11 @@ The assigner is not an owner of the organization - - The adder cannot add a membership to a personal organization + + The adder cannot add a membership to a 'Personal' organization + + + The remover cannot remove a membership from a 'Personal' organization A membership must always have at least the role '{0}' @@ -109,6 +112,12 @@ This guest invitation cannot be accepted by an authenticated user - Cannot add a membership to machines organization + Cannot add a membership to machine's organization + + + Cannot add another 'Personal' organization + + + There are no more remaining memberships for this user \ No newline at end of file diff --git a/src/EndUsersInfrastructure.IntegrationTests/MembershipsApiSpec.cs b/src/EndUsersInfrastructure.IntegrationTests/MembershipsApiSpec.cs new file mode 100644 index 00000000..402107c2 --- /dev/null +++ b/src/EndUsersInfrastructure.IntegrationTests/MembershipsApiSpec.cs @@ -0,0 +1,80 @@ +using System.Net; +using ApiHost1; +using Application.Resources.Shared; +using FluentAssertions; +using Infrastructure.Web.Api.Common.Extensions; +using Infrastructure.Web.Api.Operations.Shared.EndUsers; +using Infrastructure.Web.Api.Operations.Shared.Organizations; +using IntegrationTesting.WebApi.Common; +using Microsoft.Extensions.DependencyInjection; +using Xunit; + +namespace EndUsersInfrastructure.IntegrationTests; + +[Trait("Category", "Integration.API")] +[Collection("API")] +public class MembershipsApiSpec : WebApiSpec +{ + public MembershipsApiSpec(WebApiSetup setup) : base(setup, OverrideDependencies) + { + EmptyAllRepositories(); + } + + [Fact] + public async Task WhenChangeDefaultOrganization_ThenChangesDefault() + { + var login = await LoginUserAsync(); + + var organizationId1 = login.User.Profile!.DefaultOrganizationId!; + var organization2 = await Api.PostAsync(new CreateOrganizationRequest + { + Name = "aname" + }, req => req.SetJWTBearerToken(login.AccessToken)); + + var organizationId2 = organization2.Content.Value.Organization!.Id; + login = await ReAuthenticateUserAsync(login.User); + login.User.Profile!.DefaultOrganizationId.Should().Be(organizationId2); + + var result = await Api.PutAsync(new ChangeDefaultOrganizationRequest + { + OrganizationId = organizationId1 + }, req => req.SetJWTBearerToken(login.AccessToken)); + + result.StatusCode.Should().Be(HttpStatusCode.Accepted); + login = await ReAuthenticateUserAsync(login.User); + login.User.Profile!.DefaultOrganizationId.Should().Be(organizationId1); + } + + [Fact] + public async Task WhenListMembershipsForCaller_ThenReturnsMemberships() + { + var login = await LoginUserAsync(); + + var result = await Api.PostAsync(new CreateOrganizationRequest + { + Name = "aname" + }, req => req.SetJWTBearerToken(login.AccessToken)); + + var organizationId = result.Content.Value.Organization!.Id; + result.Content.Value.Organization!.CreatedById.Should().Be(login.User.Id); + result.Content.Value.Organization!.Name.Should().Be("aname"); + result.Content.Value.Organization!.Ownership.Should().Be(OrganizationOwnership.Shared); + + login = await ReAuthenticateUserAsync(login.User); + login.User.Profile!.DefaultOrganizationId.Should().Be(organizationId); + + var memberships = await Api.GetAsync(new ListMembershipsForCallerRequest(), + req => req.SetJWTBearerToken(login.AccessToken)); + + memberships.Content.Value.Memberships!.Count.Should().Be(2); + memberships.Content.Value.Memberships![0].OrganizationId.Should().NotBeNull(); + memberships.Content.Value.Memberships![0].Ownership.Should().Be(OrganizationOwnership.Personal); + memberships.Content.Value.Memberships![1].OrganizationId.Should().Be(organizationId); + memberships.Content.Value.Memberships![1].Ownership.Should().Be(OrganizationOwnership.Shared); + } + + private static void OverrideDependencies(IServiceCollection services) + { + // Override dependencies here + } +} \ No newline at end of file diff --git a/src/EndUsersInfrastructure.UnitTests/Api/Memberships/ChangeDefaultOrganizationRequestValidatorSpec.cs b/src/EndUsersInfrastructure.UnitTests/Api/Memberships/ChangeDefaultOrganizationRequestValidatorSpec.cs new file mode 100644 index 00000000..7892419f --- /dev/null +++ b/src/EndUsersInfrastructure.UnitTests/Api/Memberships/ChangeDefaultOrganizationRequestValidatorSpec.cs @@ -0,0 +1,29 @@ +using Domain.Common.Identity; +using EndUsersInfrastructure.Api.Memberships; +using FluentValidation; +using Infrastructure.Web.Api.Operations.Shared.EndUsers; +using Xunit; + +namespace EndUsersInfrastructure.UnitTests.Api.Memberships; + +[Trait("Category", "Unit")] +public class ChangeDefaultOrganizationRequestValidatorSpec +{ + private readonly ChangeDefaultOrganizationRequest _dto; + private readonly ChangeDefaultOrganizationRequestValidator _validator; + + public ChangeDefaultOrganizationRequestValidatorSpec() + { + _validator = new ChangeDefaultOrganizationRequestValidator(new FixedIdentifierFactory("anid")); + _dto = new ChangeDefaultOrganizationRequest + { + OrganizationId = "anid" + }; + } + + [Fact] + public void WhenAllProperties_ThenSucceeds() + { + _validator.ValidateAndThrow(_dto); + } +} \ No newline at end of file diff --git a/src/EndUsersInfrastructure/Api/EndUsers/EndUsersApi.cs b/src/EndUsersInfrastructure/Api/EndUsers/EndUsersApi.cs index e85a0e42..cff1adef 100644 --- a/src/EndUsersInfrastructure/Api/EndUsers/EndUsersApi.cs +++ b/src/EndUsersInfrastructure/Api/EndUsers/EndUsersApi.cs @@ -18,18 +18,18 @@ public EndUsersApi(ICallerContextFactory contextFactory, IEndUsersApplication en _endUsersApplication = endUsersApplication; } - public async Task> AssignPlatformRoles( + public async Task> AssignPlatformRoles( AssignPlatformRolesRequest request, CancellationToken cancellationToken) { var user = await _endUsersApplication.AssignPlatformRolesAsync(_contextFactory.Create(), request.Id, request.Roles ?? new List(), cancellationToken); - return () => user.HandleApplicationResult(usr => - new PostResult(new AssignPlatformRolesResponse { User = usr })); + return () => user.HandleApplicationResult(usr => + new PostResult(new GetUserResponse { User = usr })); } - public async Task> UnassignPlatformRoles( + public async Task> UnassignPlatformRoles( UnassignPlatformRolesRequest request, CancellationToken cancellationToken) { var user = @@ -37,7 +37,7 @@ await _endUsersApplication.UnassignPlatformRolesAsync(_contextFactory.Create(), request.Roles ?? new List(), cancellationToken); return () => - user.HandleApplicationResult(usr => new AssignPlatformRolesResponse + user.HandleApplicationResult(usr => new GetUserResponse { User = usr }); } } \ No newline at end of file diff --git a/src/EndUsersInfrastructure/Api/Memberships/ChangeDefaultOrganizationRequestValidator.cs b/src/EndUsersInfrastructure/Api/Memberships/ChangeDefaultOrganizationRequestValidator.cs new file mode 100644 index 00000000..86484842 --- /dev/null +++ b/src/EndUsersInfrastructure/Api/Memberships/ChangeDefaultOrganizationRequestValidator.cs @@ -0,0 +1,17 @@ +using Domain.Common.Identity; +using Domain.Interfaces.Validations; +using FluentValidation; +using Infrastructure.Web.Api.Common.Validation; +using Infrastructure.Web.Api.Operations.Shared.EndUsers; + +namespace EndUsersInfrastructure.Api.Memberships; + +public class ChangeDefaultOrganizationRequestValidator : AbstractValidator +{ + public ChangeDefaultOrganizationRequestValidator(IIdentifierFactory identifierFactory) + { + RuleFor(req => req.OrganizationId) + .IsEntityId(identifierFactory) + .WithMessage(CommonValidationResources.AnyValidator_InvalidId); + } +} \ No newline at end of file diff --git a/src/EndUsersInfrastructure/Api/Memberships/ListMembershipsForCallerRequestValidator.cs b/src/EndUsersInfrastructure/Api/Memberships/ListMembershipsForCallerRequestValidator.cs new file mode 100644 index 00000000..fa47d054 --- /dev/null +++ b/src/EndUsersInfrastructure/Api/Memberships/ListMembershipsForCallerRequestValidator.cs @@ -0,0 +1,13 @@ +using FluentValidation; +using Infrastructure.Web.Api.Common.Validation; +using Infrastructure.Web.Api.Operations.Shared.EndUsers; + +namespace EndUsersInfrastructure.Api.Memberships; + +public class ListMembershipsForCallerRequestValidator : AbstractValidator +{ + public ListMembershipsForCallerRequestValidator(IHasSearchOptionsValidator hasSearchOptionsValidator) + { + Include(hasSearchOptionsValidator); + } +} \ No newline at end of file diff --git a/src/EndUsersInfrastructure/Api/Memberships/MembershipsApi.cs b/src/EndUsersInfrastructure/Api/Memberships/MembershipsApi.cs new file mode 100644 index 00000000..76c5cf0b --- /dev/null +++ b/src/EndUsersInfrastructure/Api/Memberships/MembershipsApi.cs @@ -0,0 +1,39 @@ +using Application.Resources.Shared; +using EndUsersApplication; +using Infrastructure.Interfaces; +using Infrastructure.Web.Api.Common.Extensions; +using Infrastructure.Web.Api.Interfaces; +using Infrastructure.Web.Api.Operations.Shared.EndUsers; + +namespace EndUsersInfrastructure.Api.Memberships; + +public class MembershipsApi : IWebApiService +{ + private readonly ICallerContextFactory _contextFactory; + private readonly IEndUsersApplication _endUsersApplication; + + public MembershipsApi(ICallerContextFactory contextFactory, IEndUsersApplication endUsersApplication) + { + _contextFactory = contextFactory; + _endUsersApplication = endUsersApplication; + } + + public async Task> ChangeDefaultOrganization( + ChangeDefaultOrganizationRequest request, CancellationToken cancellationToken) + { + var user = await _endUsersApplication.ChangeDefaultMembershipAsync(_contextFactory.Create(), + request.OrganizationId, cancellationToken); + + return () => user.HandleApplicationResult(x => new GetUserResponse { User = x }); + } + + public async Task> ListMembershipsForCaller( + ListMembershipsForCallerRequest request, CancellationToken cancellationToken) + { + var memberships = await _endUsersApplication.ListMembershipsForCallerAsync(_contextFactory.Create(), + request.ToSearchOptions(), request.ToGetOptions(), cancellationToken); + + return () => memberships.HandleApplicationResult(ms => new ListMembershipsForCallerResponse + { Memberships = ms.Results, Metadata = ms.Metadata }); + } +} \ No newline at end of file diff --git a/src/EndUsersInfrastructure/Notifications/EndUserNotificationConsumer.cs b/src/EndUsersInfrastructure/Notifications/EndUserNotificationConsumer.cs index b0c199e3..0e0a34be 100644 --- a/src/EndUsersInfrastructure/Notifications/EndUserNotificationConsumer.cs +++ b/src/EndUsersInfrastructure/Notifications/EndUserNotificationConsumer.cs @@ -1,4 +1,5 @@ using Common; +using Domain.Common.Events; using Domain.Events.Shared.Organizations; using Domain.Interfaces.Entities; using EndUsersApplication; @@ -25,14 +26,29 @@ public async Task> NotifyAsync(IDomainEvent domainEvent, Cancellat { switch (domainEvent) { + case Global.StreamDeleted deleted: + return await _endUsersApplication.HandleOrganizationDeletedAsync(_callerContextFactory.Create(), + deleted, cancellationToken); + case Created created: return await _endUsersApplication.HandleOrganizationCreatedAsync(_callerContextFactory.Create(), created, cancellationToken); - case MembershipAdded added: - return await _invitationsApplication.HandleOrganizationMembershipAddedAsync( - _callerContextFactory.Create(), - added, cancellationToken); + case MemberInvited added: + return await _invitationsApplication.HandleOrganizationMemberInvitedAsync( + _callerContextFactory.Create(), added, cancellationToken); + + case MemberUnInvited removed: + return await _invitationsApplication.HandleOrganizationMemberUnInvitedAsync( + _callerContextFactory.Create(), removed, cancellationToken); + + case RoleAssigned assigned: + return await _endUsersApplication.HandleOrganizationRoleAssignedAsync( + _callerContextFactory.Create(), assigned, cancellationToken); + + case RoleUnassigned unassigned: + return await _endUsersApplication.HandleOrganizationRoleUnassignedAsync( + _callerContextFactory.Create(), unassigned, cancellationToken); default: return Result.Ok; diff --git a/src/EndUsersInfrastructure/Persistence/EndUserRepository.cs b/src/EndUsersInfrastructure/Persistence/EndUserRepository.cs index 6f8b218c..2b6eed80 100644 --- a/src/EndUsersInfrastructure/Persistence/EndUserRepository.cs +++ b/src/EndUsersInfrastructure/Persistence/EndUserRepository.cs @@ -78,6 +78,7 @@ public async Task, Error>> SearchAllMember .Select(mje => mje.Roles) .Select(mje => mje.Features) .Select(mje => mje.OrganizationId) + .Select(mje => mje.Ownership) .Select(mje => mje.IsDefault) .Select(mje => mje.LastPersistedAtUtc) .SelectFromJoin(mje => mje.InvitedEmailAddress, inv => inv.InvitedEmailAddress) diff --git a/src/EndUsersInfrastructure/Persistence/ReadModels/EndUserProjection.cs b/src/EndUsersInfrastructure/Persistence/ReadModels/EndUserProjection.cs index b0fa240a..060b6866 100644 --- a/src/EndUsersInfrastructure/Persistence/ReadModels/EndUserProjection.cs +++ b/src/EndUsersInfrastructure/Persistence/ReadModels/EndUserProjection.cs @@ -39,17 +39,17 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven switch (changeEvent) { case Created e: - return await Tasks.WhenAllAsync(_users.HandleCreateAsync(e.RootId.ToId(), dto => + return await Tasks.WhenAllAsync(_users.HandleCreateAsync(e.RootId, dto => { dto.Classification = e.Classification; dto.Access = e.Access; dto.Status = e.Status; }, cancellationToken), - _invitations.HandleCreateAsync(e.RootId.ToId(), dto => { dto.Status = e.Status; }, + _invitations.HandleCreateAsync(e.RootId, dto => { dto.Status = e.Status; }, cancellationToken)); case Registered e: - return await Tasks.WhenAllAsync(_users.HandleUpdateAsync(e.RootId.ToId(), dto => + return await Tasks.WhenAllAsync(_users.HandleUpdateAsync(e.RootId, dto => { dto.Classification = e.Classification; dto.Access = e.Access; @@ -58,20 +58,26 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven dto.Roles = Roles.Create(e.Roles.ToArray()).Value; dto.Features = Features.Create(e.Features.ToArray()).Value; }, cancellationToken), - _invitations.HandleUpdateAsync(e.RootId.ToId(), dto => { dto.Status = e.Status; }, + _invitations.HandleUpdateAsync(e.RootId, dto => { dto.Status = e.Status; }, cancellationToken)); case MembershipAdded e: - return await _memberships.HandleCreateAsync(e.MembershipId.ToId(), dto => - { - dto.IsDefault = e.IsDefault; - dto.UserId = e.RootId; - dto.OrganizationId = e.OrganizationId; - dto.Roles = Roles.Create(e.Roles.ToArray()).Value; - dto.Features = Features.Create(e.Features.ToArray()).Value; - }, cancellationToken); + return e.MembershipId.HasValue() + ? await _memberships.HandleCreateAsync(e.MembershipId, dto => + { + dto.IsDefault = e.IsDefault; + dto.UserId = e.RootId; + dto.OrganizationId = e.OrganizationId; + dto.Ownership = e.Ownership; + dto.Roles = Roles.Create(e.Roles.ToArray()).Value; + dto.Features = Features.Create(e.Features.ToArray()).Value; + }, cancellationToken) + : true; - case MembershipDefaultChanged e: + case MembershipRemoved e: + return await _memberships.HandleDeleteAsync(e.MembershipId, cancellationToken); + + case DefaultMembershipChanged e: { if (e.FromMembershipId.Exists()) { @@ -94,7 +100,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven } case MembershipRoleAssigned e: - return await _memberships.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _memberships.HandleUpdateAsync(e.RootId, dto => { var roles = dto.Roles.HasValue ? dto.Roles.Value.Add(e.Role) @@ -107,8 +113,22 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven dto.Roles = roles.Value; }, cancellationToken); + case MembershipRoleUnassigned e: + return await _memberships.HandleUpdateAsync(e.RootId, dto => + { + var roles = dto.Roles.HasValue + ? dto.Roles.Value.Remove(e.Role) + : new Result(Roles.Empty); + if (!roles.IsSuccessful) + { + return; + } + + dto.Roles = roles.Value; + }, cancellationToken); + case MembershipFeatureAssigned e: - return await _memberships.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _memberships.HandleUpdateAsync(e.RootId, dto => { var features = dto.Features.HasValue ? dto.Features.Value.Add(e.Feature) @@ -122,7 +142,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven }, cancellationToken); case PlatformRoleAssigned e: - return await _users.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _users.HandleUpdateAsync(e.RootId, dto => { var roles = dto.Roles.HasValue ? dto.Roles.Value.Add(e.Role) @@ -136,11 +156,11 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven }, cancellationToken); case PlatformRoleUnassigned e: - return await _users.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _users.HandleUpdateAsync(e.RootId, dto => { var roles = dto.Roles.HasValue ? dto.Roles.Value.Remove(e.Role) - : Roles.Create(e.Role); + : new Result(Roles.Empty); if (!roles.IsSuccessful) { return; @@ -150,7 +170,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven }, cancellationToken); case PlatformFeatureAssigned e: - return await _users.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _users.HandleUpdateAsync(e.RootId, dto => { var features = dto.Features.HasValue ? dto.Features.Value.Add(e.Feature) @@ -164,7 +184,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven }, cancellationToken); case GuestInvitationCreated e: - return await _invitations.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _invitations.HandleUpdateAsync(e.RootId, dto => { dto.InvitedEmailAddress = e.EmailAddress; dto.Token = e.Token; @@ -172,7 +192,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven }, cancellationToken); case GuestInvitationAccepted e: - return await _invitations.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _invitations.HandleUpdateAsync(e.RootId, dto => { dto.Token = Optional.None; dto.Status = UserStatus.Registered; diff --git a/src/IdentityApplication/PasswordCredentialsApplication.cs b/src/IdentityApplication/PasswordCredentialsApplication.cs index 413230e6..2f49c270 100644 --- a/src/IdentityApplication/PasswordCredentialsApplication.cs +++ b/src/IdentityApplication/PasswordCredentialsApplication.cs @@ -321,7 +321,6 @@ public async Task> VerifyPasswordResetAsync(ICallerContext caller, return Result.Ok; } -#if TESTINGONLY public async Task> CompletePasswordResetAsync(ICallerContext caller, string token, string password, CancellationToken cancellationToken) { @@ -360,6 +359,7 @@ public async Task> CompletePasswordResetAsync(ICallerContext calle return Result.Ok; } +#if TESTINGONLY public async Task> GetPersonRegistrationConfirmationAsync( ICallerContext context, string userId, CancellationToken cancellationToken) diff --git a/src/IdentityInfrastructure.UnitTests/ApplicationServices/JWTTokensServiceSpec.cs b/src/IdentityInfrastructure.UnitTests/ApplicationServices/JWTTokensServiceSpec.cs index 7470fb8b..1096f169 100644 --- a/src/IdentityInfrastructure.UnitTests/ApplicationServices/JWTTokensServiceSpec.cs +++ b/src/IdentityInfrastructure.UnitTests/ApplicationServices/JWTTokensServiceSpec.cs @@ -43,8 +43,8 @@ public async Task WhenIssueTokensAsync_ThenReturnsTokens() Access = EndUserAccess.Enabled, Status = EndUserStatus.Unregistered, Id = "anid", - Roles = new List { PlatformRoles.Standard.Name }, - Features = new List { PlatformFeatures.Basic.Name }, + Roles = [PlatformRoles.Standard.Name], + Features = [PlatformFeatures.Basic.Name], Memberships = [ new Membership @@ -52,8 +52,8 @@ public async Task WhenIssueTokensAsync_ThenReturnsTokens() Id = "amembershipid", UserId = "auserid", OrganizationId = "anorganizationid", - Roles = new List { TenantRoles.Member.Name }, - Features = new List { TenantFeatures.Basic.Name } + Roles = [TenantRoles.Member.Name], + Features = [TenantFeatures.Basic.Name] } ] }; diff --git a/src/IdentityInfrastructure/Persistence/ReadModels/APIKeyProjection.cs b/src/IdentityInfrastructure/Persistence/ReadModels/APIKeyProjection.cs index c8b38a46..81597278 100644 --- a/src/IdentityInfrastructure/Persistence/ReadModels/APIKeyProjection.cs +++ b/src/IdentityInfrastructure/Persistence/ReadModels/APIKeyProjection.cs @@ -2,7 +2,6 @@ using Application.Persistence.Interfaces; using Common; using Domain.Common.Events; -using Domain.Common.ValueObjects; using Domain.Events.Shared.Identities.APIKeys; using Domain.Interfaces; using Domain.Interfaces.Entities; @@ -30,7 +29,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven switch (changeEvent) { case Created e: - return await _authTokens.HandleCreateAsync(e.RootId.ToId(), dto => + return await _authTokens.HandleCreateAsync(e.RootId, dto => { dto.UserId = e.UserId; dto.KeyToken = e.KeyToken; @@ -38,7 +37,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven cancellationToken); case ParametersChanged e: - return await _authTokens.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _authTokens.HandleUpdateAsync(e.RootId, dto => { dto.Description = e.Description; dto.ExpiresOn = e.ExpiresOn.ToOptional(); @@ -48,7 +47,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven return true; case Global.StreamDeleted e: - return await _authTokens.HandleDeleteAsync(e.RootId.ToId(), cancellationToken); + return await _authTokens.HandleDeleteAsync(e.RootId, cancellationToken); default: return false; diff --git a/src/IdentityInfrastructure/Persistence/ReadModels/AuthTokensProjection.cs b/src/IdentityInfrastructure/Persistence/ReadModels/AuthTokensProjection.cs index f3ba9b59..ad09c926 100644 --- a/src/IdentityInfrastructure/Persistence/ReadModels/AuthTokensProjection.cs +++ b/src/IdentityInfrastructure/Persistence/ReadModels/AuthTokensProjection.cs @@ -1,7 +1,6 @@ using Application.Persistence.Common.Extensions; using Application.Persistence.Interfaces; using Common; -using Domain.Common.ValueObjects; using Domain.Events.Shared.Identities.AuthTokens; using Domain.Interfaces; using Domain.Interfaces.Entities; @@ -29,11 +28,11 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven switch (changeEvent) { case Created e: - return await _authTokens.HandleCreateAsync(e.RootId.ToId(), dto => { dto.UserId = e.UserId; }, + return await _authTokens.HandleCreateAsync(e.RootId, dto => { dto.UserId = e.UserId; }, cancellationToken); case TokensChanged e: - return await _authTokens.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _authTokens.HandleUpdateAsync(e.RootId, dto => { dto.AccessToken = e.AccessToken; dto.RefreshToken = e.RefreshToken; @@ -42,7 +41,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven }, cancellationToken); case TokensRefreshed e: - return await _authTokens.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _authTokens.HandleUpdateAsync(e.RootId, dto => { dto.AccessToken = e.AccessToken; dto.RefreshToken = e.RefreshToken; @@ -51,7 +50,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven }, cancellationToken); case TokensRevoked e: - return await _authTokens.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _authTokens.HandleUpdateAsync(e.RootId, dto => { dto.AccessToken = Optional.None; dto.RefreshToken = Optional.None; diff --git a/src/IdentityInfrastructure/Persistence/ReadModels/PasswordCredentialProjection.cs b/src/IdentityInfrastructure/Persistence/ReadModels/PasswordCredentialProjection.cs index 4f5bad49..c76a234f 100644 --- a/src/IdentityInfrastructure/Persistence/ReadModels/PasswordCredentialProjection.cs +++ b/src/IdentityInfrastructure/Persistence/ReadModels/PasswordCredentialProjection.cs @@ -1,7 +1,6 @@ using Application.Persistence.Common.Extensions; using Application.Persistence.Interfaces; using Common; -using Domain.Common.ValueObjects; using Domain.Events.Shared.Identities.PasswordCredentials; using Domain.Interfaces; using Domain.Interfaces.Entities; @@ -29,7 +28,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven switch (changeEvent) { case Created e: - return await _credentials.HandleCreateAsync(e.RootId.ToId(), dto => + return await _credentials.HandleCreateAsync(e.RootId, dto => { dto.UserId = e.UserId; dto.RegistrationVerified = false; @@ -38,11 +37,11 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven cancellationToken); case CredentialsChanged e: - return await _credentials.HandleUpdateAsync(e.RootId.ToId(), + return await _credentials.HandleUpdateAsync(e.RootId, dto => { dto.PasswordResetToken = Optional.None; }, cancellationToken); case RegistrationChanged e: - return await _credentials.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _credentials.HandleUpdateAsync(e.RootId, dto => { dto.UserName = e.Name; dto.UserEmailAddress = e.EmailAddress; @@ -52,32 +51,32 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven return true; case AccountLocked e: - return await _credentials.HandleUpdateAsync(e.RootId.ToId(), + return await _credentials.HandleUpdateAsync(e.RootId, dto => { dto.AccountLocked = true; }, cancellationToken); case AccountUnlocked e: - return await _credentials.HandleUpdateAsync(e.RootId.ToId(), + return await _credentials.HandleUpdateAsync(e.RootId, dto => { dto.AccountLocked = false; }, cancellationToken); case RegistrationVerificationCreated e: - return await _credentials.HandleUpdateAsync(e.RootId.ToId(), + return await _credentials.HandleUpdateAsync(e.RootId, dto => { dto.RegistrationVerificationToken = e.Token; }, cancellationToken); case RegistrationVerificationVerified e: - return await _credentials.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _credentials.HandleUpdateAsync(e.RootId, dto => { dto.RegistrationVerificationToken = Optional.None; dto.RegistrationVerified = true; }, cancellationToken); case PasswordResetInitiated e: - return await _credentials.HandleUpdateAsync(e.RootId.ToId(), + return await _credentials.HandleUpdateAsync(e.RootId, dto => { dto.PasswordResetToken = e.Token; }, cancellationToken); case PasswordResetCompleted e: - return await _credentials.HandleUpdateAsync(e.RootId.ToId(), + return await _credentials.HandleUpdateAsync(e.RootId, dto => { dto.PasswordResetToken = Optional.None; }, cancellationToken); default: diff --git a/src/IdentityInfrastructure/Persistence/ReadModels/SSOUserProjection.cs b/src/IdentityInfrastructure/Persistence/ReadModels/SSOUserProjection.cs index 24070cdb..f666a48e 100644 --- a/src/IdentityInfrastructure/Persistence/ReadModels/SSOUserProjection.cs +++ b/src/IdentityInfrastructure/Persistence/ReadModels/SSOUserProjection.cs @@ -1,7 +1,6 @@ using Application.Persistence.Common.Extensions; using Application.Persistence.Interfaces; using Common; -using Domain.Common.ValueObjects; using Domain.Events.Shared.Identities.SSOUsers; using Domain.Interfaces; using Domain.Interfaces.Entities; @@ -29,7 +28,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven switch (changeEvent) { case Created e: - return await _users.HandleCreateAsync(e.RootId.ToId(), dto => + return await _users.HandleCreateAsync(e.RootId, dto => { dto.UserId = e.UserId; dto.ProviderName = e.ProviderName; @@ -37,7 +36,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven cancellationToken); case TokensUpdated e: - return await _users.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _users.HandleUpdateAsync(e.RootId, dto => { dto.Tokens = e.Tokens; dto.EmailAddress = e.EmailAddress; diff --git a/src/ImagesInfrastructure/Persistence/ReadModels/ImageProjection.cs b/src/ImagesInfrastructure/Persistence/ReadModels/ImageProjection.cs index a619f0d5..c6bd29c2 100644 --- a/src/ImagesInfrastructure/Persistence/ReadModels/ImageProjection.cs +++ b/src/ImagesInfrastructure/Persistence/ReadModels/ImageProjection.cs @@ -1,7 +1,6 @@ using Application.Persistence.Common.Extensions; using Application.Persistence.Interfaces; using Common; -using Domain.Common.ValueObjects; using Domain.Events.Shared.Images; using Domain.Interfaces; using Domain.Interfaces.Entities; @@ -29,11 +28,11 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven switch (changeEvent) { case Created e: - return await _images.HandleCreateAsync(e.RootId.ToId(), dto => { dto.ContentType = e.ContentType; }, + return await _images.HandleCreateAsync(e.RootId, dto => { dto.ContentType = e.ContentType; }, cancellationToken); case DetailsChanged e: - return await _images.HandleUpdateAsync(e.RootId.ToId(), + return await _images.HandleUpdateAsync(e.RootId, dto => { dto.Description = e.Description; @@ -41,7 +40,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven }, cancellationToken); case AttributesChanged e: - return await _images.HandleUpdateAsync(e.RootId.ToId(), dto => { dto.Size = e.Size; }, + return await _images.HandleUpdateAsync(e.RootId, dto => { dto.Size = e.Size; }, cancellationToken); default: diff --git a/src/Infrastructure.Persistence.Common.UnitTests/EventSourcingDddCommandStoreSpec.cs b/src/Infrastructure.Persistence.Common.UnitTests/EventSourcingDddCommandStoreSpec.cs index 7f92dbb1..d45e4112 100644 --- a/src/Infrastructure.Persistence.Common.UnitTests/EventSourcingDddCommandStoreSpec.cs +++ b/src/Infrastructure.Persistence.Common.UnitTests/EventSourcingDddCommandStoreSpec.cs @@ -117,7 +117,7 @@ public async Task WhenLoadAndPreviouslyTombstoned_ThenReturnsError() var result = await _store.LoadAsync("anid".ToId(), CancellationToken.None); - result.Should().BeError(ErrorCode.EntityNotFound, Resources.IEventSourcingDddCommandStore_StreamTombstoned); + result.Should().BeError(ErrorCode.EntityDeleted, Resources.IEventSourcingDddCommandStore_StreamTombstoned); } [Fact] diff --git a/src/Infrastructure.Persistence.Common/EventSourcingDddCommandStore.cs b/src/Infrastructure.Persistence.Common/EventSourcingDddCommandStore.cs index 29fe2105..25efea71 100644 --- a/src/Infrastructure.Persistence.Common/EventSourcingDddCommandStore.cs +++ b/src/Infrastructure.Persistence.Common/EventSourcingDddCommandStore.cs @@ -73,7 +73,7 @@ public async Task> LoadAsync(Identifier id, Cancel if (IsTombstoned(events)) { - return Error.EntityNotFound(Resources.IEventSourcingDddCommandStore_StreamTombstoned); + return Error.EntityDeleted(Resources.IEventSourcingDddCommandStore_StreamTombstoned); } var lastPersistedAtUtc = events.Last().LastPersistedAtUtc; diff --git a/src/Infrastructure.Web.Api.Common/Extensions/ErrorExtensions.cs b/src/Infrastructure.Web.Api.Common/Extensions/ErrorExtensions.cs index 4f7fff9b..33839a47 100644 --- a/src/Infrastructure.Web.Api.Common/Extensions/ErrorExtensions.cs +++ b/src/Infrastructure.Web.Api.Common/Extensions/ErrorExtensions.cs @@ -22,6 +22,7 @@ public static HttpError ToHttpError(this Error error) ErrorCode.NotAuthenticated => HttpErrorCode.Unauthorized, ErrorCode.ForbiddenAccess => HttpErrorCode.Forbidden, ErrorCode.NotSubscribed => HttpErrorCode.PaymentRequired, + ErrorCode.EntityDeleted => HttpErrorCode.MethodNotAllowed, _ => HttpErrorCode.InternalServerError }; diff --git a/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/AssignPlatformRolesRequest.cs b/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/AssignPlatformRolesRequest.cs index 2271722a..6b891db5 100644 --- a/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/AssignPlatformRolesRequest.cs +++ b/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/AssignPlatformRolesRequest.cs @@ -2,9 +2,9 @@ namespace Infrastructure.Web.Api.Operations.Shared.EndUsers; -[Route("/users/{id}/roles", OperationMethod.Post, AccessType.Token)] +[Route("/users/{Id}/roles", OperationMethod.Post, AccessType.Token)] [Authorize(Interfaces.Roles.Platform_Operations)] -public class AssignPlatformRolesRequest : UnTenantedRequest +public class AssignPlatformRolesRequest : UnTenantedRequest { public required string Id { get; set; } diff --git a/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/ChangeDefaultOrganizationRequest.cs b/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/ChangeDefaultOrganizationRequest.cs new file mode 100644 index 00000000..6c09e4f7 --- /dev/null +++ b/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/ChangeDefaultOrganizationRequest.cs @@ -0,0 +1,10 @@ +using Infrastructure.Web.Api.Interfaces; + +namespace Infrastructure.Web.Api.Operations.Shared.EndUsers; + +[Route("/memberships/me/default", OperationMethod.PutPatch, AccessType.Token)] +[Authorize(Roles.Platform_Standard, Features.Platform_PaidTrial)] +public class ChangeDefaultOrganizationRequest : UnTenantedRequest +{ + public required string OrganizationId { get; set; } +} \ No newline at end of file diff --git a/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/AssignPlatformRolesResponse.cs b/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/GetUserResponse.cs similarity index 76% rename from src/Infrastructure.Web.Api.Operations.Shared/EndUsers/AssignPlatformRolesResponse.cs rename to src/Infrastructure.Web.Api.Operations.Shared/EndUsers/GetUserResponse.cs index acce72cc..cfec26b6 100644 --- a/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/AssignPlatformRolesResponse.cs +++ b/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/GetUserResponse.cs @@ -3,7 +3,7 @@ namespace Infrastructure.Web.Api.Operations.Shared.EndUsers; -public class AssignPlatformRolesResponse : IWebResponse +public class GetUserResponse : IWebResponse { public EndUser? User { get; set; } } \ No newline at end of file diff --git a/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/ListMembershipsForCallerRequest.cs b/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/ListMembershipsForCallerRequest.cs new file mode 100644 index 00000000..ddbe5974 --- /dev/null +++ b/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/ListMembershipsForCallerRequest.cs @@ -0,0 +1,9 @@ +using Infrastructure.Web.Api.Interfaces; + +namespace Infrastructure.Web.Api.Operations.Shared.EndUsers; + +[Route("/memberships/me", OperationMethod.Search, AccessType.Token)] +[Authorize(Roles.Platform_Standard, Features.Platform_Basic)] +public class ListMembershipsForCallerRequest : UnTenantedSearchRequest +{ +} \ No newline at end of file diff --git a/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/ListMembershipsForCallerResponse.cs b/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/ListMembershipsForCallerResponse.cs new file mode 100644 index 00000000..b1c2dc81 --- /dev/null +++ b/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/ListMembershipsForCallerResponse.cs @@ -0,0 +1,9 @@ +using Application.Resources.Shared; +using Infrastructure.Web.Api.Interfaces; + +namespace Infrastructure.Web.Api.Operations.Shared.EndUsers; + +public class ListMembershipsForCallerResponse : SearchResponse +{ + public List? Memberships { get; set; } +} \ No newline at end of file diff --git a/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/UnassignPlatformRolesRequest.cs b/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/UnassignPlatformRolesRequest.cs index d5b17637..fc2a68b8 100644 --- a/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/UnassignPlatformRolesRequest.cs +++ b/src/Infrastructure.Web.Api.Operations.Shared/EndUsers/UnassignPlatformRolesRequest.cs @@ -4,7 +4,7 @@ namespace Infrastructure.Web.Api.Operations.Shared.EndUsers; [Route("/users/{id}/roles", OperationMethod.PutPatch, AccessType.Token)] [Authorize(Interfaces.Roles.Platform_Operations)] -public class UnassignPlatformRolesRequest : UnTenantedRequest +public class UnassignPlatformRolesRequest : UnTenantedRequest { public required string Id { get; set; } diff --git a/src/Infrastructure.Web.Api.Operations.Shared/Organizations/AssignRolesToOrganizationRequest.cs b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/AssignRolesToOrganizationRequest.cs new file mode 100644 index 00000000..7db44e18 --- /dev/null +++ b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/AssignRolesToOrganizationRequest.cs @@ -0,0 +1,15 @@ +using Infrastructure.Web.Api.Interfaces; + +namespace Infrastructure.Web.Api.Operations.Shared.Organizations; + +[Route("/organizations/{Id}/roles/assign", OperationMethod.PutPatch, AccessType.Token)] +[Authorize(Interfaces.Roles.Tenant_Owner, Features.Tenant_PaidTrial)] +public class AssignRolesToOrganizationRequest : UnTenantedRequest, + IUnTenantedOrganizationRequest +{ + public List Roles { get; set; } = []; + + public required string UserId { get; set; } + + public string? Id { get; set; } +} \ No newline at end of file diff --git a/src/Infrastructure.Web.Api.Operations.Shared/Organizations/ChangeOrganizationRequest.cs b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/ChangeOrganizationRequest.cs new file mode 100644 index 00000000..32991cc0 --- /dev/null +++ b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/ChangeOrganizationRequest.cs @@ -0,0 +1,13 @@ +using Infrastructure.Web.Api.Interfaces; + +namespace Infrastructure.Web.Api.Operations.Shared.Organizations; + +[Route("/organizations/{Id}", OperationMethod.PutPatch, AccessType.Token)] +[Authorize(Roles.Tenant_Owner, Features.Tenant_Basic)] +public class ChangeOrganizationRequest : UnTenantedRequest, + IUnTenantedOrganizationRequest +{ + public string? Id { get; set; } + + public string? Name { get; set; } +} \ No newline at end of file diff --git a/src/Infrastructure.Web.Api.Operations.Shared/Organizations/DeleteOrganizationRequest.cs b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/DeleteOrganizationRequest.cs new file mode 100644 index 00000000..3f39727a --- /dev/null +++ b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/DeleteOrganizationRequest.cs @@ -0,0 +1,10 @@ +using Infrastructure.Web.Api.Interfaces; + +namespace Infrastructure.Web.Api.Operations.Shared.Organizations; + +[Route("/organizations/{Id}", OperationMethod.Delete, AccessType.Token)] +[Authorize(Roles.Tenant_Owner, Features.Tenant_PaidTrial)] +public class DeleteOrganizationRequest : UnTenantedDeleteRequest, IUnTenantedOrganizationRequest +{ + public string? Id { get; set; } +} \ No newline at end of file diff --git a/src/Infrastructure.Web.Api.Operations.Shared/Organizations/InviteMemberToOrganizationRequest.cs b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/InviteMemberToOrganizationRequest.cs index c367a646..3eae9ff3 100644 --- a/src/Infrastructure.Web.Api.Operations.Shared/Organizations/InviteMemberToOrganizationRequest.cs +++ b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/InviteMemberToOrganizationRequest.cs @@ -3,7 +3,7 @@ namespace Infrastructure.Web.Api.Operations.Shared.Organizations; [Route("/organizations/{Id}/members", OperationMethod.Post, AccessType.Token)] -[Authorize(Roles.Tenant_Owner, Features.Tenant_Basic)] +[Authorize(Roles.Tenant_Owner, Features.Platform_PaidTrial)] public class InviteMemberToOrganizationRequest : UnTenantedRequest, IUnTenantedOrganizationRequest { diff --git a/src/Infrastructure.Web.Api.Operations.Shared/Organizations/UnInviteMemberFromOrganizationRequest.cs b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/UnInviteMemberFromOrganizationRequest.cs new file mode 100644 index 00000000..e84f768b --- /dev/null +++ b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/UnInviteMemberFromOrganizationRequest.cs @@ -0,0 +1,13 @@ +using Infrastructure.Web.Api.Interfaces; + +namespace Infrastructure.Web.Api.Operations.Shared.Organizations; + +[Route("/organizations/{Id}/members/{UserId}", OperationMethod.Delete, AccessType.Token)] +[Authorize(Roles.Tenant_Owner, Features.Platform_PaidTrial)] +public class UnInviteMemberFromOrganizationRequest : UnTenantedRequest, + IUnTenantedOrganizationRequest +{ + public required string UserId { get; set; } + + public string? Id { get; set; } +} \ No newline at end of file diff --git a/src/Infrastructure.Web.Api.Operations.Shared/Organizations/UnInviteMemberFromOrganizationResponse.cs b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/UnInviteMemberFromOrganizationResponse.cs new file mode 100644 index 00000000..fa39c809 --- /dev/null +++ b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/UnInviteMemberFromOrganizationResponse.cs @@ -0,0 +1,9 @@ +using Application.Resources.Shared; +using Infrastructure.Web.Api.Interfaces; + +namespace Infrastructure.Web.Api.Operations.Shared.Organizations; + +public class UnInviteMemberFromOrganizationResponse : IWebResponse +{ + public Organization? Organization { get; set; } +} \ No newline at end of file diff --git a/src/Infrastructure.Web.Api.Operations.Shared/Organizations/UnassignRolesFromOrganizationRequest.cs b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/UnassignRolesFromOrganizationRequest.cs new file mode 100644 index 00000000..1c8383b1 --- /dev/null +++ b/src/Infrastructure.Web.Api.Operations.Shared/Organizations/UnassignRolesFromOrganizationRequest.cs @@ -0,0 +1,15 @@ +using Infrastructure.Web.Api.Interfaces; + +namespace Infrastructure.Web.Api.Operations.Shared.Organizations; + +[Route("/organizations/{Id}/roles/unassign", OperationMethod.PutPatch, AccessType.Token)] +[Authorize(Interfaces.Roles.Tenant_Owner, Features.Tenant_PaidTrial)] +public class UnassignRolesFromOrganizationRequest : UnTenantedRequest, + IUnTenantedOrganizationRequest +{ + public List Roles { get; set; } = []; + + public required string UserId { get; set; } + + public string? Id { get; set; } +} \ No newline at end of file diff --git a/src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/GetCurrentProfileRequest.cs b/src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/GetProfileForCallerRequest.cs similarity index 63% rename from src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/GetCurrentProfileRequest.cs rename to src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/GetProfileForCallerRequest.cs index 28aec38d..b93b9699 100644 --- a/src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/GetCurrentProfileRequest.cs +++ b/src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/GetProfileForCallerRequest.cs @@ -3,6 +3,6 @@ namespace Infrastructure.Web.Api.Operations.Shared.UserProfiles; [Route("/profiles/me", OperationMethod.Get)] -public class GetCurrentProfileRequest : UnTenantedRequest +public class GetProfileForCallerRequest : UnTenantedRequest { } \ No newline at end of file diff --git a/src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/GetCurrentProfileResponse.cs b/src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/GetProfileForCallerResponse.cs similarity index 56% rename from src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/GetCurrentProfileResponse.cs rename to src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/GetProfileForCallerResponse.cs index a461ebcf..c788ea8b 100644 --- a/src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/GetCurrentProfileResponse.cs +++ b/src/Infrastructure.Web.Api.Operations.Shared/UserProfiles/GetProfileForCallerResponse.cs @@ -3,7 +3,7 @@ namespace Infrastructure.Web.Api.Operations.Shared.UserProfiles; -public class GetCurrentProfileResponse : IWebResponse +public class GetProfileForCallerResponse : IWebResponse { - public UserProfileForCurrent? Profile { get; set; } + public UserProfileForCaller? Profile { get; set; } } \ No newline at end of file diff --git a/src/Infrastructure.Web.Hosting.Common.UnitTests/Pipeline/MultiTenancyMiddlewareSpec.cs b/src/Infrastructure.Web.Hosting.Common.UnitTests/Pipeline/MultiTenancyMiddlewareSpec.cs index b79944fb..1e7ef7da 100644 --- a/src/Infrastructure.Web.Hosting.Common.UnitTests/Pipeline/MultiTenancyMiddlewareSpec.cs +++ b/src/Infrastructure.Web.Hosting.Common.UnitTests/Pipeline/MultiTenancyMiddlewareSpec.cs @@ -257,7 +257,7 @@ await _middleware.InvokeAsync(context, _tenancyContext.Object, _callerContextFac _tenantDetective.Object); context.Response.Should().BeAProblem(HttpStatusCode.BadRequest, - Resources.MultiTenancyMiddleware_MissingTenantId); + Resources.MultiTenancyMiddleware_MissingDefaultOrganization); _tenantDetective.Verify(td => td.DetectTenantAsync(context, Optional.None, CancellationToken.None)); _next.Verify(n => n.Invoke(It.IsAny()), Times.Never); @@ -468,7 +468,7 @@ await _middleware.InvokeAsync(context, _tenancyContext.Object, _callerContextFac _tenantDetective.Object); context.Response.Should().BeAProblem(HttpStatusCode.BadRequest, - Resources.MultiTenancyMiddleware_MissingTenantId); + Resources.MultiTenancyMiddleware_MissingDefaultOrganization); _tenantDetective.Verify(td => td.DetectTenantAsync(context, Optional.None, CancellationToken.None)); _next.Verify(n => n.Invoke(It.IsAny()), Times.Never); @@ -506,7 +506,7 @@ await _middleware.InvokeAsync(context, _tenancyContext.Object, _callerContextFac _tenantDetective.Object); context.Response.Should().BeAProblem(HttpStatusCode.BadRequest, - Resources.MultiTenancyMiddleware_MissingTenantId); + Resources.MultiTenancyMiddleware_MissingDefaultOrganization); _tenantDetective.Verify(td => td.DetectTenantAsync(context, Optional.None, CancellationToken.None)); _next.Verify(n => n.Invoke(It.IsAny()), Times.Never); diff --git a/src/Infrastructure.Web.Hosting.Common/Pipeline/MultiTenancyMiddleware.cs b/src/Infrastructure.Web.Hosting.Common/Pipeline/MultiTenancyMiddleware.cs index 62c6396a..b29d87a3 100644 --- a/src/Infrastructure.Web.Hosting.Common/Pipeline/MultiTenancyMiddleware.cs +++ b/src/Infrastructure.Web.Hosting.Common/Pipeline/MultiTenancyMiddleware.cs @@ -109,6 +109,11 @@ private static bool MissingRequiredTenantIdFromRequest(TenantDetectionResult det private async Task> VerifyDefaultOrganizationIdForCallerAsync(ICallerContext caller, List? memberships, CancellationToken cancellationToken) { + if (!caller.IsAuthenticated) + { + return Error.Validation(Resources.MultiTenancyMiddleware_MissingDefaultOrganization); + } + if (memberships.NotExists()) { var retrievedMemberships = await GetMembershipsForCallerAsync(caller, cancellationToken); @@ -126,7 +131,7 @@ private static bool MissingRequiredTenantIdFromRequest(TenantDetectionResult det return defaultOrganizationId; } - return Error.Validation(Resources.MultiTenancyMiddleware_MissingTenantId); + return Error.Validation(Resources.MultiTenancyMiddleware_MissingDefaultOrganization); } private async Task> VerifyCallerMembershipAsync(ICallerContext caller, List? memberships, diff --git a/src/Infrastructure.Web.Hosting.Common/Resources.Designer.cs b/src/Infrastructure.Web.Hosting.Common/Resources.Designer.cs index 25e4e376..8749c9dc 100644 --- a/src/Infrastructure.Web.Hosting.Common/Resources.Designer.cs +++ b/src/Infrastructure.Web.Hosting.Common/Resources.Designer.cs @@ -231,11 +231,11 @@ internal static string MultiTenancyMiddleware_InvalidTenantId { } /// - /// Looks up a localized string similar to The 'OrganizationId' is missing from this request. + /// Looks up a localized string similar to The ID of the organization is missing from this request. /// - internal static string MultiTenancyMiddleware_MissingTenantId { + internal static string MultiTenancyMiddleware_MissingDefaultOrganization { get { - return ResourceManager.GetString("MultiTenancyMiddleware_MissingTenantId", resourceCulture); + return ResourceManager.GetString("MultiTenancyMiddleware_MissingDefaultOrganization", resourceCulture); } } diff --git a/src/Infrastructure.Web.Hosting.Common/Resources.resx b/src/Infrastructure.Web.Hosting.Common/Resources.resx index 18b07870..955cdf2b 100644 --- a/src/Infrastructure.Web.Hosting.Common/Resources.resx +++ b/src/Infrastructure.Web.Hosting.Common/Resources.resx @@ -90,8 +90,8 @@ The 'OrganizationId' of the request is invalid - - The 'OrganizationId' is missing from this request + + The ID of the organization is missing from this request The authenticated user is not a member of organization '{0}' diff --git a/src/IntegrationTesting.WebApi.Common/WebApiSpec.cs b/src/IntegrationTesting.WebApi.Common/WebApiSpec.cs index 178b5e76..69d8774f 100644 --- a/src/IntegrationTesting.WebApi.Common/WebApiSpec.cs +++ b/src/IntegrationTesting.WebApi.Common/WebApiSpec.cs @@ -8,8 +8,10 @@ using Common.Extensions; using Common.FeatureFlags; using FluentAssertions; +using Infrastructure.Web.Api.Common.Extensions; using Infrastructure.Web.Api.Operations.Shared.Identities; using Infrastructure.Web.Api.Operations.Shared.TestingOnly; +using Infrastructure.Web.Api.Operations.Shared.UserProfiles; using Infrastructure.Web.Common.Clients; using Infrastructure.Web.Interfaces.Clients; using IntegrationTesting.WebApi.Common.Stubs; @@ -212,6 +214,9 @@ protected async Task ReAuthenticateUserAsync(RegisteredEndUser use var accessToken = login.Content.Value.Tokens!.AccessToken.Value; var refreshToken = login.Content.Value.Tokens.RefreshToken.Value; + var profile = await Api.GetAsync(new GetProfileForCallerRequest(), req => req.SetJWTBearerToken(accessToken)); + user.Profile = profile.Content.Value.Profile; + return new LoginDetails(accessToken, refreshToken, user); } diff --git a/src/OrganizationsApplication.UnitTests/OrganizationsApplication.DomainEventHandlersSpec.cs b/src/OrganizationsApplication.UnitTests/OrganizationsApplication.DomainEventHandlersSpec.cs index 9aeb23c0..a1efe851 100644 --- a/src/OrganizationsApplication.UnitTests/OrganizationsApplication.DomainEventHandlersSpec.cs +++ b/src/OrganizationsApplication.UnitTests/OrganizationsApplication.DomainEventHandlersSpec.cs @@ -25,15 +25,18 @@ public class OrganizationsApplicationDomainEventHandlersSpec { private readonly OrganizationsApplication _application; private readonly Mock _caller; + private readonly Mock _identifierFactory; + private readonly Mock _recorder; private readonly Mock _repository; + private readonly Mock _tenantSettingService; private readonly Mock _tenantSettingsService; public OrganizationsApplicationDomainEventHandlersSpec() { - var recorder = new Mock(); + _recorder = new Mock(); _caller = new Mock(); - var idFactory = new Mock(); - idFactory.Setup(f => f.Create(It.IsAny())) + _identifierFactory = new Mock(); + _identifierFactory.Setup(f => f.Create(It.IsAny())) .Returns("anid".ToId()); _tenantSettingsService = new Mock(); _tenantSettingsService.Setup(tss => @@ -42,10 +45,10 @@ public OrganizationsApplicationDomainEventHandlersSpec() { { "aname", "avalue" } })); - var tenantSettingService = new Mock(); - tenantSettingService.Setup(tss => tss.Encrypt(It.IsAny())) + _tenantSettingService = new Mock(); + _tenantSettingService.Setup(tss => tss.Encrypt(It.IsAny())) .Returns((string value) => value); - tenantSettingService.Setup(tss => tss.Decrypt(It.IsAny())) + _tenantSettingService.Setup(tss => tss.Decrypt(It.IsAny())) .Returns((string value) => value); var endUsersService = new Mock(); var imagesService = new Mock(); @@ -54,8 +57,8 @@ public OrganizationsApplicationDomainEventHandlersSpec() .Returns((OrganizationRoot root, CancellationToken _) => Task.FromResult>(root)); - _application = new OrganizationsApplication(recorder.Object, idFactory.Object, - _tenantSettingsService.Object, tenantSettingService.Object, endUsersService.Object, imagesService.Object, + _application = new OrganizationsApplication(_recorder.Object, _identifierFactory.Object, + _tenantSettingsService.Object, _tenantSettingService.Object, endUsersService.Object, imagesService.Object, _repository.Object); } @@ -104,4 +107,46 @@ public async Task WhenHandleEndUserRegisteredForMachineAsync_ThenReturnsOrganiza _tenantSettingsService.Verify(tss => tss.CreateForTenantAsync(_caller.Object, "anid", It.IsAny())); } + + [Fact] + public async Task WhenHandleEndUserMembershipAddedAsync_ThenAddsMembership() + { + var domainEvent = Events.MembershipAdded("auserid".ToId(), "anorganizationid".ToId(), + OrganizationOwnership.Shared, false, Roles.Empty, Features.Empty); + var org = OrganizationRoot.Create(_recorder.Object, _identifierFactory.Object, _tenantSettingService.Object, + OrganizationOwnership.Shared, "anownerid".ToId(), UserClassification.Person, + DisplayName.Create("aname").Value).Value; + _repository.Setup(rep => rep.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(org); + + var result = + await _application.HandleEndUserMembershipAddedAsync(_caller.Object, domainEvent, CancellationToken.None); + + result.Should().BeSuccess(); + _repository.Verify(rep => rep.SaveAsync(It.Is(root => + root.Memberships.Members.Count == 1 + && root.Memberships.Members[0].UserId == "auserid" + ), It.IsAny())); + } + + [Fact] + public async Task WhenHandleEndUserMembershipRemovedAsync_ThenRemovesMembership() + { + var domainEvent = Events.MembershipRemoved("auserid".ToId(), "amembershipid".ToId(), "anorganizationid".ToId(), + "auserid".ToId()); + var org = OrganizationRoot.Create(_recorder.Object, _identifierFactory.Object, _tenantSettingService.Object, + OrganizationOwnership.Shared, "anownerid".ToId(), UserClassification.Person, + DisplayName.Create("aname").Value).Value; + org.AddMembership("auserid".ToId()); + _repository.Setup(rep => rep.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(org); + + var result = + await _application.HandleEndUserMembershipRemovedAsync(_caller.Object, domainEvent, CancellationToken.None); + + result.Should().BeSuccess(); + _repository.Verify(rep => rep.SaveAsync(It.Is(root => + root.Memberships.Members.Count == 0 + ), It.IsAny())); + } } \ No newline at end of file diff --git a/src/OrganizationsApplication.UnitTests/OrganizationsApplicationSpec.cs b/src/OrganizationsApplication.UnitTests/OrganizationsApplicationSpec.cs index 89a4839f..41e9e551 100644 --- a/src/OrganizationsApplication.UnitTests/OrganizationsApplicationSpec.cs +++ b/src/OrganizationsApplication.UnitTests/OrganizationsApplicationSpec.cs @@ -60,8 +60,8 @@ public OrganizationsApplicationSpec() .Returns((OrganizationRoot root, CancellationToken _) => Task.FromResult>(root)); - _application = new OrganizationsApplication(_recorder.Object, _idFactory.Object, - _tenantSettingsService.Object, _tenantSettingService.Object, _endUsersService.Object, _imagesService.Object, + _application = new OrganizationsApplication(_recorder.Object, _idFactory.Object, _tenantSettingsService.Object, + _tenantSettingService.Object, _endUsersService.Object, _imagesService.Object, _repository.Object); } @@ -144,7 +144,7 @@ public async Task WhenGetSettingsAsyncAndNotExists_ThenReturnsError() } [Fact] - public async Task WhenGetSettingsasync_ThenReturnsSettings() + public async Task WhenGetSettingsAsync_ThenReturnsSettings() { var org = OrganizationRoot.Create(_recorder.Object, _idFactory.Object, _tenantSettingService.Object, OrganizationOwnership.Personal, "auserid".ToId(), UserClassification.Person, @@ -246,7 +246,32 @@ public async Task WhenInviteMemberToOrganizationAsyncAndNoUserIdNorEmail_ThenRet } [Fact] - public async Task WhenInviteMemberToOrganizationAsync_ThenInvites() + public async Task WhenInviteMemberToOrganizationAsyncWithUserEmail_ThenInvites() + { + _caller.Setup(cc => cc.Roles) + .Returns(new ICallerContext.CallerRoles([], new[] { TenantRoles.Owner })); + var org = OrganizationRoot.Create(_recorder.Object, _idFactory.Object, _tenantSettingService.Object, + OrganizationOwnership.Shared, "auserid".ToId(), UserClassification.Person, + DisplayName.Create("aname").Value).Value; + _repository.Setup(s => + s.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(org); + + var result = await _application.InviteMemberToOrganizationAsync(_caller.Object, "anorganizationid", + null, "auser@company.com", CancellationToken.None); + + result.Should().BeSuccess(); + result.Value.Name.Should().Be("aname"); + result.Value.CreatedById.Should().Be("auserid"); + result.Value.Ownership.Should().Be(Application.Resources.Shared.OrganizationOwnership.Shared); + _repository.Verify(rep => rep.SaveAsync(It.Is(o => + o.Id == "anid" + && o.Memberships.Count == 0 + ), It.IsAny())); + } + + [Fact] + public async Task WhenInviteMemberToOrganizationAsyncWithUserId_ThenInvites() { _caller.Setup(cc => cc.Roles) .Returns(new ICallerContext.CallerRoles([], new[] { TenantRoles.Owner })); @@ -266,6 +291,7 @@ public async Task WhenInviteMemberToOrganizationAsync_ThenInvites() result.Value.Ownership.Should().Be(Application.Resources.Shared.OrganizationOwnership.Shared); _repository.Verify(rep => rep.SaveAsync(It.Is(o => o.Id == "anid" + && o.Memberships.Count == 0 ), It.IsAny())); } @@ -564,4 +590,204 @@ await org.ChangeAvatarAsync("auserid".ToId(), Roles.Create(TenantRoles.Owner).Va _imagesService.Verify( isv => isv.DeleteImageAsync(_caller.Object, "anoldimageid", It.IsAny())); } + + [Fact] + public async Task WhenChangeDetailsAsyncAndNotExists_ThenReturnsError() + { + _repository.Setup(s => + s.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(Error.EntityNotFound()); + + var result = + await _application.ChangeDetailsAsync(_caller.Object, "auserid", "aname", CancellationToken.None); + + result.Should().BeError(ErrorCode.EntityNotFound); + } + + [Fact] + public async Task WhenChangeDetailsAsyncAndNotOwner_ThenReturnsError() + { + _caller.Setup(cc => cc.Roles) + .Returns(new ICallerContext.CallerRoles()); + var org = OrganizationRoot.Create(_recorder.Object, _idFactory.Object, _tenantSettingService.Object, + OrganizationOwnership.Personal, "auserid".ToId(), UserClassification.Person, + DisplayName.Create("aname").Value).Value; + _repository.Setup(rep => rep.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(org); + + var result = + await _application.ChangeDetailsAsync(_caller.Object, "auserid", "aname", CancellationToken.None); + + result.Should().BeError(ErrorCode.RoleViolation); + } + + [Fact] + public async Task WhenChangeDetailsAsync_ThenReturnsOrganization() + { + _caller.Setup(cc => cc.Roles) + .Returns(new ICallerContext.CallerRoles([], new[] { TenantRoles.Owner })); + var org = OrganizationRoot.Create(_recorder.Object, _idFactory.Object, _tenantSettingService.Object, + OrganizationOwnership.Personal, "auserid".ToId(), UserClassification.Person, + DisplayName.Create("aname").Value).Value; + await org.ChangeAvatarAsync("auserid".ToId(), Roles.Create(TenantRoles.Owner).Value, + _ => Task.FromResult>(Avatar.Create("anoldimageid".ToId(), "aurl").Value), + _ => Task.FromResult(Result.Ok)); + _repository.Setup(rep => rep.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(org); + _imagesService.Setup(isv => + isv.DeleteImageAsync(It.IsAny(), It.IsAny(), + It.IsAny())) + .ReturnsAsync(Result.Ok); + + var result = + await _application.ChangeDetailsAsync(_caller.Object, "auserid", "anewname", CancellationToken.None); + + result.Should().BeSuccess(); + result.Value.Name.Should().Be("anewname"); + _repository.Verify(rep => rep.SaveAsync(It.Is(profile => + profile.Name == "anewname" + ), It.IsAny())); + } + + [Fact] + public async Task WhenUnInviteMemberFromOrganizationAsyncAndNotExists_ThenReturnsError() + { + _repository.Setup(s => + s.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(Error.EntityNotFound()); + + var result = + await _application.UnInviteMemberFromOrganizationAsync(_caller.Object, "anid", "auserid", + CancellationToken.None); + + result.Should().BeError(ErrorCode.EntityNotFound); + } + + [Fact] + public async Task WhenUnInviteMemberFromOrganizationAsync_ThenRemovesMembership() + { + _caller.Setup(cc => cc.Roles) + .Returns(new ICallerContext.CallerRoles([], new[] { TenantRoles.Owner })); + var org = OrganizationRoot.Create(_recorder.Object, _idFactory.Object, _tenantSettingService.Object, + OrganizationOwnership.Shared, "auserid".ToId(), UserClassification.Person, + DisplayName.Create("aname").Value).Value; + org.InviteMember("aninviterid".ToId(), Roles.Create(TenantRoles.Owner).Value, "auserid".ToId(), + Optional.None); + _repository.Setup(rep => rep.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(org); + + var result = + await _application.UnInviteMemberFromOrganizationAsync(_caller.Object, "anid", "auserid", + CancellationToken.None); + + result.Should().BeSuccess(); + _repository.Verify(rep => rep.SaveAsync(It.Is(o => + o.Memberships.Count == 0 + ), It.IsAny())); + } + + [Fact] + public async Task WhenAssignRolesToOrganizationAsyncAndNotExists_ThenReturnsError() + { + _repository.Setup(s => + s.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(Error.EntityNotFound()); + + var result = + await _application.AssignRolesToOrganizationAsync(_caller.Object, "anorganizationid", "auserid", + new List(), CancellationToken.None); + + result.Should().BeError(ErrorCode.EntityNotFound); + } + + [Fact] + public async Task WhenAssignRolesToOrganizationAsync_ThenAssigns() + { + _caller.Setup(cc => cc.Roles) + .Returns(new ICallerContext.CallerRoles([], new[] { TenantRoles.Owner })); + var org = OrganizationRoot.Create(_recorder.Object, _idFactory.Object, _tenantSettingService.Object, + OrganizationOwnership.Personal, "auserid".ToId(), UserClassification.Person, + DisplayName.Create("aname").Value).Value; + org.AddMembership("auserid".ToId()); + _repository.Setup(rep => rep.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(org); + + var result = + await _application.AssignRolesToOrganizationAsync(_caller.Object, "anorganizationid", "auserid", + new List(), CancellationToken.None); + + result.Should().BeSuccess(); + _repository.Verify(rep => rep.SaveAsync(It.Is(root => + root.Id == "anid" + ), It.IsAny())); + } + + [Fact] + public async Task WhenUnassignRolesFromOrganizationAsyncAndNotExists_ThenReturnsError() + { + _repository.Setup(s => + s.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(Error.EntityNotFound()); + + var result = + await _application.UnassignRolesFromOrganizationAsync(_caller.Object, "anorganizationid", "auserid", + new List(), CancellationToken.None); + + result.Should().BeError(ErrorCode.EntityNotFound); + } + + [Fact] + public async Task WhenUnassignRolesFromOrganizationAsync_ThenUnassigns() + { + _caller.Setup(cc => cc.Roles) + .Returns(new ICallerContext.CallerRoles([], new[] { TenantRoles.Owner })); + var org = OrganizationRoot.Create(_recorder.Object, _idFactory.Object, _tenantSettingService.Object, + OrganizationOwnership.Personal, "auserid".ToId(), UserClassification.Person, + DisplayName.Create("aname").Value).Value; + org.AddMembership("auserid".ToId()); + _repository.Setup(rep => rep.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(org); + + var result = + await _application.UnassignRolesFromOrganizationAsync(_caller.Object, "anorganizationid", "auserid", + new List(), CancellationToken.None); + + result.Should().BeSuccess(); + _repository.Verify(rep => rep.SaveAsync(It.Is(root => + root.Id == "anid" + ), It.IsAny())); + } + + [Fact] + public async Task WhenDeleteOrganizationAsyncAndNotExist_ThenReturnsError() + { + _repository.Setup(s => + s.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(Error.EntityNotFound()); + + var result = + await _application.DeleteOrganizationAsync(_caller.Object, "anorganizationid", CancellationToken.None); + + result.Should().BeError(ErrorCode.EntityNotFound); + } + + [Fact] + public async Task WhenDeleteOrganizationAsync_ThenDeletes() + { + _caller.Setup(cc => cc.Roles) + .Returns(new ICallerContext.CallerRoles([], new[] { TenantRoles.Owner })); + var org = OrganizationRoot.Create(_recorder.Object, _idFactory.Object, _tenantSettingService.Object, + OrganizationOwnership.Personal, "auserid".ToId(), UserClassification.Person, + DisplayName.Create("aname").Value).Value; + _repository.Setup(rep => rep.LoadAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(org); + + var result = + await _application.DeleteOrganizationAsync(_caller.Object, "anorganizationid", CancellationToken.None); + + result.Should().BeSuccess(); + _repository.Verify(rep => rep.SaveAsync(It.Is(root => + root.IsDeleted + ), It.IsAny())); + } } \ No newline at end of file diff --git a/src/OrganizationsApplication/IOrganizationsApplication.DomainEventHandlers.cs b/src/OrganizationsApplication/IOrganizationsApplication.DomainEventHandlers.cs index 3e7f79ba..9cc08376 100644 --- a/src/OrganizationsApplication/IOrganizationsApplication.DomainEventHandlers.cs +++ b/src/OrganizationsApplication/IOrganizationsApplication.DomainEventHandlers.cs @@ -6,6 +6,12 @@ namespace OrganizationsApplication; partial interface IOrganizationsApplication { + Task> HandleEndUserMembershipAddedAsync(ICallerContext caller, MembershipAdded domainEvent, + CancellationToken cancellationToken); + + Task> HandleEndUserMembershipRemovedAsync(ICallerContext caller, MembershipRemoved domainEvent, + CancellationToken cancellationToken); + Task> HandleEndUserRegisteredAsync(ICallerContext caller, Registered domainEvent, CancellationToken cancellationToken); } \ No newline at end of file diff --git a/src/OrganizationsApplication/IOrganizationsApplication.cs b/src/OrganizationsApplication/IOrganizationsApplication.cs index 92b943c3..3e67bb33 100644 --- a/src/OrganizationsApplication/IOrganizationsApplication.cs +++ b/src/OrganizationsApplication/IOrganizationsApplication.cs @@ -7,9 +7,15 @@ namespace OrganizationsApplication; public partial interface IOrganizationsApplication { + Task> AssignRolesToOrganizationAsync(ICallerContext caller, string id, string userId, + List roles, CancellationToken cancellationToken); + Task> ChangeAvatarAsync(ICallerContext caller, string id, FileUpload upload, CancellationToken cancellationToken); + Task> ChangeDetailsAsync(ICallerContext caller, string id, string? name, + CancellationToken cancellationToken); + Task> ChangeSettingsAsync(ICallerContext caller, string id, TenantSettings settings, CancellationToken cancellationToken); @@ -19,6 +25,8 @@ Task> CreateSharedOrganizationAsync(ICallerContext c Task> DeleteAvatarAsync(ICallerContext caller, string id, CancellationToken cancellationToken); + Task> DeleteOrganizationAsync(ICallerContext caller, string? id, CancellationToken cancellationToken); + Task> GetOrganizationAsync(ICallerContext caller, string id, CancellationToken cancellationToken); @@ -35,4 +43,11 @@ Task> InviteMemberToOrganizationAsync(ICallerContext Task, Error>> ListMembersForOrganizationAsync(ICallerContext caller, string? id, SearchOptions searchOptions, GetOptions getOptions, CancellationToken cancellationToken); + + Task> UnassignRolesFromOrganizationAsync(ICallerContext caller, string id, + string userId, + List roles, CancellationToken cancellationToken); + + Task> UnInviteMemberFromOrganizationAsync(ICallerContext caller, string id, + string userId, CancellationToken cancellationToken); } \ No newline at end of file diff --git a/src/OrganizationsApplication/OrganizationsApplication.DomainEventHandlers.cs b/src/OrganizationsApplication/OrganizationsApplication.DomainEventHandlers.cs index bdac6995..c73e2f37 100644 --- a/src/OrganizationsApplication/OrganizationsApplication.DomainEventHandlers.cs +++ b/src/OrganizationsApplication/OrganizationsApplication.DomainEventHandlers.cs @@ -1,3 +1,4 @@ +using Application.Common.Extensions; using Application.Interfaces; using Common; using Common.Extensions; @@ -24,4 +25,94 @@ public async Task> HandleEndUserRegisteredAsync(ICallerContext cal return Result.Ok; } + + public async Task> HandleEndUserMembershipAddedAsync(ICallerContext caller, + MembershipAdded domainEvent, CancellationToken cancellationToken) + { + var organization = await AddMembershipInternalAsync(caller, domainEvent.RootId.ToId(), + domainEvent.OrganizationId.ToId(), cancellationToken); + if (!organization.IsSuccessful) + { + return organization.Error; + } + + return Result.Ok; + } + + public async Task> HandleEndUserMembershipRemovedAsync(ICallerContext caller, + MembershipRemoved domainEvent, CancellationToken cancellationToken) + { + var organization = await RemoveMembershipInternalAsync(caller, domainEvent.RootId.ToId(), + domainEvent.OrganizationId.ToId(), cancellationToken); + if (!organization.IsSuccessful) + { + return organization.Error; + } + + return Result.Ok; + } + + private async Task> RemoveMembershipInternalAsync(ICallerContext caller, Identifier userId, + Identifier organizationId, CancellationToken cancellationToken) + { + var retrieved = await _repository.LoadAsync(organizationId, cancellationToken); + if (!retrieved.IsSuccessful) + { + //Note: this may occur after an organization is deleted, and the owner removed + if (retrieved.Error.Is(ErrorCode.EntityDeleted)) + { + _recorder.TraceInformation(caller.ToCall(), "Already deleted organization {Id}", organizationId); + return Result.Ok; + } + + return retrieved.Error; + } + + var org = retrieved.Value; + var removed = org.RemoveMembership(userId); + if (!removed.IsSuccessful) + { + return removed.Error; + } + + var saved = await _repository.SaveAsync(org, cancellationToken); + if (!saved.IsSuccessful) + { + return saved.Error; + } + + org = saved.Value; + _recorder.TraceInformation(caller.ToCall(), "Removed organization {Id} membership for {User}", org.Id, userId); + + return Result.Ok; + } + + private async Task> AddMembershipInternalAsync(ICallerContext caller, Identifier userId, + Identifier organizationId, CancellationToken cancellationToken) + { + var retrieved = await _repository.LoadAsync(organizationId, cancellationToken); + if (!retrieved.IsSuccessful) + { + return retrieved.Error; + } + + var org = retrieved.Value; + var added = org.AddMembership(userId); + if (!added.IsSuccessful) + { + return added.Error; + } + + var saved = await _repository.SaveAsync(org, cancellationToken); + if (!saved.IsSuccessful) + { + return saved.Error; + } + + org = saved.Value; + _recorder.TraceInformation(caller.ToCall(), "Added organization {Id} membership for {User}", org.Id, + userId); + + return Result.Ok; + } } \ No newline at end of file diff --git a/src/OrganizationsApplication/OrganizationsApplication.cs b/src/OrganizationsApplication/OrganizationsApplication.cs index b1b0ace0..2f856897 100644 --- a/src/OrganizationsApplication/OrganizationsApplication.cs +++ b/src/OrganizationsApplication/OrganizationsApplication.cs @@ -41,6 +41,49 @@ public OrganizationsApplication(IRecorder recorder, IIdentifierFactory identifie _repository = repository; } + public async Task> ChangeDetailsAsync(ICallerContext caller, string id, + string? name, CancellationToken cancellationToken) + { + var retrieved = await _repository.LoadAsync(id.ToId(), cancellationToken); + if (!retrieved.IsSuccessful) + { + return retrieved.Error; + } + + var org = retrieved.Value; + if (name.HasValue()) + { + var modifierRoles = Roles.Create(caller.Roles.Tenant); + if (!modifierRoles.IsSuccessful) + { + return modifierRoles.Error; + } + + var orgName = DisplayName.Create(name); + if (!orgName.IsSuccessful) + { + return orgName.Error; + } + + var changed = org.ChangeName(caller.ToCallerId(), modifierRoles.Value, orgName.Value); + if (!changed.IsSuccessful) + { + return changed.Error; + } + } + + var saved = await _repository.SaveAsync(org, cancellationToken); + if (!saved.IsSuccessful) + { + return saved.Error; + } + + org = saved.Value; + _recorder.TraceInformation(caller.ToCall(), "Changed organization: {Id}", org.Id); + + return org.ToOrganization(); + } + public async Task> ChangeSettingsAsync(ICallerContext caller, string id, TenantSettings settings, CancellationToken cancellationToken) { @@ -96,6 +139,41 @@ public async Task> CreateSharedOrganizationAsync(ICa return created.Value; } + public async Task> DeleteOrganizationAsync(ICallerContext caller, string? id, + CancellationToken cancellationToken) + { + var retrieved = await _repository.LoadAsync(id.ToId(), cancellationToken); + if (!retrieved.IsSuccessful) + { + return retrieved.Error; + } + + var deleterRoles = Roles.Create(caller.Roles.Tenant); + if (!deleterRoles.IsSuccessful) + { + return deleterRoles.Error; + } + + var org = retrieved.Value; + var deleterId = caller.ToCallerId(); + var deleted = org.DeleteOrganization(deleterId, deleterRoles.Value); + if (!deleted.IsSuccessful) + { + return deleted.Error; + } + + var saved = await _repository.SaveAsync(org, cancellationToken); + if (!saved.IsSuccessful) + { + return saved.Error; + } + + org = saved.Value; + _recorder.TraceInformation(caller.ToCall(), "Deleted organization: {Id}", org.Id); + + return Result.Ok; + } + public async Task> GetOrganizationAsync(ICallerContext caller, string id, CancellationToken cancellationToken) { @@ -156,7 +234,7 @@ public async Task> InviteMemberToOrganizationAsync(I return retrieved.Error; } - var organization = retrieved.Value; + var org = retrieved.Value; var inviterRoles = Roles.Create(caller.Roles.Tenant); if (!inviterRoles.IsSuccessful) { @@ -171,51 +249,86 @@ public async Task> InviteMemberToOrganizationAsync(I return email.Error; } - var added = organization.AddMembership(caller.ToCallerId(), inviterRoles.Value, Optional.None, + var invited = org.InviteMember(caller.ToCallerId(), inviterRoles.Value, Optional.None, email.Value); - if (!added.IsSuccessful) + if (!invited.IsSuccessful) { - return added.Error; + return invited.Error; } - var saved = await _repository.SaveAsync(organization, cancellationToken); + var saved = await _repository.SaveAsync(org, cancellationToken); if (!saved.IsSuccessful) { return saved.Error; } - organization = saved.Value; + org = saved.Value; _recorder.TraceInformation(caller.ToCall(), "Organization {Id} has invited {UserEmail} to be a member", - organization.Id, emailAddress); + org.Id, emailAddress); - return organization.ToOrganization(); + return org.ToOrganization(); } if (userId.HasValue()) { - var added = organization.AddMembership(caller.ToCallerId(), inviterRoles.Value, userId.ToId(), + var invited = org.InviteMember(caller.ToCallerId(), inviterRoles.Value, userId.ToId(), Optional.None); - if (!added.IsSuccessful) + if (!invited.IsSuccessful) { - return added.Error; + return invited.Error; } - var saved = await _repository.SaveAsync(organization, cancellationToken); + var saved = await _repository.SaveAsync(org, cancellationToken); if (!saved.IsSuccessful) { return saved.Error; } - organization = saved.Value; + org = saved.Value; _recorder.TraceInformation(caller.ToCall(), "Organization {Id} has invited {UserId} to be a member", - organization.Id, userId); + org.Id, userId); - return organization.ToOrganization(); + return org.ToOrganization(); } return Error.RuleViolation(Resources.OrganizationApplication_InvitedNoUserNorEmail); } + public async Task> UnInviteMemberFromOrganizationAsync(ICallerContext caller, string id, + string userId, CancellationToken cancellationToken) + { + var retrieved = await _repository.LoadAsync(id.ToId(), cancellationToken); + if (!retrieved.IsSuccessful) + { + return retrieved.Error; + } + + var removerRoles = Roles.Create(caller.Roles.Tenant); + if (!removerRoles.IsSuccessful) + { + return removerRoles.Error; + } + + var org = retrieved.Value; + var uninvited = org.UnInviteMember(caller.ToCallerId(), removerRoles.Value, userId.ToId()); + if (!uninvited.IsSuccessful) + { + return uninvited.Error; + } + + var saved = await _repository.SaveAsync(org, cancellationToken); + if (!saved.IsSuccessful) + { + return saved.Error; + } + + org = saved.Value; + _recorder.TraceInformation(caller.ToCall(), "Uninvited member {UserId} from organization: {Id}", userId, + org.Id); + + return org.ToOrganization(); + } + public async Task, Error>> ListMembersForOrganizationAsync( ICallerContext caller, string? id, SearchOptions searchOptions, GetOptions getOptions, CancellationToken cancellationToken) @@ -226,18 +339,102 @@ public async Task, Error>> ListMembersF return retrieved.Error; } - var organization = retrieved.Value; + var org = retrieved.Value; var memberships = - await _endUsersService.ListMembershipsForOrganizationAsync(caller, organization.Id, searchOptions, + await _endUsersService.ListMembershipsForOrganizationAsync(caller, org.Id, searchOptions, getOptions, cancellationToken); if (!memberships.IsSuccessful) { return memberships.Error; } + _recorder.TraceInformation(caller.ToCall(), "Organization {Id} listed its members", org.Id); + return searchOptions.ApplyWithMetadata(memberships.Value.Results.ConvertAll(x => x.ToMember())); } + public async Task> AssignRolesToOrganizationAsync(ICallerContext caller, string id, + string userId, List roles, CancellationToken cancellationToken) + { + var retrieved = await _repository.LoadAsync(id.ToId(), cancellationToken); + if (!retrieved.IsSuccessful) + { + return retrieved.Error; + } + + var assignerRoles = Roles.Create(caller.Roles.Tenant); + if (!assignerRoles.IsSuccessful) + { + return assignerRoles.Error; + } + + var rolesToAssign = Roles.Create(roles.ToArray()); + if (!rolesToAssign.IsSuccessful) + { + return rolesToAssign.Error; + } + + var org = retrieved.Value; + var assignerId = caller.ToCallerId(); + var assigned = org.AssignRoles(assignerId, assignerRoles.Value, userId.ToId(), rolesToAssign.Value); + if (!assigned.IsSuccessful) + { + return assigned.Error; + } + + var saved = await _repository.SaveAsync(org, cancellationToken); + if (!saved.IsSuccessful) + { + return saved.Error; + } + + org = saved.Value; + _recorder.TraceInformation(caller.ToCall(), "Organization {Id} assigned roles for {User}", org.Id, userId); + + return org.ToOrganization(); + } + + public async Task> UnassignRolesFromOrganizationAsync(ICallerContext caller, string id, + string userId, List roles, CancellationToken cancellationToken) + { + var retrieved = await _repository.LoadAsync(id.ToId(), cancellationToken); + if (!retrieved.IsSuccessful) + { + return retrieved.Error; + } + + var assignerRoles = Roles.Create(caller.Roles.Tenant); + if (!assignerRoles.IsSuccessful) + { + return assignerRoles.Error; + } + + var rolesToUnassign = Roles.Create(roles.ToArray()); + if (!rolesToUnassign.IsSuccessful) + { + return rolesToUnassign.Error; + } + + var org = retrieved.Value; + var assignerId = caller.ToCallerId(); + var unassigned = org.UnassignRoles(assignerId, assignerRoles.Value, userId.ToId(), rolesToUnassign.Value); + if (!unassigned.IsSuccessful) + { + return unassigned.Error; + } + + var saved = await _repository.SaveAsync(org, cancellationToken); + if (!saved.IsSuccessful) + { + return saved.Error; + } + + org = saved.Value; + _recorder.TraceInformation(caller.ToCall(), "Organization {Id} unassigned roles for {User}", org.Id, userId); + + return org.ToOrganization(); + } + public async Task> ChangeAvatarAsync(ICallerContext caller, string id, FileUpload upload, CancellationToken cancellationToken) { @@ -337,13 +534,13 @@ private async Task> CreateOrganizationInternalAsync( return newSettings.Error; } - var organizationSettings = newSettings.Value.ToSettings(); - if (!organizationSettings.IsSuccessful) + var settings = newSettings.Value.ToSettings(); + if (!settings.IsSuccessful) { - return organizationSettings.Error; + return settings.Error; } - var configured = org.CreateSettings(organizationSettings.Value); + var configured = org.CreateSettings(settings.Value); if (!configured.IsSuccessful) { return configured.Error; diff --git a/src/OrganizationsDomain.UnitTests/MembershipsSpec.cs b/src/OrganizationsDomain.UnitTests/MembershipsSpec.cs new file mode 100644 index 00000000..cf42d3f8 --- /dev/null +++ b/src/OrganizationsDomain.UnitTests/MembershipsSpec.cs @@ -0,0 +1,97 @@ +using Domain.Common.ValueObjects; +using FluentAssertions; +using UnitTesting.Common; +using Xunit; + +namespace OrganizationsDomain.UnitTests; + +[Trait("Category", "Unit")] +public class MembershipsSpec +{ + [Fact] + public void WhenCreateWithNeitherUserIdNorEmail_ThenReturnsError() + { + var result = Memberships.Create([]); + + result.Should().BeSuccess(); + result.Value.Count.Should().Be(0); + } + + [Fact] + public void WhenHasMemberAndEmpty_ThenReturnsFalse() + { + var result = Memberships.Empty.HasMember("auserid".ToId()); + + result.Should().BeFalse(); + } + + [Fact] + public void WhenHasMemberAndNotMatching_ThenReturnsFalse() + { + var memberships = Memberships.Create( + [Membership.Create("anorganizationid", "anotheruserid".ToId()).Value]).Value; + + var result = memberships.HasMember("auserid".ToId()); + + result.Should().BeFalse(); + } + + [Fact] + public void WhenHasMemberAndMatching_ThenReturnsTrue() + { + var memberships = Memberships.Create([Membership.Create("anorganizationid", "auserid".ToId()).Value]) + .Value; + + var result = memberships.HasMember("auserid".ToId()); + + result.Should().BeTrue(); + } + + [Fact] + public void WhenAddAndUserExists_ThenReturnsOriginal() + { + var memberships = Memberships.Create([Membership.Create("anorganizationid", "auserid".ToId()).Value]) + .Value; + + var result = memberships.Add(Membership.Create("anorganizationid", "auserid".ToId()).Value); + + result.Count.Should().Be(1); + result.Should().BeSameAs(memberships); + } + + [Fact] + public void WhenAddAndUserNotExists_ThenReturnsNew() + { + var memberships = Memberships.Create([Membership.Create("anorganizationid", "auserid1".ToId()).Value]) + .Value; + + var result = memberships.Add(Membership.Create("anorganizationid", "auserid2".ToId()).Value); + + result.Count.Should().Be(2); + result.HasMember("auserid1".ToId()).Should().BeTrue(); + result.HasMember("auserid2".ToId()).Should().BeTrue(); + } + + [Fact] + public void WhenRemoveAndUserNotExists_ThenReturnsOriginal() + { + var memberships = Memberships.Create([Membership.Create("anorganizationid", "auserid1".ToId()).Value]) + .Value; + + var result = memberships.Remove("auserid2".ToId()); + + result.Count.Should().Be(1); + result.Should().BeSameAs(memberships); + } + + [Fact] + public void WhenRemoveAndUserExists_ThenReturnsRemoved() + { + var memberships = Memberships.Create([Membership.Create("anorganizationid", "auserid1".ToId()).Value]) + .Value; + + var result = memberships.Remove("auserid1".ToId()); + + result.Count.Should().Be(0); + } +} \ No newline at end of file diff --git a/src/OrganizationsDomain.UnitTests/OrganizationRootSpec.cs b/src/OrganizationsDomain.UnitTests/OrganizationRootSpec.cs index 9bb1ad9c..8c2c8902 100644 --- a/src/OrganizationsDomain.UnitTests/OrganizationRootSpec.cs +++ b/src/OrganizationsDomain.UnitTests/OrganizationRootSpec.cs @@ -19,21 +19,24 @@ namespace OrganizationsDomain.UnitTests; [Trait("Category", "Unit")] public class OrganizationRootSpec { + private readonly Mock _identifierFactory; private readonly OrganizationRoot _org; + private readonly Mock _recorder; + private readonly Mock _tenantSettingService; public OrganizationRootSpec() { - var recorder = new Mock(); - var identifierFactory = new Mock(); - identifierFactory.Setup(idf => idf.Create(It.IsAny())) + _recorder = new Mock(); + _identifierFactory = new Mock(); + _identifierFactory.Setup(idf => idf.Create(It.IsAny())) .Returns((IIdentifiableEntity _) => "anid".ToId()); - var tenantSettingService = new Mock(); - tenantSettingService.Setup(tss => tss.Encrypt(It.IsAny())) + _tenantSettingService = new Mock(); + _tenantSettingService.Setup(tss => tss.Encrypt(It.IsAny())) .Returns((string value) => value); - tenantSettingService.Setup(tss => tss.Decrypt(It.IsAny())) + _tenantSettingService.Setup(tss => tss.Decrypt(It.IsAny())) .Returns((string value) => value); - _org = OrganizationRoot.Create(recorder.Object, identifierFactory.Object, tenantSettingService.Object, + _org = OrganizationRoot.Create(_recorder.Object, _identifierFactory.Object, _tenantSettingService.Object, OrganizationOwnership.Shared, "acreatorid".ToId(), UserClassification.Person, DisplayName.Create("aname").Value).Value; } @@ -47,6 +50,7 @@ public void WhenCreateWithMachineUser_ThenReturnsError() result.Should().BeError(ErrorCode.RuleViolation, Resources.OrganizationRoot_Create_SharedRequiresPerson); } + [Fact] public void WhenCreate_ThenAssigns() { @@ -94,55 +98,99 @@ public void WhenUpdateSettings_ThenAddsAndUpdatesSettings() } [Fact] - public void WhenAddMembershipAndInviterNotOwner_ThenReturnsError() + public void WhenInviteMemberAndInviterNotOwner_ThenReturnsError() { - var result = _org.AddMembership("aninviterid".ToId(), Roles.Empty, Optional.None, + var result = _org.InviteMember("aninviterid".ToId(), Roles.Empty, Optional.None, Optional.None); - result.Should().BeError(ErrorCode.RoleViolation, Resources.OrganizationRoot_NotOrgOwner); + result.Should().BeError(ErrorCode.RoleViolation, Resources.OrganizationRoot_UserNotOrgOwner); } [Fact] - public void WhenAddMembershipAndNoUser_ThenReturnsError() + public void WhenInviteMemberAndNoUser_ThenReturnsError() { - var result = _org.AddMembership("aninviterid".ToId(), Roles.Create(TenantRoles.Owner).Value, + var result = _org.InviteMember("aninviterid".ToId(), Roles.Create(TenantRoles.Owner).Value, Optional.None, Optional.None); result.Should().BeError(ErrorCode.RuleViolation, - Resources.OrganizationRoot_AddMembership_UserIdAndEmailMissing); + Resources.OrganizationRoot_InviteMember_UserIdAndEmailMissing); } [Fact] - public void WhenAddMembershipAndNotShared_ThenReturnsError() + public void WhenInviteMemberAndNotShared_ThenReturnsError() { #if TESTINGONLY _org.TestingOnly_ChangeOwnership(OrganizationOwnership.Personal); #endif - var result = _org.AddMembership("aninviterid".ToId(), Roles.Create(TenantRoles.Owner).Value, + var result = _org.InviteMember("aninviterid".ToId(), Roles.Create(TenantRoles.Owner).Value, Optional.None, Optional.None); result.Should().BeError(ErrorCode.RuleViolation, - Resources.OrganizationRoot_AddMembership_PersonalOrgMembershipNotAllowed); + Resources.OrganizationRoot_InviteMember_PersonalOrgMembershipNotAllowed); } [Fact] - public void WhenAddMembershipWithUserId_ThenAddsMembership() + public void WhenInviteMemberWithUserId_ThenAddsMembership() { - var result = _org.AddMembership("aninviterid".ToId(), Roles.Create(TenantRoles.Owner).Value, + var result = _org.InviteMember("aninviterid".ToId(), Roles.Create(TenantRoles.Owner).Value, "auserid".ToId(), Optional.None); result.Should().BeSuccess(); - _org.Events.Last().Should().BeOfType(); + _org.Events.Last().Should().BeOfType(); } [Fact] - public void WhenAddMembershipWithEmailAddress_ThenAddsMembership() + public void WhenInviteMemberWithEmailAddress_ThenAddsMembership() { - var result = _org.AddMembership("aninviterid".ToId(), Roles.Create(TenantRoles.Owner).Value, + var result = _org.InviteMember("aninviterid".ToId(), Roles.Create(TenantRoles.Owner).Value, Optional.None, EmailAddress.Create("auser@company.com").Value); result.Should().BeSuccess(); - _org.Events.Last().Should().BeOfType(); + _org.Events.Last().Should().BeOfType(); + } + + [Fact] + public void WhenUnInviteMemberAndRemoverNotOwner_ThenReturnsError() + { + var result = _org.UnInviteMember("aremoverid".ToId(), Roles.Empty, "auserid".ToId()); + + result.Should().BeError(ErrorCode.RoleViolation, Resources.OrganizationRoot_UserNotOrgOwner); + } + + [Fact] + public void WhenUnInviteMemberAndPersonalOrg_ThenReturnsError() + { + var org = OrganizationRoot.Create(_recorder.Object, _identifierFactory.Object, + _tenantSettingService.Object, OrganizationOwnership.Personal, "acreatorid".ToId(), + UserClassification.Person, DisplayName.Create("aname").Value).Value; + + var result = org.UnInviteMember("aremoverid".ToId(), Roles.Create(TenantRoles.Owner).Value, "auserid".ToId()); + + result.Should().BeError(ErrorCode.RuleViolation, Resources.OrganizationRoot_UnInviteMember_PersonalOrg); + } + + [Fact] + public void WhenUnInviteMemberAndNotMember_ThenDoesNothing() + { + _org.InviteMember("aninviterid".ToId(), Roles.Create(TenantRoles.Owner).Value, "auserid".ToId(), + Optional.None); + + var result = + _org.UnInviteMember("aremoverid".ToId(), Roles.Create(TenantRoles.Owner).Value, "anotheruserid".ToId()); + + result.Should().BeSuccess(); + } + + [Fact] + public void WhenUnInviteMemberAndIsMember_ThenRemovesMember() + { + _org.InviteMember("aninviterid".ToId(), Roles.Create(TenantRoles.Owner).Value, "auserid".ToId(), + Optional.None); + + var result = + _org.UnInviteMember("aremoverid".ToId(), Roles.Create(TenantRoles.Owner).Value, "auserid".ToId()); + + result.Should().BeSuccess(); } [Fact] @@ -152,7 +200,7 @@ public async Task WhenChangeAvatarAsyncAndNotOwner_ThenReturnsError() _ => Task.FromResult>(Avatar.Create("animageid".ToId(), "aurl").Value), _ => Task.FromResult(Result.Ok)); - result.Should().BeError(ErrorCode.RoleViolation, Resources.OrganizationRoot_NotOrgOwner); + result.Should().BeError(ErrorCode.RoleViolation, Resources.OrganizationRoot_UserNotOrgOwner); } [Fact] @@ -202,7 +250,7 @@ public async Task WhenDeleteAvatarAsyncAndNotOwner_ThenReturnsError() { var result = await _org.DeleteAvatarAsync("anotheruserid".ToId(), Roles.Empty, _ => Task.FromResult(Result.Ok)); - result.Should().BeError(ErrorCode.RoleViolation, Resources.OrganizationRoot_NotOrgOwner); + result.Should().BeError(ErrorCode.RoleViolation, Resources.OrganizationRoot_UserNotOrgOwner); } [Fact] @@ -233,4 +281,158 @@ await _org.ChangeAvatarAsync("auserid".ToId(), Roles.Create(TenantRoles.Owner).V _org.Avatar.HasValue.Should().BeFalse(); _org.Events.Last().Should().BeOfType(); } + + [Fact] + public void WhenAddMembershipAndExists_ThenDoesNothing() + { + _org.AddMembership("auserid".ToId()); + + var result = _org.AddMembership("auserid".ToId()); + + result.Should().BeSuccess(); + _org.Memberships.Count.Should().Be(1); + _org.Memberships.Members[0].UserId.Should().Be("auserid".ToId()); + _org.Events.Last().Should().BeOfType(); + } + + [Fact] + public void WhenAddMembership_ThenAdded() + { + var result = _org.AddMembership("auserid".ToId()); + + result.Should().BeSuccess(); + _org.Memberships.Count.Should().Be(1); + _org.Memberships.Members[0].UserId.Should().Be("auserid".ToId()); + _org.Events.Last().Should().BeOfType(); + } + + [Fact] + public void WhenRemoveMembershipAndNoTExist_ThenDoesNothing() + { + var result = _org.RemoveMembership("auserid".ToId()); + + result.Should().BeSuccess(); + _org.Memberships.Count.Should().Be(0); + _org.Events.Last().Should().BeOfType(); + } + + [Fact] + public void WhenRemoveMembership_ThenRemoves() + { + _org.AddMembership("auserid".ToId()); + + var result = _org.RemoveMembership("auserid".ToId()); + + result.Should().BeSuccess(); + _org.Memberships.Count.Should().Be(0); + _org.Events.Last().Should().BeOfType(); + } + + [Fact] + public void WhenAssignRolesAndNotOwner_ThenReturnsError() + { + var result = _org.AssignRoles("anassignerid".ToId(), Roles.Empty, "auserid".ToId(), Roles.Empty); + + result.Should().BeError(ErrorCode.RoleViolation, Resources.OrganizationRoot_UserNotOrgOwner); + } + + [Fact] + public void WhenAssignRolesAndNotMember_ThenReturnsError() + { + var result = _org.AssignRoles("anassignerid".ToId(), Roles.Create(TenantRoles.Owner).Value, "auserid".ToId(), + Roles.Empty); + + result.Should().BeError(ErrorCode.RuleViolation, Resources.OrganizationRoot_UserNotMember); + } + + [Fact] + public void WhenAssignRolesAndNotAssignableRole_ThenReturnsError() + { + _org.AddMembership("auserid".ToId()); + + var result = _org.AssignRoles("anassignerid".ToId(), Roles.Create(TenantRoles.Owner).Value, "auserid".ToId(), + Roles.Create("arole").Value); + + result.Should().BeError(ErrorCode.RuleViolation, Resources.OrganizationRoot_RoleNotAssignable.Format("arole")); + } + + [Fact] + public void WhenAssignRoles_ThenAssigns() + { + _org.AddMembership("auserid".ToId()); + + var result = _org.AssignRoles("anassignerid".ToId(), Roles.Create(TenantRoles.Owner).Value, "auserid".ToId(), + Roles.Create(TenantRoles.BillingAdmin).Value); + + result.Should().BeSuccess(); + _org.Events.Last().Should().BeOfType(); + } + + [Fact] + public void WhenUnassignRolesAndNotOwner_ThenReturnsError() + { + var result = _org.UnassignRoles("anassignerid".ToId(), Roles.Empty, "auserid".ToId(), Roles.Empty); + + result.Should().BeError(ErrorCode.RoleViolation, Resources.OrganizationRoot_UserNotOrgOwner); + } + + [Fact] + public void WhenUnassignRolesAndNotMember_ThenReturnsError() + { + var result = _org.UnassignRoles("anassignerid".ToId(), Roles.Create(TenantRoles.Owner).Value, "auserid".ToId(), + Roles.Empty); + + result.Should().BeError(ErrorCode.RuleViolation, Resources.OrganizationRoot_UserNotMember); + } + + [Fact] + public void WhenUnassignRolesAndNotAssignableRole_ThenReturnsError() + { + _org.AddMembership("auserid".ToId()); + + var result = _org.UnassignRoles("anassignerid".ToId(), Roles.Create(TenantRoles.Owner).Value, "auserid".ToId(), + Roles.Create("arole").Value); + + result.Should().BeError(ErrorCode.RuleViolation, Resources.OrganizationRoot_RoleNotAssignable.Format("arole")); + } + + [Fact] + public void WhenUnassignRoles_ThenUnassigns() + { + _org.AddMembership("auserid".ToId()); + + var result = _org.UnassignRoles("anassignerid".ToId(), Roles.Create(TenantRoles.Owner).Value, "auserid".ToId(), + Roles.Create(TenantRoles.Owner).Value); + + result.Should().BeSuccess(); + _org.Events.Last().Should().BeOfType(); + } + + [Fact] + public void WhenDeleteOrganizationAndNotOwner_ThenReturnsError() + { + var result = _org.DeleteOrganization("adeleterid".ToId(), Roles.Empty); + + result.Should().BeError(ErrorCode.RoleViolation, Resources.OrganizationRoot_UserNotOrgOwner); + } + + [Fact] + public void WhenDeleteOrganizationAndHasOtherMembers_ThenReturnsError() + { + _org.AddMembership("auserid1".ToId()); + + var result = _org.DeleteOrganization("adeleterid".ToId(), Roles.Create(TenantRoles.Owner).Value); + + result.Should().BeError(ErrorCode.RuleViolation, + Resources.OrganizationRoot_DeleteOrganization_MembersStillExist); + } + + [Fact] + public void WhenDeleteOrganization_ThenDeletes() + { + var result = _org.DeleteOrganization("adeleterid".ToId(), Roles.Create(TenantRoles.Owner).Value); + + result.Should().BeSuccess(); + _org.IsDeleted.Value.Should().BeTrue(); + } } \ No newline at end of file diff --git a/src/OrganizationsDomain/Events.cs b/src/OrganizationsDomain/Events.cs index a196e272..ed91a599 100644 --- a/src/OrganizationsDomain/Events.cs +++ b/src/OrganizationsDomain/Events.cs @@ -36,10 +36,10 @@ public static Created Created(Identifier id, OrganizationOwnership ownership, Id }; } - public static MembershipAdded MembershipAdded(Identifier id, Identifier invitedById, Optional userId, + public static MemberInvited MemberInvited(Identifier id, Identifier invitedById, Optional userId, Optional userEmailAddress) { - return new MembershipAdded(id) + return new MemberInvited(id) { InvitedById = invitedById, UserId = userId.ValueOrDefault!, @@ -47,6 +47,59 @@ public static MembershipAdded MembershipAdded(Identifier id, Identifier invitedB }; } + public static MembershipAdded MembershipAdded(Identifier id, Identifier userId) + { + return new MembershipAdded(id) + { + UserId = userId + }; + } + + public static MembershipRemoved MembershipRemoved(Identifier id, Identifier userId) + { + return new MembershipRemoved(id) + { + UserId = userId + }; + } + + public static MemberUnInvited MemberUnInvited(Identifier id, Identifier unInvitedById, Identifier userId) + { + return new MemberUnInvited(id) + { + UninvitedById = unInvitedById, + UserId = userId + }; + } + + public static NameChanged NameChanged(Identifier id, DisplayName name) + { + return new NameChanged(id) + { + Name = name + }; + } + + public static RoleAssigned RoleAssigned(Identifier id, Identifier assignerId, Identifier userId, Role role) + { + return new RoleAssigned(id) + { + AssignedById = assignerId, + UserId = userId, + Role = role.Identifier + }; + } + + public static RoleUnassigned RoleUnassigned(Identifier id, Identifier unassignerId, Identifier userId, Role role) + { + return new RoleUnassigned(id) + { + UnassignedById = unassignerId, + UserId = userId, + Role = role.Identifier + }; + } + public static SettingCreated SettingCreated(Identifier id, string name, string value, SettingValueType valueType, bool isEncrypted) { diff --git a/src/OrganizationsDomain/Membership.cs b/src/OrganizationsDomain/Membership.cs new file mode 100644 index 00000000..534cd924 --- /dev/null +++ b/src/OrganizationsDomain/Membership.cs @@ -0,0 +1,48 @@ +using Common; +using Common.Extensions; +using Domain.Common.ValueObjects; +using Domain.Interfaces; + +namespace OrganizationsDomain; + +public sealed class Membership : ValueObjectBase +{ + public static Result Create(string organizationId, string userId) + { + if (organizationId.IsNotValuedParameter(nameof(organizationId), out var error1)) + { + return error1; + } + + if (userId.IsNotValuedParameter(nameof(userId), out var error2)) + { + return error2; + } + + return new Membership(organizationId, userId.ToId()); + } + + private Membership(string organizationId, Identifier userId) + { + UserId = userId; + OrganizationId = organizationId; + } + + public string OrganizationId { get; } + + public Identifier UserId { get; } + + public static ValueObjectFactory Rehydrate() + { + return (property, container) => + { + var parts = RehydrateToList(property, false); + return new Membership(parts[0]!, Identifier.Rehydrate()(parts[1]!, container)); + }; + } + + protected override IEnumerable GetAtomicValues() + { + return new object?[] { OrganizationId, UserId }; + } +} \ No newline at end of file diff --git a/src/OrganizationsDomain/Memberships.cs b/src/OrganizationsDomain/Memberships.cs new file mode 100644 index 00000000..caa5e9b4 --- /dev/null +++ b/src/OrganizationsDomain/Memberships.cs @@ -0,0 +1,69 @@ +using Common; +using Domain.Common.ValueObjects; +using Domain.Interfaces; +using Domain.Interfaces.ValueObjects; + +namespace OrganizationsDomain; + +public sealed class Memberships : SingleValueObjectBase> +{ + public static readonly Memberships Empty = new(new List()); + + public static Result Create(List value) + { + return new Memberships(value); + } + + private Memberships(List value) : base(value) + { + } + + private Memberships(IEnumerable membership) : base(membership.ToList()) + { + } + + public int Count => Value.Count; + + public List Members => Value; + + public static ValueObjectFactory Rehydrate() + { + return (property, container) => + { + var items = RehydrateToList(property, true, true); + var memberships = items.Select(item => Membership.Rehydrate()(item!, container)); + return new Memberships(memberships); + }; + } + + public Memberships Add(Membership membership) + { + if (HasMember(membership.UserId)) + { + return this; + } + + var memberships = Value.ToList(); + memberships.Add(membership); + return new Memberships(memberships); + } + + [SkipImmutabilityCheck] + public bool HasMember(Identifier userId) + { + return Value.Any(ms => ms.UserId == userId); + } + + public Memberships Remove(string userId) + { + var membership = Value.FirstOrDefault(ms => ms.UserId == userId); + if (membership is not null) + { + var memberships = Value.ToList(); + memberships.Remove(membership); + return new Memberships(memberships); + } + + return this; + } +} \ No newline at end of file diff --git a/src/OrganizationsDomain/OrganizationRoot.cs b/src/OrganizationsDomain/OrganizationRoot.cs index d3f0a8aa..8bf7d689 100644 --- a/src/OrganizationsDomain/OrganizationRoot.cs +++ b/src/OrganizationsDomain/OrganizationRoot.cs @@ -53,6 +53,8 @@ private OrganizationRoot(IRecorder recorder, IIdentifierFactory idFactory, public Identifier CreatedById { get; private set; } = Identifier.Empty(); + public Memberships Memberships { get; private set; } = Memberships.Empty; + public DisplayName Name { get; private set; } = DisplayName.Empty; public OrganizationOwnership Ownership { get; private set; } @@ -136,10 +138,36 @@ protected override Result OnStateChanged(IDomainEvent @event, bool isReco case MembershipAdded added: { - Recorder.TraceDebug(null, "Organization {Id} added membership for {User}", Id, - (added.EmailAddress.HasValue() - ? added.EmailAddress - : added.UserId)!); + var membership = Membership.Create(added.RootId, added.UserId); + if (!membership.IsSuccessful) + { + return membership.Error; + } + + Memberships = Memberships.Add(membership.Value); + Recorder.TraceDebug(null, "Organization {Id} added member {User}", Id, added.UserId); + return Result.Ok; + } + + case MembershipRemoved removed: + { + Memberships = Memberships.Remove(removed.UserId); + Recorder.TraceDebug(null, "Organization {Id} removed member {User}", Id, removed.UserId); + return Result.Ok; + } + + case MemberInvited invited: + { + Recorder.TraceDebug(null, "Organization {Id} invited member {User}", Id, + (invited.EmailAddress.HasValue() + ? invited.EmailAddress + : invited.UserId)!); + return Result.Ok; + } + + case MemberUnInvited unInvited: + { + Recorder.TraceDebug(null, "Organization {Id} uninvited member {User}", Id, unInvited.UserId); return Result.Ok; } @@ -163,40 +191,83 @@ protected override Result OnStateChanged(IDomainEvent @event, bool isReco return Result.Ok; } + case NameChanged changed: + { + var name = DisplayName.Create(changed.Name); + if (!name.IsSuccessful) + { + return name.Error; + } + + Name = name.Value; + Recorder.TraceDebug(null, "Organization {Id} changed name", Id); + return Result.Ok; + } + + case RoleAssigned assigned: + { + Recorder.TraceDebug(null, "Organization {Id} assigned role {Role} to {User}", Id, assigned.Role, + assigned.UserId); + return Result.Ok; + } + + case RoleUnassigned unassigned: + { + Recorder.TraceDebug(null, "Organization {Id} unassigned role {Role} to {User}", Id, unassigned.Role, + unassigned.UserId); + return Result.Ok; + } + default: return HandleUnKnownStateChangedEvent(@event); } } - public Result AddMembership(Identifier inviterId, Roles inviterRoles, Optional userId, - Optional emailAddress) + public Result AddMembership(Identifier userId) { - if (!IsOwner(inviterRoles)) + if (Memberships.HasMember(userId)) { - return Error.RoleViolation(Resources.OrganizationRoot_NotOrgOwner); + return Result.Ok; } - if (Ownership == OrganizationOwnership.Personal) + return RaiseChangeEvent(OrganizationsDomain.Events.MembershipAdded(Id, userId)); + } + + public Result AssignRoles(Identifier assignerId, Roles assignerRoles, Identifier userId, Roles rolesToAssign) + { + if (!IsOwner(assignerRoles)) { - return Error.RuleViolation(Resources.OrganizationRoot_AddMembership_PersonalOrgMembershipNotAllowed); + return Error.RoleViolation(Resources.OrganizationRoot_UserNotOrgOwner); } - if (!userId.HasValue - && !emailAddress.HasValue) + if (!IsMember(userId)) + { + return Error.RuleViolation(Resources.OrganizationRoot_UserNotMember); + } + + foreach (var role in rolesToAssign.Items) { - return Error.RuleViolation(Resources.OrganizationRoot_AddMembership_UserIdAndEmailMissing); + if (!TenantRoles.IsTenantAssignableRole(role)) + { + return Error.RuleViolation(Resources.OrganizationRoot_RoleNotAssignable.Format(role)); + } + + var assigned = RaiseChangeEvent(OrganizationsDomain.Events.RoleAssigned(Id, assignerId, userId, role)); + if (!assigned.IsSuccessful) + { + return assigned.Error; + } } - return RaiseChangeEvent(OrganizationsDomain.Events.MembershipAdded(Id, inviterId, userId, emailAddress)); + return Result.Ok; } public async Task> ChangeAvatarAsync(Identifier modifierId, Roles modifierRoles, - CreateAvatarAction onCreateNew, - RemoveAvatarAction onRemoveOld) + CreateAvatarAction onCreateNew, RemoveAvatarAction onRemoveOld) { if (!IsOwner(modifierRoles)) { - return Error.RoleViolation(Resources.OrganizationRoot_NotOrgOwner); + return Error.RoleViolation(Resources.OrganizationRoot_UserNotOrgOwner); } var existingAvatarId = Avatar.HasValue @@ -220,6 +291,16 @@ public async Task> ChangeAvatarAsync(Identifier modifierId, Roles return RaiseChangeEvent(OrganizationsDomain.Events.AvatarAdded(Id, created.Value)); } + public Result ChangeName(Identifier modifierId, Roles modifierRoles, DisplayName name) + { + if (!IsOwner(modifierRoles)) + { + return Error.RoleViolation(Resources.OrganizationRoot_UserNotOrgOwner); + } + + return RaiseChangeEvent(OrganizationsDomain.Events.NameChanged(Id, name)); + } + public Result CreateSettings(Settings settings) { foreach (var (key, value) in settings.Properties) @@ -239,7 +320,7 @@ public async Task> DeleteAvatarAsync(Identifier deleterId, Roles d { if (!IsOwner(deleterRoles)) { - return Error.RoleViolation(Resources.OrganizationRoot_NotOrgOwner); + return Error.RoleViolation(Resources.OrganizationRoot_UserNotOrgOwner); } if (!Avatar.HasValue) @@ -257,6 +338,60 @@ public async Task> DeleteAvatarAsync(Identifier deleterId, Roles d return RaiseChangeEvent(OrganizationsDomain.Events.AvatarRemoved(Id, avatarId)); } + public Result DeleteOrganization(Identifier deleterId, Roles deleterRoles) + { + if (!IsOwner(deleterRoles)) + { + return Error.RoleViolation(Resources.OrganizationRoot_UserNotOrgOwner); + } + + //TODO: Must be the BillingBuyer + //TODO: BillingBuyer.CanBeUnsubscribed must be true + + var otherMembers = Memberships.Members + .Select(m => m.UserId) + .Except(new[] { deleterId }) + .ToList(); + if (otherMembers.HasAny()) + { + return Error.RuleViolation(Resources.OrganizationRoot_DeleteOrganization_MembersStillExist); + } + + return RaisePermanentDeleteEvent(deleterId); + } + + public Result InviteMember(Identifier inviterId, Roles inviterRoles, Optional userId, + Optional emailAddress) + { + if (!IsOwner(inviterRoles)) + { + return Error.RoleViolation(Resources.OrganizationRoot_UserNotOrgOwner); + } + + if (Ownership == OrganizationOwnership.Personal) + { + return Error.RuleViolation(Resources.OrganizationRoot_InviteMember_PersonalOrgMembershipNotAllowed); + } + + if (!userId.HasValue + && !emailAddress.HasValue) + { + return Error.RuleViolation(Resources.OrganizationRoot_InviteMember_UserIdAndEmailMissing); + } + + return RaiseChangeEvent(OrganizationsDomain.Events.MemberInvited(Id, inviterId, userId, emailAddress)); + } + + public Result RemoveMembership(Identifier userId) + { + if (!Memberships.HasMember(userId)) + { + return Result.Ok; + } + + return RaiseChangeEvent(OrganizationsDomain.Events.MembershipRemoved(Id, userId)); + } + #if TESTINGONLY public void TestingOnly_ChangeOwnership(OrganizationOwnership ownership) { @@ -264,6 +399,58 @@ public void TestingOnly_ChangeOwnership(OrganizationOwnership ownership) } #endif + public Result UnassignRoles(Identifier assignerId, Roles assignerRoles, Identifier userId, + Roles rolesToUnassign) + { + if (!IsOwner(assignerRoles)) + { + return Error.RoleViolation(Resources.OrganizationRoot_UserNotOrgOwner); + } + + if (!IsMember(userId)) + { + return Error.RuleViolation(Resources.OrganizationRoot_UserNotMember); + } + + foreach (var role in rolesToUnassign.Items) + { + if (!TenantRoles.IsTenantAssignableRole(role)) + { + return Error.RuleViolation(Resources.OrganizationRoot_RoleNotAssignable.Format(role)); + } + + var assigned = RaiseChangeEvent(OrganizationsDomain.Events.RoleUnassigned(Id, assignerId, userId, role)); + if (!assigned.IsSuccessful) + { + return assigned.Error; + } + } + + return Result.Ok; + } + + public Result UnInviteMember(Identifier removerId, Roles removerRoles, Identifier userId) + { + if (!IsOwner(removerRoles)) + { + return Error.RoleViolation(Resources.OrganizationRoot_UserNotOrgOwner); + } + + if (Ownership == OrganizationOwnership.Personal) + { + return Error.RuleViolation(Resources.OrganizationRoot_UnInviteMember_PersonalOrg); + } + + if (!Memberships.HasMember(userId)) + { + return Result.Ok; + } + + //TODO: cannot remove if BillingBuyer + + return RaiseChangeEvent(OrganizationsDomain.Events.MemberUnInvited(Id, removerId, userId)); + } + public Result UpdateSettings(Settings settings) { foreach (var (key, value) in settings.Properties) @@ -296,4 +483,9 @@ private static bool IsOwner(Roles roles) { return roles.HasRole(TenantRoles.Owner); } + + private bool IsMember(Identifier userId) + { + return Memberships.HasMember(userId); + } } \ No newline at end of file diff --git a/src/OrganizationsDomain/Resources.Designer.cs b/src/OrganizationsDomain/Resources.Designer.cs index 4d4e9859..ebe12966 100644 --- a/src/OrganizationsDomain/Resources.Designer.cs +++ b/src/OrganizationsDomain/Resources.Designer.cs @@ -69,29 +69,38 @@ internal static string OrganizationDisplayName_InvalidName { } /// - /// Looks up a localized string similar to Cannot add another user to a Personal organization. + /// Looks up a localized string similar to Must be a person to create a 'Shared' organization. /// - internal static string OrganizationRoot_AddMembership_PersonalOrgMembershipNotAllowed { + internal static string OrganizationRoot_Create_SharedRequiresPerson { get { - return ResourceManager.GetString("OrganizationRoot_AddMembership_PersonalOrgMembershipNotAllowed", resourceCulture); + return ResourceManager.GetString("OrganizationRoot_Create_SharedRequiresPerson", resourceCulture); } } /// - /// Looks up a localized string similar to Both the ID of the user and an email for the user is missing. + /// Looks up a localized string similar to Cannot delete this organization while any others members still exist. They must be removed from the organization first. /// - internal static string OrganizationRoot_AddMembership_UserIdAndEmailMissing { + internal static string OrganizationRoot_DeleteOrganization_MembersStillExist { get { - return ResourceManager.GetString("OrganizationRoot_AddMembership_UserIdAndEmailMissing", resourceCulture); + return ResourceManager.GetString("OrganizationRoot_DeleteOrganization_MembersStillExist", resourceCulture); } } /// - /// Looks up a localized string similar to Must be a person to create a 'Shared' organization. + /// Looks up a localized string similar to Cannot add another user to a 'Personal' organization. /// - internal static string OrganizationRoot_Create_SharedRequiresPerson { + internal static string OrganizationRoot_InviteMember_PersonalOrgMembershipNotAllowed { get { - return ResourceManager.GetString("OrganizationRoot_Create_SharedRequiresPerson", resourceCulture); + return ResourceManager.GetString("OrganizationRoot_InviteMember_PersonalOrgMembershipNotAllowed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Both the ID of the user and an email for the user is missing. + /// + internal static string OrganizationRoot_InviteMember_UserIdAndEmailMissing { + get { + return ResourceManager.GetString("OrganizationRoot_InviteMember_UserIdAndEmailMissing", resourceCulture); } } @@ -104,12 +113,39 @@ internal static string OrganizationRoot_NoAvatar { } } + /// + /// Looks up a localized string similar to Role '{0}' is not assignable to a user. + /// + internal static string OrganizationRoot_RoleNotAssignable { + get { + return ResourceManager.GetString("OrganizationRoot_RoleNotAssignable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot remove any members from a 'Personal' organization. + /// + internal static string OrganizationRoot_UnInviteMember_PersonalOrg { + get { + return ResourceManager.GetString("OrganizationRoot_UnInviteMember_PersonalOrg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User must be a member of this organization. + /// + internal static string OrganizationRoot_UserNotMember { + get { + return ResourceManager.GetString("OrganizationRoot_UserNotMember", resourceCulture); + } + } + /// /// Looks up a localized string similar to Must be an organization owner to perform this action. /// - internal static string OrganizationRoot_NotOrgOwner { + internal static string OrganizationRoot_UserNotOrgOwner { get { - return ResourceManager.GetString("OrganizationRoot_NotOrgOwner", resourceCulture); + return ResourceManager.GetString("OrganizationRoot_UserNotOrgOwner", resourceCulture); } } diff --git a/src/OrganizationsDomain/Resources.resx b/src/OrganizationsDomain/Resources.resx index 708d277a..078a3156 100644 --- a/src/OrganizationsDomain/Resources.resx +++ b/src/OrganizationsDomain/Resources.resx @@ -36,16 +36,28 @@ Must be a person to create a 'Shared' organization - + Must be an organization owner to perform this action - + + User must be a member of this organization + + Both the ID of the user and an email for the user is missing This organization has no avatar to delete - - Cannot add another user to a Personal organization + + Cannot add another user to a 'Personal' organization + + + Cannot remove any members from a 'Personal' organization + + + Role '{0}' is not assignable to a user + + + Cannot delete this organization while any others members still exist. They must be removed from the organization first \ No newline at end of file diff --git a/src/OrganizationsDomain/Validations.cs b/src/OrganizationsDomain/Validations.cs index 5da412d6..929180a0 100644 --- a/src/OrganizationsDomain/Validations.cs +++ b/src/OrganizationsDomain/Validations.cs @@ -4,6 +4,9 @@ namespace OrganizationsDomain; public static class Validations { + public static readonly Validation DisplayName = CommonValidations.DescriptiveName(); + public static readonly Validation Role = CommonValidations.RoleLevel; + public static class Avatar { public const long MaxSizeInBytes = 134_217_728; //approx 100MB @@ -14,6 +17,4 @@ public static class Avatar "image/gif" }; } - - public static readonly Validation DisplayName = CommonValidations.DescriptiveName(); } \ No newline at end of file diff --git a/src/OrganizationsInfrastructure.IntegrationTests/OrganizationsApiSpec.cs b/src/OrganizationsInfrastructure.IntegrationTests/OrganizationsApiSpec.cs index 4a1a0cf6..96b9ae33 100644 --- a/src/OrganizationsInfrastructure.IntegrationTests/OrganizationsApiSpec.cs +++ b/src/OrganizationsInfrastructure.IntegrationTests/OrganizationsApiSpec.cs @@ -5,6 +5,7 @@ using FluentAssertions; using Infrastructure.Web.Api.Common; using Infrastructure.Web.Api.Common.Extensions; +using Infrastructure.Web.Api.Operations.Shared.EndUsers; using Infrastructure.Web.Api.Operations.Shared.Identities; using Infrastructure.Web.Api.Operations.Shared.Organizations; using Infrastructure.Web.Interfaces.Clients; @@ -46,12 +47,33 @@ public async Task WhenCreateOrganization_ThenReturnsOrganization() var result = await Api.PostAsync(new CreateOrganizationRequest { - Name = "anorganizationname" + Name = "aname" }, req => req.SetJWTBearerToken(login.AccessToken)); + var organizationId = result.Content.Value.Organization!.Id; result.Content.Value.Organization!.CreatedById.Should().Be(login.User.Id); - result.Content.Value.Organization!.Name.Should().Be("anorganizationname"); + result.Content.Value.Organization!.Name.Should().Be("aname"); result.Content.Value.Organization!.Ownership.Should().Be(OrganizationOwnership.Shared); + + login = await ReAuthenticateUserAsync(login.User); + login.User.Profile!.DefaultOrganizationId.Should().Be(organizationId); + + var members = await Api.GetAsync(new ListMembersForOrganizationRequest + { + Id = organizationId + }, req => req.SetJWTBearerToken(login.AccessToken)); + + members.Content.Value.Members!.Count.Should().Be(1); + members.Content.Value.Members[0].IsDefault.Should().BeTrue(); + members.Content.Value.Members[0].IsOwner.Should().BeTrue(); + members.Content.Value.Members[0].IsRegistered.Should().BeTrue(); + members.Content.Value.Members[0].UserId.Should().Be(login.User.Id); + members.Content.Value.Members[0].EmailAddress.Should().Be(login.User.Profile!.EmailAddress); + members.Content.Value.Members[0].Name.FirstName.Should().Be("persona"); + members.Content.Value.Members[0].Name.LastName.Should().Be("alastname"); + members.Content.Value.Members[0].Classification.Should().Be(UserProfileClassification.Person); + members.Content.Value.Members[0].Roles.Should().ContainInOrder(TenantRoles.BillingAdmin.Name, + TenantRoles.Owner.Name, TenantRoles.Member.Name); } [Fact] @@ -63,7 +85,7 @@ public async Task WhenInviteMembersToOrganization_ThenAddsMembers() var organization = await Api.PostAsync(new CreateOrganizationRequest { - Name = "anorganizationname" + Name = "aname" }, req => req.SetJWTBearerToken(loginA.AccessToken)); loginA = await ReAuthenticateUserAsync(loginA.User); @@ -80,6 +102,7 @@ await Api.PostAsync(new InviteMemberToOrganizationRequest Email = loginC }, req => req.SetJWTBearerToken(loginA.AccessToken)); + //Automatically adds the machine to loginA organization var machine = await Api.PostAsync(new RegisterMachineRequest { Name = "amachinename" @@ -154,7 +177,7 @@ public async Task WhenChangeAvatarByOrgMember_ThenForbidden() var organization = await Api.PostAsync(new CreateOrganizationRequest { - Name = "anorganizationname" + Name = "aname" }, req => req.SetJWTBearerToken(loginA.AccessToken)); loginA = await ReAuthenticateUserAsync(loginA.User); @@ -209,6 +232,336 @@ await Api.PutAsync(new ChangeOrganizationAvatarRequest result.Content.Value.Organization!.AvatarUrl.Should().BeNull(); } + [Fact] + public async Task WhenChangeDetails_ThenDeletes() + { + var login = await LoginUserAsync(); + + var organizationId = login.User.Profile!.DefaultOrganizationId!; + var result = await Api.PutAsync(new ChangeOrganizationRequest + { + Id = organizationId, + Name = "anewname" + }, req => req.SetJWTBearerToken(login.AccessToken)); + + result.Content.Value.Organization!.Name.Should().Be("anewname"); + } + + [Fact] + public async Task WhenUnInviteGuestFromOrganization_ThenRemovesMember() + { + var loginA = await LoginUserAsync(); + var loginC = CreateRandomEmailAddress(); + + var organization = await Api.PostAsync(new CreateOrganizationRequest + { + Name = "aname" + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + loginA = await ReAuthenticateUserAsync(loginA.User); + var organizationId = organization.Content.Value.Organization!.Id; + + await Api.PostAsync(new InviteMemberToOrganizationRequest + { + Id = organizationId, + Email = loginC + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + var members = await Api.GetAsync(new ListMembersForOrganizationRequest + { + Id = organizationId + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + var loginCId = members.Content.Value.Members![1].UserId; + + await Api.DeleteAsync(new UnInviteMemberFromOrganizationRequest + { + Id = organizationId, + UserId = loginCId + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + members = await Api.GetAsync(new ListMembersForOrganizationRequest + { + Id = organizationId + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + members.Content.Value.Members!.Count.Should().Be(1); + members.Content.Value.Members[0].IsDefault.Should().BeTrue(); + members.Content.Value.Members[0].IsOwner.Should().BeTrue(); + members.Content.Value.Members[0].IsRegistered.Should().BeTrue(); + members.Content.Value.Members[0].UserId.Should().Be(loginA.User.Id); + members.Content.Value.Members[0].EmailAddress.Should().Be(loginA.User.Profile!.EmailAddress); + members.Content.Value.Members[0].Name.FirstName.Should().Be("persona"); + members.Content.Value.Members[0].Name.LastName.Should().Be("alastname"); + members.Content.Value.Members[0].Classification.Should().Be(UserProfileClassification.Person); + members.Content.Value.Members[0].Roles.Should().ContainInOrder(TenantRoles.BillingAdmin.Name, + TenantRoles.Owner.Name, TenantRoles.Member.Name); + } + + [Fact] + public async Task WhenUnInviteRegisteredUserFromOrganization_ThenRemovesMember() + { + var loginA = await LoginUserAsync(); + var loginB = await LoginUserAsync(LoginUser.PersonB); + + var organization = await Api.PostAsync(new CreateOrganizationRequest + { + Name = "aname" + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + loginA = await ReAuthenticateUserAsync(loginA.User); + var organizationId = organization.Content.Value.Organization!.Id; + + await Api.PostAsync(new InviteMemberToOrganizationRequest + { + Id = organizationId, + Email = loginB.User.Profile!.EmailAddress + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + var members = await Api.GetAsync(new ListMembersForOrganizationRequest + { + Id = organizationId + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + var loginBId = members.Content.Value.Members![1].UserId; + + await Api.DeleteAsync(new UnInviteMemberFromOrganizationRequest + { + Id = organizationId, + UserId = loginBId + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + members = await Api.GetAsync(new ListMembersForOrganizationRequest + { + Id = organizationId + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + members.Content.Value.Members!.Count.Should().Be(1); + members.Content.Value.Members[0].IsDefault.Should().BeTrue(); + members.Content.Value.Members[0].IsOwner.Should().BeTrue(); + members.Content.Value.Members[0].IsRegistered.Should().BeTrue(); + members.Content.Value.Members[0].UserId.Should().Be(loginA.User.Id); + members.Content.Value.Members[0].EmailAddress.Should().Be(loginA.User.Profile!.EmailAddress); + members.Content.Value.Members[0].Name.FirstName.Should().Be("persona"); + members.Content.Value.Members[0].Name.LastName.Should().Be("alastname"); + members.Content.Value.Members[0].Classification.Should().Be(UserProfileClassification.Person); + members.Content.Value.Members[0].Roles.Should().ContainInOrder(TenantRoles.BillingAdmin.Name, + TenantRoles.Owner.Name, TenantRoles.Member.Name); + + loginB = await ReAuthenticateUserAsync(loginB.User); + var memberships = await Api.GetAsync(new ListMembershipsForCallerRequest(), + req => req.SetJWTBearerToken(loginB.AccessToken)); + + memberships.Content.Value.Memberships!.Count.Should().Be(1); + memberships.Content.Value.Memberships![0].OrganizationId.Should().NotBeNull(); + memberships.Content.Value.Memberships![0].Ownership.Should().Be(OrganizationOwnership.Personal); + } + + [Fact] + public async Task WhenUnInviteMembersFromOrganization_ThenRemovesMembers() + { + var loginA = await LoginUserAsync(); + var loginB = await LoginUserAsync(LoginUser.PersonB); + var loginC = CreateRandomEmailAddress(); + + var organization = await Api.PostAsync(new CreateOrganizationRequest + { + Name = "aname" + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + loginA = await ReAuthenticateUserAsync(loginA.User); + var organizationId = organization.Content.Value.Organization!.Id; + await Api.PostAsync(new InviteMemberToOrganizationRequest + { + Id = organizationId, + Email = loginB.User.Profile!.EmailAddress + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + await Api.PostAsync(new InviteMemberToOrganizationRequest + { + Id = organizationId, + Email = loginC + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + //Automatically adds the machine to loginA organization + await Api.PostAsync(new RegisterMachineRequest + { + Name = "amachinename" + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + var members = await Api.GetAsync(new ListMembersForOrganizationRequest + { + Id = organizationId + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + var loginBId = members.Content.Value.Members![1].UserId; + var loginCId = members.Content.Value.Members![2].UserId; + var machineId = members.Content.Value.Members![3].UserId; + + await Api.DeleteAsync(new UnInviteMemberFromOrganizationRequest + { + Id = organizationId, + UserId = loginBId + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + await Api.DeleteAsync(new UnInviteMemberFromOrganizationRequest + { + Id = organizationId, + UserId = loginCId + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + await Api.DeleteAsync(new UnInviteMemberFromOrganizationRequest + { + Id = organizationId, + UserId = machineId + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + members = await Api.GetAsync(new ListMembersForOrganizationRequest + { + Id = organizationId + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + members.Content.Value.Members!.Count.Should().Be(1); + members.Content.Value.Members[0].IsDefault.Should().BeTrue(); + members.Content.Value.Members[0].IsOwner.Should().BeTrue(); + members.Content.Value.Members[0].IsRegistered.Should().BeTrue(); + members.Content.Value.Members[0].UserId.Should().Be(loginA.User.Id); + members.Content.Value.Members[0].EmailAddress.Should().Be(loginA.User.Profile!.EmailAddress); + members.Content.Value.Members[0].Name.FirstName.Should().Be("persona"); + members.Content.Value.Members[0].Name.LastName.Should().Be("alastname"); + members.Content.Value.Members[0].Classification.Should().Be(UserProfileClassification.Person); + members.Content.Value.Members[0].Roles.Should().ContainInOrder(TenantRoles.BillingAdmin.Name, + TenantRoles.Owner.Name, TenantRoles.Member.Name); + } + + [Fact] + public async Task WhenAssignRoles_ThenAssigns() + { + var loginA = await LoginUserAsync(); + var loginB = await LoginUserAsync(LoginUser.PersonB); + + var organization = await Api.PostAsync(new CreateOrganizationRequest + { + Name = "aname" + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + loginA = await ReAuthenticateUserAsync(loginA.User); + var organizationId = organization.Content.Value.Organization!.Id; + await Api.PostAsync(new InviteMemberToOrganizationRequest + { + Id = organizationId, + Email = loginB.User.Profile!.EmailAddress + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + await Api.PutAsync(new AssignRolesToOrganizationRequest + { + Id = organizationId, + UserId = loginB.User.Id, + Roles = [TenantRoles.Owner.Name] + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + var memberships = await Api.GetAsync(new ListMembershipsForCallerRequest(), + req => req.SetJWTBearerToken(loginB.AccessToken)); + + memberships.Content.Value.Memberships!.Count.Should().Be(2); + memberships.Content.Value.Memberships![0].OrganizationId.Should().NotBeNull(); + memberships.Content.Value.Memberships![0].Ownership.Should().Be(OrganizationOwnership.Personal); + memberships.Content.Value.Memberships![0].Roles.Should().ContainInOrder(TenantRoles.Owner.Name); + memberships.Content.Value.Memberships![1].OrganizationId.Should().Be(organizationId); + memberships.Content.Value.Memberships![1].Ownership.Should().Be(OrganizationOwnership.Shared); + memberships.Content.Value.Memberships![1].Roles.Should() + .ContainInOrder(TenantRoles.Member.Name, TenantRoles.Owner.Name); + } + + [Fact] + public async Task WhenUnassignAssignedRole_ThenUnassigns() + { + var loginA = await LoginUserAsync(); + var loginB = await LoginUserAsync(LoginUser.PersonB); + + var organization = await Api.PostAsync(new CreateOrganizationRequest + { + Name = "aname" + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + loginA = await ReAuthenticateUserAsync(loginA.User); + var organizationId = organization.Content.Value.Organization!.Id; + await Api.PostAsync(new InviteMemberToOrganizationRequest + { + Id = organizationId, + Email = loginB.User.Profile!.EmailAddress + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + await Api.PutAsync(new AssignRolesToOrganizationRequest + { + Id = organizationId, + UserId = loginB.User.Id, + Roles = [TenantRoles.Owner.Name] + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + await Api.PutAsync(new UnassignRolesFromOrganizationRequest + { + Id = organizationId, + UserId = loginB.User.Id, + Roles = [TenantRoles.Owner.Name] + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + var memberships = await Api.GetAsync(new ListMembershipsForCallerRequest(), + req => req.SetJWTBearerToken(loginB.AccessToken)); + + memberships.Content.Value.Memberships!.Count.Should().Be(2); + memberships.Content.Value.Memberships![0].OrganizationId.Should().NotBeNull(); + memberships.Content.Value.Memberships![0].Ownership.Should().Be(OrganizationOwnership.Personal); + memberships.Content.Value.Memberships![0].Roles.Should().ContainInOrder(TenantRoles.Owner.Name); + memberships.Content.Value.Memberships![1].OrganizationId.Should().Be(organizationId); + memberships.Content.Value.Memberships![1].Ownership.Should().Be(OrganizationOwnership.Shared); + memberships.Content.Value.Memberships![1].Roles.Should().ContainInOrder(TenantRoles.Member.Name); + } + + [Fact] + public async Task WhenDeleteAndHasMembers_ThenReturnsError() + { + var loginA = await LoginUserAsync(); + var loginC = CreateRandomEmailAddress(); + + var organization = await Api.PostAsync(new CreateOrganizationRequest + { + Name = "aname" + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + loginA = await ReAuthenticateUserAsync(loginA.User); + var organizationId = organization.Content.Value.Organization!.Id; + + await Api.PostAsync(new InviteMemberToOrganizationRequest + { + Id = organizationId, + Email = loginC + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + var result = await Api.DeleteAsync(new DeleteOrganizationRequest + { + Id = organizationId + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + result.StatusCode.Should().Be(HttpStatusCode.BadRequest); + } + + [Fact] + public async Task WhenDeleteAndHasNoMembers_ThenDeletes() + { + var loginA = await LoginUserAsync(); + + var organization = await Api.PostAsync(new CreateOrganizationRequest + { + Name = "aname" + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + loginA = await ReAuthenticateUserAsync(loginA.User); + var organizationId = organization.Content.Value.Organization!.Id; + + var result = await Api.DeleteAsync(new DeleteOrganizationRequest + { + Id = organizationId + }, req => req.SetJWTBearerToken(loginA.AccessToken)); + + result.StatusCode.Should().Be(HttpStatusCode.NoContent); + } + private static string CreateRandomEmailAddress() { return $"aninvitee{++_invitationCount}@company.com"; diff --git a/src/OrganizationsInfrastructure.UnitTests/Api/Organizations/AssignOrganisationRoleRequestValidatorSpec.cs b/src/OrganizationsInfrastructure.UnitTests/Api/Organizations/AssignOrganisationRoleRequestValidatorSpec.cs new file mode 100644 index 00000000..52e318e4 --- /dev/null +++ b/src/OrganizationsInfrastructure.UnitTests/Api/Organizations/AssignOrganisationRoleRequestValidatorSpec.cs @@ -0,0 +1,66 @@ +using Domain.Common.Identity; +using FluentAssertions; +using FluentValidation; +using Infrastructure.Web.Api.Operations.Shared.Organizations; +using OrganizationsInfrastructure.Api.Organizations; +using UnitTesting.Common.Validation; +using Xunit; + +namespace OrganizationsInfrastructure.UnitTests.Api.Organizations; + +[Trait("Category", "Unit")] +public class AssignOrganisationRoleRequestValidatorSpec +{ + private readonly AssignRolesToOrganizationRequest _dto; + private readonly AssignRolesToOrganizationRequestValidator _validator; + + public AssignOrganisationRoleRequestValidatorSpec() + { + _validator = new AssignRolesToOrganizationRequestValidator(new FixedIdentifierFactory("anid")); + _dto = new AssignRolesToOrganizationRequest + { + Id = "anid", + UserId = "anid", + Roles = ["arole"] + }; + } + + [Fact] + public void WhenAllProperties_ThenSucceeds() + { + _validator.ValidateAndThrow(_dto); + } + + [Fact] + public void WhenRolesIsNull_ThenThrows() + { + _dto.Roles = null!; + + _validator + .Invoking(x => x.ValidateAndThrow(_dto)) + .Should().Throw() + .WithMessageLike(Resources.AssignRolesToOrganizationRequestValidator_InvalidRoles); + } + + [Fact] + public void WhenRolesIsEmpty_ThenThrows() + { + _dto.Roles = []; + + _validator + .Invoking(x => x.ValidateAndThrow(_dto)) + .Should().Throw() + .WithMessageLike(Resources.AssignRolesToOrganizationRequestValidator_InvalidRoles); + } + + [Fact] + public void WhenARoleIsInvalid_ThenThrows() + { + _dto.Roles = ["aninvalidrole^"]; + + _validator + .Invoking(x => x.ValidateAndThrow(_dto)) + .Should().Throw() + .WithMessageLike(Resources.AssignRolesToOrganizationRequestValidator_InvalidRole); + } +} \ No newline at end of file diff --git a/src/OrganizationsInfrastructure.UnitTests/Api/Organizations/ChangeOrganizationRequestValidatorSpec.cs b/src/OrganizationsInfrastructure.UnitTests/Api/Organizations/ChangeOrganizationRequestValidatorSpec.cs new file mode 100644 index 00000000..8889752f --- /dev/null +++ b/src/OrganizationsInfrastructure.UnitTests/Api/Organizations/ChangeOrganizationRequestValidatorSpec.cs @@ -0,0 +1,43 @@ +using Domain.Common.Identity; +using FluentAssertions; +using FluentValidation; +using Infrastructure.Web.Api.Operations.Shared.Organizations; +using OrganizationsInfrastructure.Api.Organizations; +using UnitTesting.Common.Validation; +using Xunit; + +namespace OrganizationsInfrastructure.UnitTests.Api.Organizations; + +[Trait("Category", "Unit")] +public class ChangeOrganizationRequestValidatorSpec +{ + private readonly ChangeOrganizationRequest _dto; + private readonly ChangeOrganizationRequestValidator _validator; + + public ChangeOrganizationRequestValidatorSpec() + { + _validator = new ChangeOrganizationRequestValidator(new FixedIdentifierFactory("anid")); + _dto = new ChangeOrganizationRequest + { + Id = "anid", + Name = "aname" + }; + } + + [Fact] + public void WhenAllProperties_ThenSucceeds() + { + _validator.ValidateAndThrow(_dto); + } + + [Fact] + public void WhenNameIsInvalid_ThenThrows() + { + _dto.Name = "aninvalidname^"; + + _validator + .Invoking(x => x.ValidateAndThrow(_dto)) + .Should().Throw() + .WithMessageLike(Resources.ChangeOrganizationRequestValidator_InvalidName); + } +} \ No newline at end of file diff --git a/src/OrganizationsInfrastructure.UnitTests/Api/Organizations/UnassignOrganisationRoleRequestValidatorSpec.cs b/src/OrganizationsInfrastructure.UnitTests/Api/Organizations/UnassignOrganisationRoleRequestValidatorSpec.cs new file mode 100644 index 00000000..80917a25 --- /dev/null +++ b/src/OrganizationsInfrastructure.UnitTests/Api/Organizations/UnassignOrganisationRoleRequestValidatorSpec.cs @@ -0,0 +1,66 @@ +using Domain.Common.Identity; +using FluentAssertions; +using FluentValidation; +using Infrastructure.Web.Api.Operations.Shared.Organizations; +using OrganizationsInfrastructure.Api.Organizations; +using UnitTesting.Common.Validation; +using Xunit; + +namespace OrganizationsInfrastructure.UnitTests.Api.Organizations; + +[Trait("Category", "Unit")] +public class UnassignOrganisationRoleRequestValidatorSpec +{ + private readonly UnassignRolesFromOrganizationRequest _dto; + private readonly UnassignRolesFromOrganizationRequestValidator _validator; + + public UnassignOrganisationRoleRequestValidatorSpec() + { + _validator = new UnassignRolesFromOrganizationRequestValidator(new FixedIdentifierFactory("anid")); + _dto = new UnassignRolesFromOrganizationRequest + { + Id = "anid", + UserId = "anid", + Roles = ["arole"] + }; + } + + [Fact] + public void WhenAllProperties_ThenSucceeds() + { + _validator.ValidateAndThrow(_dto); + } + + [Fact] + public void WhenRolesIsNull_ThenThrows() + { + _dto.Roles = null!; + + _validator + .Invoking(x => x.ValidateAndThrow(_dto)) + .Should().Throw() + .WithMessageLike(Resources.AssignRolesToOrganizationRequestValidator_InvalidRoles); + } + + [Fact] + public void WhenRolesIsEmpty_ThenThrows() + { + _dto.Roles = []; + + _validator + .Invoking(x => x.ValidateAndThrow(_dto)) + .Should().Throw() + .WithMessageLike(Resources.AssignRolesToOrganizationRequestValidator_InvalidRoles); + } + + [Fact] + public void WhenARoleIsInvalid_ThenThrows() + { + _dto.Roles = ["aninvalidrole^"]; + + _validator + .Invoking(x => x.ValidateAndThrow(_dto)) + .Should().Throw() + .WithMessageLike(Resources.AssignRolesToOrganizationRequestValidator_InvalidRole); + } +} \ No newline at end of file diff --git a/src/OrganizationsInfrastructure/Api/Organizations/AssignRolesToOrganizationRequestValidator.cs b/src/OrganizationsInfrastructure/Api/Organizations/AssignRolesToOrganizationRequestValidator.cs new file mode 100644 index 00000000..e45e52f1 --- /dev/null +++ b/src/OrganizationsInfrastructure/Api/Organizations/AssignRolesToOrganizationRequestValidator.cs @@ -0,0 +1,27 @@ +using Domain.Common.Identity; +using Domain.Interfaces.Validations; +using FluentValidation; +using Infrastructure.Web.Api.Common.Validation; +using Infrastructure.Web.Api.Operations.Shared.Organizations; +using OrganizationsDomain; + +namespace OrganizationsInfrastructure.Api.Organizations; + +public class AssignRolesToOrganizationRequestValidator : AbstractValidator +{ + public AssignRolesToOrganizationRequestValidator(IIdentifierFactory identifierFactory) + { + RuleFor(req => req.Id) + .IsEntityId(identifierFactory) + .WithMessage(CommonValidationResources.AnyValidator_InvalidId); + RuleFor(req => req.UserId) + .IsEntityId(identifierFactory) + .WithMessage(CommonValidationResources.AnyValidator_InvalidId); + RuleFor(req => req.Roles) + .NotEmpty() + .WithMessage(Resources.AssignRolesToOrganizationRequestValidator_InvalidRoles); + RuleFor(req => req.Roles) + .ForEach(req => req.Matches(Validations.Role) + .WithMessage(Resources.AssignRolesToOrganizationRequestValidator_InvalidRole)); + } +} \ No newline at end of file diff --git a/src/OrganizationsInfrastructure/Api/Organizations/ChangeOrganizationRequestValidator.cs b/src/OrganizationsInfrastructure/Api/Organizations/ChangeOrganizationRequestValidator.cs new file mode 100644 index 00000000..6e53e013 --- /dev/null +++ b/src/OrganizationsInfrastructure/Api/Organizations/ChangeOrganizationRequestValidator.cs @@ -0,0 +1,23 @@ +using Common.Extensions; +using Domain.Common.Identity; +using Domain.Interfaces.Validations; +using FluentValidation; +using Infrastructure.Web.Api.Common.Validation; +using Infrastructure.Web.Api.Operations.Shared.Organizations; +using OrganizationsDomain; + +namespace OrganizationsInfrastructure.Api.Organizations; + +public class ChangeOrganizationRequestValidator : AbstractValidator +{ + public ChangeOrganizationRequestValidator(IIdentifierFactory identifierFactory) + { + RuleFor(req => req.Id) + .IsEntityId(identifierFactory) + .WithMessage(CommonValidationResources.AnyValidator_InvalidId); + RuleFor(req => req.Name) + .Matches(Validations.DisplayName) + .When(req => req.Name.Exists()) + .WithMessage(Resources.ChangeOrganizationRequestValidator_InvalidName); + } +} \ No newline at end of file diff --git a/src/OrganizationsInfrastructure/Api/Organizations/CreateOrganizationRequestValidator.cs b/src/OrganizationsInfrastructure/Api/Organizations/CreateOrganizationRequestValidator.cs index 20d3b773..e0bf7ded 100644 --- a/src/OrganizationsInfrastructure/Api/Organizations/CreateOrganizationRequestValidator.cs +++ b/src/OrganizationsInfrastructure/Api/Organizations/CreateOrganizationRequestValidator.cs @@ -9,7 +9,7 @@ public class CreateOrganizationRequestValidator : AbstractValidator x.Name) + RuleFor(req => req.Name) .NotEmpty() .Matches(Validations.DisplayName) .WithMessage(Resources.CreateOrganizationRequestValidator_InvalidName); diff --git a/src/OrganizationsInfrastructure/Api/Organizations/DeleteOrganizationRequestValidator.cs b/src/OrganizationsInfrastructure/Api/Organizations/DeleteOrganizationRequestValidator.cs new file mode 100644 index 00000000..22059a65 --- /dev/null +++ b/src/OrganizationsInfrastructure/Api/Organizations/DeleteOrganizationRequestValidator.cs @@ -0,0 +1,17 @@ +using Domain.Common.Identity; +using Domain.Interfaces.Validations; +using FluentValidation; +using Infrastructure.Web.Api.Common.Validation; +using Infrastructure.Web.Api.Operations.Shared.Organizations; + +namespace OrganizationsInfrastructure.Api.Organizations; + +public class DeleteOrganizationRequestValidator : AbstractValidator +{ + public DeleteOrganizationRequestValidator(IIdentifierFactory identifierFactory) + { + RuleFor(req => req.Id) + .IsEntityId(identifierFactory) + .WithMessage(CommonValidationResources.AnyValidator_InvalidId); + } +} \ No newline at end of file diff --git a/src/OrganizationsInfrastructure/Api/Organizations/GetOrganizationRequestValidator.cs b/src/OrganizationsInfrastructure/Api/Organizations/GetOrganizationRequestValidator.cs index 501e493b..a0c87b62 100644 --- a/src/OrganizationsInfrastructure/Api/Organizations/GetOrganizationRequestValidator.cs +++ b/src/OrganizationsInfrastructure/Api/Organizations/GetOrganizationRequestValidator.cs @@ -10,7 +10,7 @@ public class GetOrganizationRequestValidator : AbstractValidator x.Id) + RuleFor(req => req.Id) .IsEntityId(identifierFactory) .WithMessage(CommonValidationResources.AnyValidator_InvalidId); } diff --git a/src/OrganizationsInfrastructure/Api/Organizations/ListMembersForOrganizationRequestValidator.cs b/src/OrganizationsInfrastructure/Api/Organizations/ListMembersForOrganizationRequestValidator.cs new file mode 100644 index 00000000..84af6730 --- /dev/null +++ b/src/OrganizationsInfrastructure/Api/Organizations/ListMembersForOrganizationRequestValidator.cs @@ -0,0 +1,17 @@ +using Domain.Common.Identity; +using Domain.Interfaces.Validations; +using FluentValidation; +using Infrastructure.Web.Api.Common.Validation; +using Infrastructure.Web.Api.Operations.Shared.Organizations; + +namespace OrganizationsInfrastructure.Api.Organizations; + +public class ListMembersForOrganizationRequestValidator : AbstractValidator +{ + public ListMembersForOrganizationRequestValidator(IIdentifierFactory identifierFactory) + { + RuleFor(req => req.Id) + .IsEntityId(identifierFactory) + .WithMessage(CommonValidationResources.AnyValidator_InvalidId); + } +} \ No newline at end of file diff --git a/src/OrganizationsInfrastructure/Api/Organizations/OrganizationsApi.cs b/src/OrganizationsInfrastructure/Api/Organizations/OrganizationsApi.cs index 73433477..9336a9a1 100644 --- a/src/OrganizationsInfrastructure/Api/Organizations/OrganizationsApi.cs +++ b/src/OrganizationsInfrastructure/Api/Organizations/OrganizationsApi.cs @@ -25,6 +25,17 @@ public OrganizationsApi(IHttpContextAccessor httpContextAccessor, IFileUploadSer _organizationsApplication = organizationsApplication; } + public async Task> AssignRoles( + AssignRolesToOrganizationRequest request, CancellationToken cancellationToken) + { + var organization = await _organizationsApplication.AssignRolesToOrganizationAsync(_contextFactory.Create(), + request.Id!, request.UserId, request.Roles, cancellationToken); + + return () => + organization.HandleApplicationResult(org => + new GetOrganizationResponse { Organization = org }); + } + public async Task> ChangeAvatar( ChangeOrganizationAvatarRequest request, CancellationToken cancellationToken) { @@ -45,6 +56,18 @@ await _organizationsApplication.ChangeAvatarAsync(_contextFactory.Create(), requ new GetOrganizationResponse { Organization = o }); } + public async Task> ChangeOrganization( + ChangeOrganizationRequest request, CancellationToken cancellationToken) + { + var organization = await _organizationsApplication.ChangeDetailsAsync(_contextFactory.Create(), + request.Id!, request.Name, cancellationToken); + + return () => + organization.HandleApplicationResult(org => + new GetOrganizationResponse + { Organization = org }); + } + public async Task> Create(CreateOrganizationRequest request, CancellationToken cancellationToken) { @@ -56,6 +79,15 @@ await _organizationsApplication.CreateSharedOrganizationAsync(_contextFactory.Cr new PostResult(new GetOrganizationResponse { Organization = org })); } + public async Task Delete(DeleteOrganizationRequest request, CancellationToken cancellationToken) + { + var organization = + await _organizationsApplication.DeleteOrganizationAsync(_contextFactory.Create(), request.Id, + cancellationToken); + + return () => organization.HandleApplicationResult(); + } + public async Task> DeleteAvatar( DeleteOrganizationAvatarRequest request, CancellationToken cancellationToken) { @@ -123,4 +155,26 @@ await _organizationsApplication.ListMembersForOrganizationAsync(_contextFactory. members.HandleApplicationResult(m => new ListMembersForOrganizationResponse { Members = m.Results, Metadata = m.Metadata }); } + + public async Task> UnassignRoles( + UnassignRolesFromOrganizationRequest request, CancellationToken cancellationToken) + { + var organization = await _organizationsApplication.UnassignRolesFromOrganizationAsync(_contextFactory.Create(), + request.Id!, request.UserId, request.Roles, cancellationToken); + + return () => + organization.HandleApplicationResult(org => + new GetOrganizationResponse { Organization = org }); + } + + public async Task> UnInviteMember( + UnInviteMemberFromOrganizationRequest request, CancellationToken cancellationToken) + { + var organization = await _organizationsApplication.UnInviteMemberFromOrganizationAsync(_contextFactory.Create(), + request.Id!, request.UserId, cancellationToken); + + return () => + organization.HandleApplicationResult(org => + new UnInviteMemberFromOrganizationResponse { Organization = org }); + } } \ No newline at end of file diff --git a/src/OrganizationsInfrastructure/Api/Organizations/UnInviteMemberFromOrganizationRequestValidator.cs b/src/OrganizationsInfrastructure/Api/Organizations/UnInviteMemberFromOrganizationRequestValidator.cs new file mode 100644 index 00000000..8b641571 --- /dev/null +++ b/src/OrganizationsInfrastructure/Api/Organizations/UnInviteMemberFromOrganizationRequestValidator.cs @@ -0,0 +1,20 @@ +using Domain.Common.Identity; +using Domain.Interfaces.Validations; +using FluentValidation; +using Infrastructure.Web.Api.Common.Validation; +using Infrastructure.Web.Api.Operations.Shared.Organizations; + +namespace OrganizationsInfrastructure.Api.Organizations; + +public class UnInviteMemberFromOrganizationRequestValidator : AbstractValidator +{ + public UnInviteMemberFromOrganizationRequestValidator(IIdentifierFactory identifierFactory) + { + RuleFor(req => req.Id) + .IsEntityId(identifierFactory) + .WithMessage(CommonValidationResources.AnyValidator_InvalidId); + RuleFor(req => req.UserId) + .IsEntityId(identifierFactory) + .WithMessage(CommonValidationResources.AnyValidator_InvalidId); + } +} \ No newline at end of file diff --git a/src/OrganizationsInfrastructure/Api/Organizations/UnassignRolesFromOrganizationRequestValidator.cs b/src/OrganizationsInfrastructure/Api/Organizations/UnassignRolesFromOrganizationRequestValidator.cs new file mode 100644 index 00000000..2c20ad4b --- /dev/null +++ b/src/OrganizationsInfrastructure/Api/Organizations/UnassignRolesFromOrganizationRequestValidator.cs @@ -0,0 +1,27 @@ +using Domain.Common.Identity; +using Domain.Interfaces.Validations; +using FluentValidation; +using Infrastructure.Web.Api.Common.Validation; +using Infrastructure.Web.Api.Operations.Shared.Organizations; +using OrganizationsDomain; + +namespace OrganizationsInfrastructure.Api.Organizations; + +public class UnassignRolesFromOrganizationRequestValidator : AbstractValidator +{ + public UnassignRolesFromOrganizationRequestValidator(IIdentifierFactory identifierFactory) + { + RuleFor(req => req.Id) + .IsEntityId(identifierFactory) + .WithMessage(CommonValidationResources.AnyValidator_InvalidId); + RuleFor(req => req.UserId) + .IsEntityId(identifierFactory) + .WithMessage(CommonValidationResources.AnyValidator_InvalidId); + RuleFor(req => req.Roles) + .NotEmpty() + .WithMessage(Resources.AssignRolesToOrganizationRequestValidator_InvalidRoles); + RuleFor(req => req.Roles) + .ForEach(req => req.Matches(Validations.Role) + .WithMessage(Resources.AssignRolesToOrganizationRequestValidator_InvalidRole)); + } +} \ No newline at end of file diff --git a/src/OrganizationsInfrastructure/Notifications/OrganizationNotificationConsumer.cs b/src/OrganizationsInfrastructure/Notifications/OrganizationNotificationConsumer.cs index 242f4edb..6665f3ad 100644 --- a/src/OrganizationsInfrastructure/Notifications/OrganizationNotificationConsumer.cs +++ b/src/OrganizationsInfrastructure/Notifications/OrganizationNotificationConsumer.cs @@ -27,6 +27,14 @@ public async Task> NotifyAsync(IDomainEvent domainEvent, Cancellat return await _organizationsApplication.HandleEndUserRegisteredAsync(_callerContextFactory.Create(), registered, cancellationToken); + case MembershipAdded added: + return await _organizationsApplication.HandleEndUserMembershipAddedAsync( + _callerContextFactory.Create(), added, cancellationToken); + + case MembershipRemoved removed: + return await _organizationsApplication.HandleEndUserMembershipRemovedAsync( + _callerContextFactory.Create(), removed, cancellationToken); + default: return Result.Ok; } diff --git a/src/OrganizationsInfrastructure/Persistence/ReadModels/OrganizationProjection.cs b/src/OrganizationsInfrastructure/Persistence/ReadModels/OrganizationProjection.cs index 2e256e78..7ae93188 100644 --- a/src/OrganizationsInfrastructure/Persistence/ReadModels/OrganizationProjection.cs +++ b/src/OrganizationsInfrastructure/Persistence/ReadModels/OrganizationProjection.cs @@ -1,7 +1,7 @@ using Application.Persistence.Common.Extensions; using Application.Persistence.Interfaces; using Common; -using Domain.Common.ValueObjects; +using Domain.Common.Events; using Domain.Events.Shared.Organizations; using Domain.Interfaces; using Domain.Interfaces.Entities; @@ -29,7 +29,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven switch (changeEvent) { case Created e: - return await _organizations.HandleCreateAsync(e.RootId.ToId(), dto => + return await _organizations.HandleCreateAsync(e.RootId, dto => { dto.Name = e.Name; dto.Ownership = e.Ownership; @@ -43,8 +43,17 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven case MembershipAdded _: return true; + case MembershipRemoved _: + return true; + + case MemberInvited _: + return true; + + case MemberUnInvited _: + return true; + case AvatarAdded e: - return await _organizations.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _organizations.HandleUpdateAsync(e.RootId, dto => { dto.AvatarId = e.AvatarId; dto.AvatarUrl = e.AvatarUrl; @@ -52,13 +61,26 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven cancellationToken); case AvatarRemoved e: - return await _organizations.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _organizations.HandleUpdateAsync(e.RootId, dto => { dto.AvatarId = Optional.None; dto.AvatarUrl = Optional.None; }, cancellationToken); + case NameChanged e: + return await _organizations.HandleUpdateAsync(e.RootId, dto => { dto.Name = e.Name; }, + cancellationToken); + + case RoleAssigned _: + return true; + + case RoleUnassigned _: + return true; + + case Global.StreamDeleted e: + return await _organizations.HandleDeleteAsync(e.RootId, cancellationToken); + default: return false; } diff --git a/src/OrganizationsInfrastructure/Resources.Designer.cs b/src/OrganizationsInfrastructure/Resources.Designer.cs index 4068e4a4..7e1758c6 100644 --- a/src/OrganizationsInfrastructure/Resources.Designer.cs +++ b/src/OrganizationsInfrastructure/Resources.Designer.cs @@ -59,6 +59,33 @@ internal Resources() { } } + /// + /// Looks up a localized string similar to The 'Role' is invalid. + /// + internal static string AssignRolesToOrganizationRequestValidator_InvalidRole { + get { + return ResourceManager.GetString("AssignRolesToOrganizationRequestValidator_InvalidRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The 'Roles' is either empty or contains invalid roles. + /// + internal static string AssignRolesToOrganizationRequestValidator_InvalidRoles { + get { + return ResourceManager.GetString("AssignRolesToOrganizationRequestValidator_InvalidRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The 'Name' is invalid. + /// + internal static string ChangeOrganizationRequestValidator_InvalidName { + get { + return ResourceManager.GetString("ChangeOrganizationRequestValidator_InvalidName", resourceCulture); + } + } + /// /// Looks up a localized string similar to The 'Name' is either missing or invalid. /// diff --git a/src/OrganizationsInfrastructure/Resources.resx b/src/OrganizationsInfrastructure/Resources.resx index 79c7f5e3..2b5acf90 100644 --- a/src/OrganizationsInfrastructure/Resources.resx +++ b/src/OrganizationsInfrastructure/Resources.resx @@ -36,4 +36,13 @@ Only the 'Email' or the 'UserId' can be provided, not both + + The 'Name' is invalid + + + The 'Roles' is either empty or contains invalid roles + + + The 'Role' is invalid + \ No newline at end of file diff --git a/src/SaaStack.sln.DotSettings b/src/SaaStack.sln.DotSettings index 45f85459..33354bc2 100644 --- a/src/SaaStack.sln.DotSettings +++ b/src/SaaStack.sln.DotSettings @@ -338,6 +338,7 @@ True True True + True True True True @@ -559,7 +560,7 @@ using Domain.Common; using Domain.Common.ValueObjects; public sealed class $name$ : SingleValueObjectBase<$name$, $datatype$> -{ +{$END$$SELECTION$ public static Result<$name$, Error> Create($datatype$ value) { if (value.IsNotValuedParameter(nameof(value), out var error)) @@ -582,7 +583,7 @@ public sealed class $name$ : SingleValueObjectBase<$name$, $datatype$> return new $name$(parts[0]); }; } -}$END$$SELECTION$ +} True True A DELETE API definition @@ -601,7 +602,7 @@ public sealed class $name$ : SingleValueObjectBase<$name$, $datatype$> deleteapi True public async Task<ApiDeleteResult> $Action$$Resource$($Action$$Resource$Request request, CancellationToken cancellationToken) -{ +{$END$$SELECTION$ var $resource$ = await _application.$Action$$Resource$Async(_contextFactory.Create(), request.Id, cancellationToken); return () => $resource$.HandleApplicationResult(); @@ -644,7 +645,7 @@ using Domain.Common; using Domain.Common.ValueObjects; public sealed class $name$ : ValueObjectBase<$name$> -{ +{$END$$SELECTION$ public static Result<$name$, Error> Create($datatype$ $value1$, $datatype$ $value2$, $datatype$ $value3$) { if ($value1$.IsNotValuedParameter(nameof($value1$), out var error1)) @@ -689,7 +690,7 @@ public sealed class $name$ : ValueObjectBase<$name$> public $datatype$ $param2$ { get; } public $datatype$ $param3$ { get; } -}$END$$SELECTION$ +} True True cs @@ -757,7 +758,7 @@ public class $Action$$Resource$RequestValidator : AbstractValidator<$Action$$ postapi True public async Task<ApiPostResult<$Resource$, $Action$$Resource$Response>> $Action$$Resource$($Action$$Resource$Request request, CancellationToken cancellationToken) -{ +{$END$$SELECTION$ var $resource$ = await _application.$Action$$Resource$Async(_contextFactory.Create(), request.Id, cancellationToken); return () => $resource$.HandleApplicationResult<$Resource$, $Action$$Resource$Response>(x => new PostResult<$Action$$Resource$Response>(new $Action$$Resource$Response { $Resource$ = x })); @@ -820,11 +821,12 @@ public sealed class $class$ : DomainEvent searchapi True public async Task<ApiSearchResult<$Resource$, $Action$$Resource$sResponse>> $Action$$Resource$s($Action$$Resource$sRequest request, CancellationToken cancellationToken) -{ +{$END$$SELECTION$ var $resource$s = await _application.$Action$$Resource$sAsync(_contextFactory.Create(), request.ToSearchOptions(), request.ToGetOptions(), cancellationToken); return () => $resource$s.HandleApplicationResult(x => new $Action$$Resource$sResponse { $Resource$s = x.Results, Metadata = x.Metadata }); } + False False True True @@ -1011,7 +1013,7 @@ public class $filename$ [Fact] public async Task When$condition$_Then$outcome$() { - $END$ + Assert.Fail();$END$ } True True @@ -1083,6 +1085,7 @@ public class $Action$$Resource$Response : SearchResponse public List<$Resource$>? $Resource$s { get; set; } } SaaStack + False True True cs @@ -1194,6 +1197,7 @@ public class $Action$$Resource$Response : IWebResponse #if TESTINGONLY $SELECTION$$END$ #endif + False True True A GET API definition @@ -1212,7 +1216,7 @@ public class $Action$$Resource$Response : IWebResponse getapi True public async Task<ApiGetResult<$Resource$, $Action$$Resource$Response>> $Action$$Resource$($Action$$Resource$Request request, CancellationToken cancellationToken) -{ +{$END$$SELECTION$ var $resource$ = await _application.$Action$$Resource$Async(_contextFactory.Create(), request.Id, cancellationToken); return () => $resource$.HandleApplicationResult<$Resource$, $Action$$Resource$Response>(x => new $Action$$Resource$Response { $Resource$ = x }); @@ -1251,7 +1255,7 @@ using QueryAny; // TODO: DELETE this attribute if EventSourcing, LEAVE if Snapshotting [EntityName("$name$")] public sealed class $name$Root : AggregateRootBase -{ +{$END$$SELECTION$ public static Result<$name$Root, Error> Create(IRecorder recorder, IIdentifierFactory idFactory, Identifier organizationId) { var root = new $name$Root(recorder, idFactory); @@ -1339,36 +1343,19 @@ public sealed class $name$Root : AggregateRootBase public Name? $propertyname$ { get; private set; } public Identifier OrganizationId { get; private set; } = Identifier.Empty(); -}$END$$SELECTION$ - True - True - A DDD domain event - True - 0 - True - True - 2.0 - InCSharpFile - domainevent - True - public sealed class $name$ : IDomainEvent -{ - public static $name$ Create(Identifier id, Identifier organizationId) - { - return new $name$ - { - RootId = id, - OrganizationId = organizationId, - OccurredUtc = DateTime.UtcNow - }; - } - - public required string OrganizationId { get; set; } - - public required string RootId { get; set; } - - public required DateTime OccurredUtc { get; set; } -}$END$$SELECTION$ +} + False + + + + + + + + + + + True True A PUTPATCH API definition @@ -1387,7 +1374,7 @@ public sealed class $name$Root : AggregateRootBase putpatchapi True public async Task<ApiPutPatchResult<$Resource$, $Action$$Resource$Response>> $Action$$Resource$($Action$$Resource$Request request, CancellationToken cancellationToken) -{ +{$END$$SELECTION$ var $resource$ = await _application.$Action$$Resource$Async(_contextFactory.Create(), request.Id, cancellationToken); return () => $resource$.HandleApplicationResult<$Resource$, $Action$$Resource$Response>(x => new $Action$$Resource$Response { $Resource$ = x }); @@ -1408,8 +1395,9 @@ public sealed class $name$Root : AggregateRootBase [Fact] public void When$condition$_Then$outcome$() { - $END$ + Assert.Fail();$END$ } + False True True True diff --git a/src/UserProfilesApplication.UnitTests/UserProfileApplication.DomainEventHandlersSpec.cs b/src/UserProfilesApplication.UnitTests/UserProfileApplication.DomainEventHandlersSpec.cs index d4ad48d5..d4faa65c 100644 --- a/src/UserProfilesApplication.UnitTests/UserProfileApplication.DomainEventHandlersSpec.cs +++ b/src/UserProfilesApplication.UnitTests/UserProfileApplication.DomainEventHandlersSpec.cs @@ -207,14 +207,14 @@ public async Task WhenHandleEndUserRegisteredAsyncForPersonAndHasDefaultAvatar_T [Fact] public async Task WhenHandleEndUserDefaultOrganizationChangedAsync_ThenSetsDefaultOrganization() { - var domainEvent = Events.MembershipDefaultChanged("auserid".ToId(), "amembershipid".ToId(), + var domainEvent = Events.DefaultMembershipChanged("auserid".ToId(), "amembershipid".ToId(), "amembershipid".ToId(), "anorganizationid".ToId(), Roles.Empty, Features.Empty); var user = UserProfileRoot.Create(_recorder.Object, _idFactory.Object, ProfileType.Person, "auserid".ToId(), PersonName.Create("afirstname", "alastname").Value).Value; _repository.Setup(rep => rep.FindByUserIdAsync(It.IsAny(), It.IsAny())) .ReturnsAsync(user.ToOptional()); - var result = await _application.HandleEndUserDefaultOrganizationChangedAsync(_caller.Object, + var result = await _application.HandleEndUserDefaultMembershipChangedAsync(_caller.Object, domainEvent, CancellationToken.None); result.Should().BeSuccess(); diff --git a/src/UserProfilesApplication/IUserProfilesApplication.DomainEventHandlers.cs b/src/UserProfilesApplication/IUserProfilesApplication.DomainEventHandlers.cs index 6b0fb0b9..24e37804 100644 --- a/src/UserProfilesApplication/IUserProfilesApplication.DomainEventHandlers.cs +++ b/src/UserProfilesApplication/IUserProfilesApplication.DomainEventHandlers.cs @@ -9,7 +9,7 @@ partial interface IUserProfilesApplication Task> HandleEndUserRegisteredAsync(ICallerContext caller, Registered domainEvent, CancellationToken cancellationToken); - Task> HandleEndUserDefaultOrganizationChangedAsync(ICallerContext caller, - MembershipDefaultChanged domainEvent, + Task> HandleEndUserDefaultMembershipChangedAsync(ICallerContext caller, + DefaultMembershipChanged domainEvent, CancellationToken cancellationToken); } \ No newline at end of file diff --git a/src/UserProfilesApplication/IUserProfilesApplication.cs b/src/UserProfilesApplication/IUserProfilesApplication.cs index 03e76c11..5cb236f5 100644 --- a/src/UserProfilesApplication/IUserProfilesApplication.cs +++ b/src/UserProfilesApplication/IUserProfilesApplication.cs @@ -27,7 +27,7 @@ Task, Error>> FindPersonByEmailAddressAsync(ICaller Task, Error>> GetAllProfilesAsync(ICallerContext caller, List ids, GetOptions options, CancellationToken cancellationToken); - Task> GetCurrentUserProfileAsync(ICallerContext caller, + Task> GetCurrentUserProfileAsync(ICallerContext caller, CancellationToken cancellationToken); Task> GetProfileAsync(ICallerContext caller, string userId, diff --git a/src/UserProfilesApplication/UserProfilesApplication.DomainEventHandlers.cs b/src/UserProfilesApplication/UserProfilesApplication.DomainEventHandlers.cs index 6519c5c7..f158faaf 100644 --- a/src/UserProfilesApplication/UserProfilesApplication.DomainEventHandlers.cs +++ b/src/UserProfilesApplication/UserProfilesApplication.DomainEventHandlers.cs @@ -29,8 +29,8 @@ await CreateProfileAsync(caller, classification, domainEvent.RootId, domainEvent return Result.Ok; } - public async Task> HandleEndUserDefaultOrganizationChangedAsync(ICallerContext caller, - MembershipDefaultChanged domainEvent, + public async Task> HandleEndUserDefaultMembershipChangedAsync(ICallerContext caller, + DefaultMembershipChanged domainEvent, CancellationToken cancellationToken) { var profile = await UpdateDefaultOrganizationAsync(caller, domainEvent.RootId, domainEvent.ToOrganizationId, diff --git a/src/UserProfilesApplication/UserProfilesApplication.cs b/src/UserProfilesApplication/UserProfilesApplication.cs index 853766ed..0ae2e157 100644 --- a/src/UserProfilesApplication/UserProfilesApplication.cs +++ b/src/UserProfilesApplication/UserProfilesApplication.cs @@ -130,12 +130,12 @@ public async Task, Error>> FindPersonByEmailAddress return Optional.None; } - public async Task> GetCurrentUserProfileAsync(ICallerContext caller, + public async Task> GetCurrentUserProfileAsync(ICallerContext caller, CancellationToken cancellationToken) { if (!caller.IsAuthenticated) { - return new UserProfileForCurrent + return new UserProfileForCaller { Address = new ProfileAddress { @@ -381,7 +381,6 @@ public async Task, Error>> GetAllProfilesAsync(ICallerC .ToList(); } - private async Task> ChangeAvatarInternalAsync(ICallerContext caller, Identifier modifierId, UserProfileRoot profile, FileUpload upload, CancellationToken cancellationToken) { @@ -406,9 +405,9 @@ private async Task> ChangeAvatarInternalAsync(ICallerContext calle internal static class UserProfileConversionExtensions { - public static UserProfileForCurrent ToCurrentProfile(this UserProfileRoot profile, ICallerContext caller) + public static UserProfileForCaller ToCurrentProfile(this UserProfileRoot profile, ICallerContext caller) { - var dto = profile.ToProfile().Convert(); + var dto = profile.ToProfile().Convert(); dto.IsAuthenticated = caller.IsAuthenticated; dto.Roles = caller.Roles.Platform.Select(rol => rol.Name).ToList(); dto.Features = caller.Features.Platform.Select(feat => feat.Name).ToList(); diff --git a/src/UserProfilesInfrastructure.IntegrationTests/UserProfileApiSpec.cs b/src/UserProfilesInfrastructure.IntegrationTests/UserProfileApiSpec.cs index 091cbb89..f148b8e1 100644 --- a/src/UserProfilesInfrastructure.IntegrationTests/UserProfileApiSpec.cs +++ b/src/UserProfilesInfrastructure.IntegrationTests/UserProfileApiSpec.cs @@ -157,9 +157,9 @@ await Api.PutAsync(new ChangeProfileAvatarRequest } [Fact] - public async Task WhenGetCurrentUserForAnonymous_ThenNotAuthenticated() + public async Task WhenGetProfileForCallerForAnonymous_ThenNotAuthenticated() { - var result = await Api.GetAsync(new GetCurrentProfileRequest()); + var result = await Api.GetAsync(new GetProfileForCallerRequest()); result.Content.Value.Profile!.IsAuthenticated.Should().BeFalse(); result.Content.Value.Profile.Id.Should().Be(CallerConstants.AnonymousUserId); @@ -168,11 +168,11 @@ public async Task WhenGetCurrentUserForAnonymous_ThenNotAuthenticated() } [Fact] - public async Task WhenGetCurrentUserForAuthenticated_ThenAuthenticated() + public async Task WhenGetProfileForCallerForAuthenticated_ThenAuthenticated() { var login = await LoginUserAsync(); - var result = await Api.GetAsync(new GetCurrentProfileRequest(), + var result = await Api.GetAsync(new GetProfileForCallerRequest(), req => req.SetJWTBearerToken(login.AccessToken)); result.Content.Value.Profile!.IsAuthenticated.Should().BeTrue(); diff --git a/src/UserProfilesInfrastructure/Api/Profiles/UserProfilesApi.cs b/src/UserProfilesInfrastructure/Api/Profiles/UserProfilesApi.cs index a7905a95..3ed37a30 100644 --- a/src/UserProfilesInfrastructure/Api/Profiles/UserProfilesApi.cs +++ b/src/UserProfilesInfrastructure/Api/Profiles/UserProfilesApi.cs @@ -84,14 +84,14 @@ await _userProfilesApplication.DeleteProfileAvatarAsync(_contextFactory.Create() new DeleteProfileAvatarResponse { Profile = pro }); } - public async Task> GetCurrentProfile( - GetCurrentProfileRequest request, CancellationToken cancellationToken) + public async Task> GetProfileForCaller( + GetProfileForCallerRequest request, CancellationToken cancellationToken) { var profile = await _userProfilesApplication.GetCurrentUserProfileAsync(_contextFactory.Create(), cancellationToken); return () => - profile.HandleApplicationResult(pro => - new GetCurrentProfileResponse { Profile = pro }); + profile.HandleApplicationResult(pro => + new GetProfileForCallerResponse { Profile = pro }); } } \ No newline at end of file diff --git a/src/UserProfilesInfrastructure/Notifications/UserProfileNotificationConsumer.cs b/src/UserProfilesInfrastructure/Notifications/UserProfileNotificationConsumer.cs index 231aad91..ecd73129 100644 --- a/src/UserProfilesInfrastructure/Notifications/UserProfileNotificationConsumer.cs +++ b/src/UserProfilesInfrastructure/Notifications/UserProfileNotificationConsumer.cs @@ -27,8 +27,8 @@ public async Task> NotifyAsync(IDomainEvent domainEvent, Cancellat return await _userProfilesApplication.HandleEndUserRegisteredAsync(_callerContextFactory.Create(), registered, cancellationToken); - case MembershipDefaultChanged changed: - return await _userProfilesApplication.HandleEndUserDefaultOrganizationChangedAsync( + case DefaultMembershipChanged changed: + return await _userProfilesApplication.HandleEndUserDefaultMembershipChangedAsync( _callerContextFactory.Create(), changed, cancellationToken); diff --git a/src/UserProfilesInfrastructure/Persistence/ReadModels/UserProfileProjection.cs b/src/UserProfilesInfrastructure/Persistence/ReadModels/UserProfileProjection.cs index 614e3d93..8d839848 100644 --- a/src/UserProfilesInfrastructure/Persistence/ReadModels/UserProfileProjection.cs +++ b/src/UserProfilesInfrastructure/Persistence/ReadModels/UserProfileProjection.cs @@ -1,7 +1,6 @@ using Application.Persistence.Common.Extensions; using Application.Persistence.Interfaces; using Common; -using Domain.Common.ValueObjects; using Domain.Events.Shared.UserProfiles; using Domain.Interfaces; using Domain.Interfaces.Entities; @@ -29,7 +28,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven switch (changeEvent) { case Created e: - return await _users.HandleCreateAsync(e.RootId.ToId(), dto => + return await _users.HandleCreateAsync(e.RootId, dto => { dto.Type = e.Type; dto.UserId = e.UserId; @@ -39,34 +38,34 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven }, cancellationToken); case NameChanged e: - return await _users.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _users.HandleUpdateAsync(e.RootId, dto => { dto.FirstName = e.FirstName; dto.LastName = e.LastName; }, cancellationToken); case DisplayNameChanged e: - return await _users.HandleUpdateAsync(e.RootId.ToId(), dto => { dto.DisplayName = e.DisplayName; }, + return await _users.HandleUpdateAsync(e.RootId, dto => { dto.DisplayName = e.DisplayName; }, cancellationToken); case EmailAddressChanged e: - return await _users.HandleUpdateAsync(e.RootId.ToId(), dto => { dto.EmailAddress = e.EmailAddress; }, + return await _users.HandleUpdateAsync(e.RootId, dto => { dto.EmailAddress = e.EmailAddress; }, cancellationToken); case PhoneNumberChanged e: - return await _users.HandleUpdateAsync(e.RootId.ToId(), dto => { dto.PhoneNumber = e.Number; }, + return await _users.HandleUpdateAsync(e.RootId, dto => { dto.PhoneNumber = e.Number; }, cancellationToken); case TimezoneChanged e: - return await _users.HandleUpdateAsync(e.RootId.ToId(), dto => { dto.Timezone = e.Timezone; }, + return await _users.HandleUpdateAsync(e.RootId, dto => { dto.Timezone = e.Timezone; }, cancellationToken); case ContactAddressChanged e: - return await _users.HandleUpdateAsync(e.RootId.ToId(), dto => { dto.CountryCode = e.CountryCode; }, + return await _users.HandleUpdateAsync(e.RootId, dto => { dto.CountryCode = e.CountryCode; }, cancellationToken); case AvatarAdded e: - return await _users.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _users.HandleUpdateAsync(e.RootId, dto => { dto.AvatarId = e.AvatarId; dto.AvatarUrl = e.AvatarUrl; @@ -74,7 +73,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven cancellationToken); case AvatarRemoved e: - return await _users.HandleUpdateAsync(e.RootId.ToId(), dto => + return await _users.HandleUpdateAsync(e.RootId, dto => { dto.AvatarId = Optional.None; dto.AvatarUrl = Optional.None; @@ -82,7 +81,7 @@ public async Task> ProjectEventAsync(IDomainEvent changeEven cancellationToken); case DefaultOrganizationChanged e: - return await _users.HandleUpdateAsync(e.RootId.ToId(), + return await _users.HandleUpdateAsync(e.RootId, dto => { dto.DefaultOrganizationId = e.ToOrganizationId; }, cancellationToken);

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 delta 196592 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