diff --git a/backend/src/app/migrations.clj b/backend/src/app/migrations.clj index e43cc92f8..5c89f83e2 100644 --- a/backend/src/app/migrations.clj +++ b/backend/src/app/migrations.clj @@ -424,7 +424,10 @@ :fn (mg/resource "app/migrations/sql/0133-mod-file-table.sql")} {:name "0134-mod-file-change-table" - :fn (mg/resource "app/migrations/sql/0134-mod-file-change-table.sql")}]) + :fn (mg/resource "app/migrations/sql/0134-mod-file-change-table.sql")} + + {:name "0135-mod-team-invitation-table.sql" + :fn (mg/resource "app/migrations/sql/0135-mod-team-invitation-table.sql")}]) (defn apply-migrations! [pool name migrations] diff --git a/backend/src/app/migrations/sql/0135-mod-team-invitation-table.sql b/backend/src/app/migrations/sql/0135-mod-team-invitation-table.sql new file mode 100644 index 000000000..8662f89d4 --- /dev/null +++ b/backend/src/app/migrations/sql/0135-mod-team-invitation-table.sql @@ -0,0 +1,2 @@ +ALTER TABLE team_invitation + ADD COLUMN created_by uuid NULL REFERENCES profile(id) ON DELETE SET NULL; diff --git a/backend/src/app/rpc/commands/teams.clj b/backend/src/app/rpc/commands/teams.clj index 35fe16ea6..5bb92c5df 100644 --- a/backend/src/app/rpc/commands/teams.clj +++ b/backend/src/app/rpc/commands/teams.clj @@ -759,8 +759,8 @@ ;; --- Mutation: Create Team Invitation (def sql:upsert-team-invitation - "insert into team_invitation(id, team_id, email_to, role, valid_until) - values (?, ?, ?, ?, ?) + "insert into team_invitation(id, team_id, email_to, role, valid_until, created_by) + values (?, ?, ?, ?, ?, ?) on conflict(team_id, email_to) do update set role = ?, valid_until = ?, updated_at = now() returning *") @@ -853,6 +853,7 @@ invitation (db/exec-one! conn [sql:upsert-team-invitation id (:id team) (str/lower email) (name role) expire + (:id profile) (name role) expire]) updated? (not= id (:id invitation)) profile-id (:id profile) diff --git a/backend/src/app/rpc/commands/verify_token.clj b/backend/src/app/rpc/commands/verify_token.clj index 7f0dd6b5f..5a318eb4e 100644 --- a/backend/src/app/rpc/commands/verify_token.clj +++ b/backend/src/app/rpc/commands/verify_token.clj @@ -169,10 +169,16 @@ :invitation-id (:id invitation)} event (-> (audit/event-from-rpc-params params) (assoc ::audit/name "accept-team-invitation") - (assoc ::audit/props props))] + (assoc ::audit/props props)) + ev-invitation-from (-> (audit/event-from-rpc-params params) + (assoc ::audit/profile-id (:created-by invitation)) + (assoc ::audit/name "accept-team-invitation-from") + (assoc ::audit/props (assoc props :profile-id (:id profile) + :email (:email profile))))] (accept-invitation cfg claims invitation profile) (audit/submit! cfg event) + (audit/submit! cfg ev-invitation-from) (assoc claims :state :created)) (ex/raise :type :validation