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
3aee8bb6
Commit
3aee8bb6
authored
Jan 08, 2019
by
rinpatch
Browse files
Merge branch 'autofollow' into 'develop'
Add a setting for users to autofollow on sign up. See merge request
!639
parents
4e5b1560
0fae04c4
Pipeline
#6080
passed with stages
in 6 minutes and 7 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
config/config.exs
View file @
3aee8bb6
...
...
@@ -137,7 +137,8 @@
"text/markdown"
],
finmoji_enabled:
true
,
mrf_transparency:
true
mrf_transparency:
true
,
autofollowed_nicknames:
[]
config
:pleroma
,
:markup
,
# XXX - unfortunately, inline images must be enabled by default right now, because
...
...
docs/config.md
View file @
3aee8bb6
...
...
@@ -93,6 +93,7 @@ config :pleroma, Pleroma.Mailer,
*
`always_show_subject_input`
: When set to false, auto-hide the subject field when it's empty.
*
`extended_nickname_format`
: Set to
`true`
to use extended local nicknames format (allows underscores/dashes). This will break federation with
older software for theses nicknames.
*
`autofollowed_nicknames`
: Set to nicknames of (local) users that every new user should automatically follow.
## :logger
*
`backends`
:
`:console`
is used to send logs to stdout,
`{ExSyslogger, :ex_syslogger}`
to log to syslog
...
...
lib/pleroma/user.ex
View file @
3aee8bb6
...
...
@@ -229,10 +229,27 @@ def register_changeset(struct, params \\ %{}, opts \\ []) do
end
end
defp
autofollow_users
(
user
)
do
candidates
=
Pleroma
.
Config
.
get
([
:instance
,
:autofollowed_nicknames
])
autofollowed_users
=
from
(
u
in
User
,
where:
u
.
local
==
true
,
where:
u
.
nickname
in
^
candidates
)
|>
Repo
.
all
()
autofollowed_users
|>
Enum
.
reduce
({
:ok
,
user
},
fn
other_user
,
{
:ok
,
user
}
->
follow
(
user
,
other_user
)
end
)
end
@doc
"Inserts provided changeset, performs post-registration actions (confirmation email sending etc.)"
def
register
(%
Ecto
.
Changeset
{}
=
changeset
)
do
with
{
:ok
,
user
}
<-
Repo
.
insert
(
changeset
),
{
:ok
,
_
}
=
try_send_confirmation_email
(
user
)
do
{
:ok
,
_
}
<-
try_send_confirmation_email
(
user
),
{
:ok
,
user
}
<-
autofollow_users
(
user
)
do
{
:ok
,
user
}
end
end
...
...
test/user_test.exs
View file @
3aee8bb6
...
...
@@ -142,6 +142,23 @@ test "test if a user is following another user" do
email:
"email@example.com"
}
test
"it autofollows accounts that are set for it"
do
user
=
insert
(
:user
)
remote_user
=
insert
(
:user
,
%{
local:
false
})
Pleroma
.
Config
.
put
([
:instance
,
:autofollowed_nicknames
],
[
user
.
nickname
,
remote_user
.
nickname
])
cng
=
User
.
register_changeset
(%
User
{},
@full_user_data
)
{
:ok
,
registered_user
}
=
User
.
register
(
cng
)
assert
User
.
following?
(
registered_user
,
user
)
refute
User
.
following?
(
registered_user
,
remote_user
)
end
test
"it requires an email, name, nickname and password, bio is optional"
do
@full_user_data
|>
Map
.
keys
()
...
...
Write
Preview
Supports
Markdown
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