Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F7893398
user_invite_token.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
799 B
Referenced Files
None
Subscribers
None
user_invite_token.ex
View Options
defmodule
Pleroma.UserInviteToken
do
use
Ecto.Schema
import
Ecto.Changeset
alias
Pleroma
.
{
User
,
UserInviteToken
,
Repo
}
schema
"user_invite_tokens"
do
field
(
:token
,
:string
)
field
(
:used
,
:boolean
,
default
:
false
)
timestamps
()
end
def
create_token
do
token
=
:crypto
.
strong_rand_bytes
(
32
)
|>
Base
.
url_encode64
()
token
=
%
UserInviteToken
{
used
:
false
,
token
:
token
}
Repo
.
insert
(
token
)
end
def
used_changeset
(
struct
)
do
struct
|>
cast
(%{},
[])
|>
put_change
(
:used
,
true
)
end
def
mark_as_used
(
token
)
do
with
%{
used
:
false
}
=
token
<-
Repo
.
get_by
(
UserInviteToken
,
%{
token
:
token
}),
{
:ok
,
token
}
<-
Repo
.
update
(
used_changeset
(
token
))
do
{
:ok
,
token
}
else
_e
->
{
:error
,
token
}
end
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Thu, Oct 2, 5:03 AM (8 h, 16 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
485866
Default Alt Text
user_invite_token.ex (799 B)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment