Add poll limits to /api/v1/instance and initial state

This commit is contained in:
rinpatch 2019-05-21 09:13:10 +03:00
parent 6430cb1bf7
commit 76a7429bef
4 changed files with 16 additions and 2 deletions

View file

@ -211,6 +211,12 @@
avatar_upload_limit: 2_000_000, avatar_upload_limit: 2_000_000,
background_upload_limit: 4_000_000, background_upload_limit: 4_000_000,
banner_upload_limit: 4_000_000, banner_upload_limit: 4_000_000,
poll_limits: %{
max_options: 20,
max_option_chars: 200,
min_expiration: 0,
max_expiration: 365 * 24 * 60 * 60
},
registrations_open: true, registrations_open: true,
federating: true, federating: true,
federation_reachability_timeout_days: 7, federation_reachability_timeout_days: 7,

View file

@ -71,6 +71,11 @@ config :pleroma, Pleroma.Emails.Mailer,
* `avatar_upload_limit`: File size limit of users profile avatars * `avatar_upload_limit`: File size limit of users profile avatars
* `background_upload_limit`: File size limit of users profile backgrounds * `background_upload_limit`: File size limit of users profile backgrounds
* `banner_upload_limit`: File size limit of users profile banners * `banner_upload_limit`: File size limit of users profile banners
* `poll_limits`: A map with poll limits for **local** polls
* `max_options`: Maximum number of options
* `max_option_chars`: Maximum number of characters per option
* `min_expiration`: Minimum expiration time (in seconds)
* `max_expiration`: Maximum expiration time (in seconds)
* `registrations_open`: Enable registrations for anyone, invitations can be enabled when false. * `registrations_open`: Enable registrations for anyone, invitations can be enabled when false.
* `invites_enabled`: Enable user invitations for admins (depends on `registrations_open: false`). * `invites_enabled`: Enable user invitations for admins (depends on `registrations_open: false`).
* `account_activation_required`: Require users to confirm their emails before signing in. * `account_activation_required`: Require users to confirm their emails before signing in.

View file

@ -197,7 +197,8 @@ def masto_instance(conn, _params) do
languages: ["en"], languages: ["en"],
registrations: Pleroma.Config.get([:instance, :registrations_open]), registrations: Pleroma.Config.get([:instance, :registrations_open]),
# Extra (not present in Mastodon): # Extra (not present in Mastodon):
max_toot_chars: Keyword.get(instance, :limit) max_toot_chars: Keyword.get(instance, :limit),
poll_limits: Keyword.get(instance, :poll_limits)
} }
json(conn, response) json(conn, response)
@ -1331,6 +1332,7 @@ def index(%{assigns: %{user: user}} = conn, _params) do
max_toot_chars: limit, max_toot_chars: limit,
mascot: "/images/pleroma-fox-tan-smol.png" mascot: "/images/pleroma-fox-tan-smol.png"
}, },
poll_limits: Config.get([:instance, :poll_limits]),
rights: %{ rights: %{
delete_others_notice: present?(user.info.is_moderator), delete_others_notice: present?(user.info.is_moderator),
admin: present?(user.info.is_admin) admin: present?(user.info.is_admin)

View file

@ -2494,7 +2494,8 @@ test "get instance information", %{conn: conn} do
"stats" => _, "stats" => _,
"thumbnail" => _, "thumbnail" => _,
"languages" => _, "languages" => _,
"registrations" => _ "registrations" => _,
"poll_limits" => _
} = result } = result
assert email == from_config_email assert email == from_config_email