Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Pleroma
pleroma
Commits
a89e3b4b
Commit
a89e3b4b
authored
Dec 13, 2018
by
Ivan Tashkinov
Browse files
[
#114
] Moved email_invite action to AdminAPIController, adjusted tests.
parent
3cbf16a5
Changes
5
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/admin_api/admin_api_controller.ex
View file @
a89e3b4b
...
...
@@ -147,6 +147,19 @@ def relay_unfollow(conn, %{"relay_url" => target}) do
end
end
@doc
"Sends registration invite via email"
def
email_invite
(%{
assigns:
%{
user:
user
}}
=
conn
,
%{
"email"
=>
email
}
=
params
)
do
with
true
<-
Pleroma
.
Config
.
get
([
:instance
,
:invites_enabled
])
&&
!Pleroma
.
Config
.
get
([
:instance
,
:registrations_open
]),
{
:ok
,
invite_token
}
<-
Pleroma
.
UserInviteToken
.
create_token
(),
email
<-
Pleroma
.
UserEmail
.
user_invitation_email
(
user
,
invite_token
,
email
,
params
[
"name"
]),
{
:ok
,
_
}
<-
Pleroma
.
Mailer
.
deliver
(
email
)
do
json_response
(
conn
,
:no_content
,
""
)
end
end
@doc
"Get a account registeration invite token (base64 string)"
def
get_invite_token
(
conn
,
_params
)
do
{
:ok
,
token
}
=
Pleroma
.
UserInviteToken
.
create_token
()
...
...
lib/pleroma/web/router.ex
View file @
a89e3b4b
...
...
@@ -117,6 +117,8 @@ defmodule Pleroma.Web.Router do
delete
(
"/relay"
,
AdminAPIController
,
:relay_unfollow
)
get
(
"/invite_token"
,
AdminAPIController
,
:get_invite_token
)
post
(
"/email_invite"
,
AdminAPIController
,
:email_invite
)
get
(
"/password_reset"
,
AdminAPIController
,
:get_password_reset
)
end
...
...
lib/pleroma/web/twitter_api/twitter_api_controller.ex
View file @
a89e3b4b
...
...
@@ -335,18 +335,6 @@ def password_reset(conn, params) do
def
confirm_email
(
_conn
,
_params
),
do
:
:noop
def
email_invite
(%{
assigns:
%{
user:
user
}}
=
conn
,
%{
"email"
=>
email
}
=
params
)
do
with
true
<-
Pleroma
.
Config
.
get
([
:instance
,
:invites_enabled
])
&&
!Pleroma
.
Config
.
get
([
:instance
,
:registrations_open
]),
{
:ok
,
invite_token
}
<-
Pleroma
.
UserInviteToken
.
create_token
(),
email
<-
Pleroma
.
UserEmail
.
user_invitation_email
(
user
,
invite_token
,
email
,
params
[
"name"
]),
{
:ok
,
_
}
<-
Pleroma
.
Mailer
.
deliver
(
email
)
do
json_response
(
conn
,
:no_content
,
""
)
end
end
def
update_avatar
(%{
assigns:
%{
user:
user
}}
=
conn
,
params
)
do
{
:ok
,
object
}
=
ActivityPub
.
upload
(
params
,
type:
:avatar
)
change
=
Changeset
.
change
(
user
,
%{
avatar:
object
.
data
})
...
...
test/web/admin_api/admin_api_controller_test.exs
View file @
a89e3b4b
...
...
@@ -154,6 +154,37 @@ test "/:right DELETE, can remove from a permission group" do
end
end
describe
"POST /api/pleroma/admin/email_invite, with valid parameters"
do
setup
do
registrations_open
=
Pleroma
.
Config
.
get
([
:instance
,
:registrations_open
])
invites_enabled
=
Pleroma
.
Config
.
get
([
:instance
,
:invites_enabled
])
Pleroma
.
Config
.
put
([
:instance
,
:registrations_open
],
false
)
Pleroma
.
Config
.
put
([
:instance
,
:invites_enabled
],
true
)
on_exit
(
fn
->
Pleroma
.
Config
.
put
([
:instance
,
:registrations_open
],
registrations_open
)
Pleroma
.
Config
.
put
([
:instance
,
:invites_enabled
],
invites_enabled
)
:ok
end
)
[
user:
insert
(
:user
,
info:
%{
is_admin:
true
})]
end
test
"sends invitation and returns 204"
,
%{
conn:
conn
,
user:
user
}
do
recipient_email
=
"foo@bar.com"
recipient_name
=
"J. D."
conn
=
conn
|>
assign
(
:user
,
user
)
|>
post
(
"/api/pleroma/admin/email_invite?email=
#{
recipient_email
}
&name=
#{
recipient_name
}
"
)
assert
json_response
(
conn
,
:no_content
)
Swoosh
.
TestAssertions
.
assert_email_sent
()
end
end
test
"/api/pleroma/admin/invite_token"
do
admin
=
insert
(
:user
,
info:
%{
is_admin:
true
})
...
...
test/web/twitter_api/twitter_api_controller_test.exs
View file @
a89e3b4b
...
...
@@ -873,39 +873,6 @@ test "it returns 500 when user is not local", %{conn: conn, user: user} do
end
end
describe
"POST /api/email_invite, with valid parameters"
do
setup
[
:valid_user
]
setup
do
registrations_open
=
Pleroma
.
Config
.
get
([
:instance
,
:registrations_open
])
invites_enabled
=
Pleroma
.
Config
.
get
([
:instance
,
:invites_enabled
])
Pleroma
.
Config
.
put
([
:instance
,
:registrations_open
],
false
)
Pleroma
.
Config
.
put
([
:instance
,
:invites_enabled
],
true
)
on_exit
(
fn
->
Pleroma
.
Config
.
put
([
:instance
,
:registrations_open
],
registrations_open
)
Pleroma
.
Config
.
put
([
:instance
,
:invites_enabled
],
invites_enabled
)
:ok
end
)
:ok
end
test
"sends invitation and returns 204"
,
%{
conn:
conn
,
user:
user
}
do
recipient_email
=
"foo@bar.com"
recipient_name
=
"J. D."
conn
=
conn
|>
assign
(
:user
,
user
)
|>
post
(
"/api/email_invite?email=
#{
recipient_email
}
&name=
#{
recipient_name
}
"
)
assert
json_response
(
conn
,
:no_content
)
Swoosh
.
TestAssertions
.
assert_email_sent
()
end
end
describe
"GET /api/externalprofile/show"
do
test
"it returns the user"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment