@@ -4,7 +4,9 @@ defmodule Algora.Accounts.User do
4
4
5
5
alias Algora.Accounts.Identity
6
6
alias Algora.Accounts.User
7
+ alias Algora.Activities.Activity
7
8
alias Algora.Bounties.Bounty
9
+ alias Algora.Bounties.Tip
8
10
alias Algora.Contracts.Contract
9
11
alias Algora.MoneyUtils
10
12
alias Algora.Organizations.Member
@@ -71,11 +73,16 @@ defmodule Algora.Accounts.User do
71
73
field :og_title , :string
72
74
field :og_image_url , :string
73
75
76
+ field :login_token , :string , virtual: true
77
+
74
78
has_many :identities , Identity
75
79
has_many :memberships , Member , foreign_key: :user_id
76
80
has_many :members , Member , foreign_key: :org_id
77
81
has_many :owned_bounties , Bounty , foreign_key: :owner_id
78
82
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
79
86
has_many :attempts , Algora.Bounties.Attempt
80
87
has_many :claims , Algora.Bounties.Claim
81
88
has_many :projects , Algora.Projects.Project
@@ -85,6 +92,7 @@ defmodule Algora.Accounts.User do
85
92
has_many :connected_installations , Installation , foreign_key: :connected_user_id
86
93
has_many :contractor_contracts , Contract , foreign_key: :contractor_id
87
94
has_many :client_contracts , Contract , foreign_key: :client_id
95
+ has_many :activities , { "user_activities" , Activity } , foreign_key: :assoc_id
88
96
89
97
has_one :customer , Algora.Payments.Customer , foreign_key: :user_id
90
98
@@ -247,6 +255,10 @@ defmodule Algora.Accounts.User do
247
255
|> validate_timezone ( )
248
256
end
249
257
258
+ def login_changeset ( % User { } = user , params ) do
259
+ cast ( user , params , [ :email , :login_token ] )
260
+ end
261
+
250
262
defp validate_email ( changeset ) do
251
263
changeset
252
264
|> validate_required ( [ :email ] )
@@ -296,6 +308,10 @@ defmodule Algora.Accounts.User do
296
308
|> unique_constraint ( [ :provider , :provider_id ] )
297
309
end
298
310
311
+ def is_admin_changeset ( user , is_admin ) do
312
+ cast ( user , % { is_admin: is_admin } , [ :is_admin ] )
313
+ end
314
+
299
315
def validate_timezone ( changeset ) do
300
316
validate_inclusion ( changeset , :timezone , Tzdata . zone_list ( ) )
301
317
end
0 commit comments