Skip to content

Commit

Permalink
Sideload invites for service accounts/oidc providers (#1173)
Browse files Browse the repository at this point in the history
  • Loading branch information
michaeljguarino authored Jul 21, 2023
1 parent 4f9d2d3 commit 9d7fee2
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 2 deletions.
3 changes: 2 additions & 1 deletion apps/core/lib/core/schema/oidc_provider.ex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
defmodule Core.Schema.OIDCProvider do
use Piazza.Ecto.Schema
alias Core.Schema.{Installation, OIDCProviderBinding}
alias Core.Schema.{Installation, OIDCProviderBinding, Invite}

defenum AuthMethod, post: 0, basic: 1

Expand All @@ -15,6 +15,7 @@ defmodule Core.Schema.OIDCProvider do

belongs_to :installation, Installation

has_many :invites, Invite, foreign_key: :oidc_provider_id
has_many :bindings, OIDCProviderBinding,
on_replace: :delete,
foreign_key: :provider_id
Expand Down
4 changes: 3 additions & 1 deletion apps/core/lib/core/schema/user.ex
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ defmodule Core.Schema.User do
ImpersonationPolicy,
GroupMember,
Role,
DemoProject
DemoProject,
Invite
}

@email_re ~r/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9-\.]+\.[a-zA-Z]{2,}$/
Expand Down Expand Up @@ -78,6 +79,7 @@ defmodule Core.Schema.User do
has_one :impersonation_policy, ImpersonationPolicy, on_replace: :delete
has_one :demo_project, DemoProject

has_many :invites, Invite, foreign_key: :service_account_id
has_many :webhooks, Webhook
has_many :role_bindings, RoleBinding
many_to_many :groups, Group, join_through: "group_members"
Expand Down
1 change: 1 addition & 0 deletions apps/graphql/lib/graphql/resolvers/account.ex
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ defmodule GraphQl.Resolvers.Account do
def query(Role, _), do: Role
def query(RoleBinding, _), do: RoleBinding
def query(GroupMember, _), do: GroupMember
def query(Invite, _), do: Invite
def query(IntegrationWebhook, _), do: IntegrationWebhook
def query(WebhookLog, _), do: WebhookLog
def query(DomainMapping, _), do: DomainMapping
Expand Down
1 change: 1 addition & 0 deletions apps/graphql/lib/graphql/schema/repository.ex
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,7 @@ defmodule GraphQl.Schema.Repository do

field :consent, :consent_request

field :invites, list_of(:invite), resolve: dataloader(Account)
field :bindings, list_of(:oidc_provider_binding), resolve: dataloader(Repository)

timestamps()
Expand Down
1 change: 1 addition & 0 deletions apps/graphql/lib/graphql/schema/user.ex
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ defmodule GraphQl.Schema.User do
field :publisher, :publisher, resolve: dataloader(User)
field :account, non_null(:account), resolve: dataloader(Account)
field :impersonation_policy, :impersonation_policy, resolve: dataloader(User)
field :invites, list_of(:invite), resolve: dataloader(Account)

field :jwt, :string, resolve: fn
%{jwt: jwt}, _, _ when is_binary(jwt) -> {:ok, jwt}
Expand Down

0 comments on commit 9d7fee2

Please sign in to comment.