@@ -4,7 +4,9 @@ defmodule Algora.Accounts.User do
44
55 alias Algora.Accounts.Identity
66 alias Algora.Accounts.User
7+ alias Algora.Activities.Activity
78 alias Algora.Bounties.Bounty
9+ alias Algora.Bounties.Tip
810 alias Algora.Contracts.Contract
911 alias Algora.MoneyUtils
1012 alias Algora.Organizations.Member
@@ -71,11 +73,16 @@ defmodule Algora.Accounts.User do
7173 field :og_title , :string
7274 field :og_image_url , :string
7375
76+ field :login_token , :string , virtual: true
77+
7478 has_many :identities , Identity
7579 has_many :memberships , Member , foreign_key: :user_id
7680 has_many :members , Member , foreign_key: :org_id
7781 has_many :owned_bounties , Bounty , foreign_key: :owner_id
7882 has_many :created_bounties , Bounty , foreign_key: :creator_id
83+ has_many :owned_tips , Tip , foreign_key: :owner_id
84+ has_many :created_tips , Tip , foreign_key: :creator_id
85+ has_many :received_tips , Tip , foreign_key: :recipient_id
7986 has_many :attempts , Algora.Bounties.Attempt
8087 has_many :claims , Algora.Bounties.Claim
8188 has_many :projects , Algora.Projects.Project
@@ -85,6 +92,7 @@ defmodule Algora.Accounts.User do
8592 has_many :connected_installations , Installation , foreign_key: :connected_user_id
8693 has_many :contractor_contracts , Contract , foreign_key: :contractor_id
8794 has_many :client_contracts , Contract , foreign_key: :client_id
95+ has_many :activities , { "user_activities" , Activity } , foreign_key: :assoc_id
8896
8997 has_one :customer , Algora.Payments.Customer , foreign_key: :user_id
9098
@@ -247,6 +255,10 @@ defmodule Algora.Accounts.User do
247255 |> validate_timezone ( )
248256 end
249257
258+ def login_changeset ( % User { } = user , params ) do
259+ cast ( user , params , [ :email , :login_token ] )
260+ end
261+
250262 defp validate_email ( changeset ) do
251263 changeset
252264 |> validate_required ( [ :email ] )
@@ -296,6 +308,10 @@ defmodule Algora.Accounts.User do
296308 |> unique_constraint ( [ :provider , :provider_id ] )
297309 end
298310
311+ def is_admin_changeset ( user , is_admin ) do
312+ cast ( user , % { is_admin: is_admin } , [ :is_admin ] )
313+ end
314+
299315 def validate_timezone ( changeset ) do
300316 validate_inclusion ( changeset , :timezone , Tzdata . zone_list ( ) )
301317 end
0 commit comments