From 34f853159e5964e16712232388cd4ae203fdf72b Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Mon, 22 May 2023 18:44:21 +0200 Subject: [PATCH 01/17] build(docker): Fix production Dockerfile Make sure every data folder properly exists See https://forge.tedomum.net/tedomum/mobilizon/-/issues/14 Signed-off-by: Thomas Citharel --- docker/production/Dockerfile | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docker/production/Dockerfile b/docker/production/Dockerfile index 9a84bd9fb..1b5370e5b 100644 --- a/docker/production/Dockerfile +++ b/docker/production/Dockerfile @@ -1,5 +1,5 @@ # First build the application assets -FROM node:16-alpine as assets +FROM node:18-alpine as assets RUN apk add --no-cache python3 build-base libwebp-tools bash imagemagick ncurses WORKDIR /build @@ -49,11 +49,17 @@ LABEL org.opencontainers.image.title="mobilizon" \ RUN apk add --no-cache curl openssl ca-certificates ncurses-libs file postgresql-client libgcc libstdc++ imagemagick python3 py3-pip py3-pillow py3-cffi py3-brotli gcc g++ musl-dev python3-dev pango libxslt-dev ttf-cantarell openssl1.1-compat RUN pip install weasyprint pyexcel-ods3 +# Create every data directory RUN mkdir -p /var/lib/mobilizon/uploads && chown nobody:nobody /var/lib/mobilizon/uploads +RUN mkdir -p /var/lib/mobilizon/timezones && chown nobody:nobody /var/lib/mobilizon/timezones +RUN mkdir -p /var/lib/mobilizon/tzdata && chown nobody:nobody /var/lib/mobilizon/tzdata RUN mkdir -p /var/lib/mobilizon/uploads/exports/{csv,pdf,ods} && chown -R nobody:nobody /var/lib/mobilizon/uploads/exports -RUN mkdir -p /var/lib/mobilizon/timezones + +# Get timezone geodata RUN curl -L 'https://packages.joinmobilizon.org/tz_world/timezones-geodata.dets' -o /var/lib/mobilizon/timezones/timezones-geodata.dets -RUN chown nobody:nobody /var/lib/mobilizon/timezones +RUN chown -R nobody:nobody /var/lib/mobilizon/timezones + +# Create configuration directory RUN mkdir -p /etc/mobilizon && chown nobody:nobody /etc/mobilizon USER nobody From 43eab9e680f36350faba70baec2ac07711ad61d9 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Mon, 22 May 2023 18:53:22 +0200 Subject: [PATCH 02/17] build(docker-tests): Update test container Signed-off-by: Thomas Citharel --- docker/tests/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/tests/Dockerfile b/docker/tests/Dockerfile index 6342d6847..f9687894a 100644 --- a/docker/tests/Dockerfile +++ b/docker/tests/Dockerfile @@ -1,9 +1,9 @@ FROM elixir:latest LABEL maintainer="Thomas Citharel " -ENV REFRESHED_AT=2022-09-20 +ENV REFRESHED_AT=2023-05-22 RUN apt-get update -yq && apt-get install -yq build-essential inotify-tools postgresql-client git curl gnupg xvfb libgtk-3-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 cmake exiftool python3-pip python3-setuptools -RUN curl -sL https://deb.nodesource.com/setup_16.x | bash && apt-get install nodejs -yq +RUN curl -sL https://deb.nodesource.com/setup_18.x | bash && apt-get install nodejs -yq RUN npm install -g yarn wait-on RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN mix local.hex --force && mix local.rebar --force From 3309850d723b53b387ba12b49d4965a8cfb1ec04 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Tue, 23 May 2023 14:17:36 +0200 Subject: [PATCH 03/17] chore(changelog): fix changelog version and move an element in the correct section Signed-off-by: Thomas Citharel --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6588aa9d..fa912cc44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,19 +6,19 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## 3.1.0 (2023-05-17) +## 3.1.0-beta.1 (2023-05-17) ### Features * **API:** Allow to create apps, with permissions and both Authorization Code Flow and Device Flow * **addresses:** Allow to enter manual addresses ([85d643d](https://framagit.org/framasoft/mobilizon/commits/85d643d0ecd5e7504f32953b9ed1509697b915e2)) * **docker:** Specify the folder where tzdata downloads data so that it can be used in a volume ([4bb0625](https://framagit.org/framasoft/mobilizon/commits/4bb062528f12be530a3754ca23c1bc6dbc862e5a)), closes [#1280](https://framagit.org/framasoft/mobilizon/issues/1280) -* **global-search:** Add option values in debug log before calling global search service ([8141bb0](https://framagit.org/framasoft/mobilizon/commits/8141bb0acbc4eb02a917c5bc18712d0d954c4ee5)) * **spam:** Introduce checking new accounts, events & comments for spam with the help of Akismet ([317a343](https://framagit.org/framasoft/mobilizon/commits/317a3434b221a1a91b66d8443984269404863a8e)) * **rate-limiting:** Introduce rate-limiting on some endpoints ([c07ba3a5](https://framagit.org/framasoft/mobilizon/-/commit/c07ba3a5d19c419ef8aaf3ea9ca6e7f48e4f4487)) ### Bug Fixes +* **global-search:** Add option values in debug log before calling global search service ([8141bb0](https://framagit.org/framasoft/mobilizon/commits/8141bb0acbc4eb02a917c5bc18712d0d954c4ee5)) * **apps:** Fix cleaning application data background job ([aa20f69](https://framagit.org/framasoft/mobilizon/commits/aa20f6991127ddee546fc0b867298c1342dbcb4d)) * **apps:** Show message when the user doesn't have approved apps yet ([e0ee9c1](https://framagit.org/framasoft/mobilizon/commits/e0ee9c143b0335753db5dfae19e324781d55bd4e)) * **auth:** Handle logging-in with disabled auth provider ([a22a5e3](https://framagit.org/framasoft/mobilizon/commits/a22a5e3cb924869e32cb9ed71dab3e03d91c018f)) From c4d60194a6900a3f9430355c5fbb346d910e4df6 Mon Sep 17 00:00:00 2001 From: Hugo Renard Date: Mon, 22 May 2023 19:11:30 +0200 Subject: [PATCH 04/17] fix: include user role in moderator role Signed-off-by: Thomas Citharel --- lib/graphql/authorization.ex | 3 ++- test/graphql/resolvers/user_test.exs | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/lib/graphql/authorization.ex b/lib/graphql/authorization.ex index c30675dd9..21f4ad962 100644 --- a/lib/graphql/authorization.ex +++ b/lib/graphql/authorization.ex @@ -31,13 +31,14 @@ defmodule Mobilizon.GraphQL.Authorization do @impl true def role_authorized?(_user_role, :all), do: true def role_authorized?(role, _allowed_role) when is_super_role(role), do: true + def role_authorized?(:moderator, :user), do: true def role_authorized?(user_role, allowed_role) when is_atom(user_role) and is_atom(allowed_role), do: user_role === allowed_role def role_authorized?(user_role, allowed_roles) when is_atom(user_role) and is_list(allowed_roles), - do: user_role in allowed_roles + do: user_role in allowed_roles or (user_role === :moderator and :user in allowed_roles) @impl true def get_user_role(%ApplicationToken{user: %{role: role}}), do: role diff --git a/test/graphql/resolvers/user_test.exs b/test/graphql/resolvers/user_test.exs index 8ba4ca797..544e6fb5f 100644 --- a/test/graphql/resolvers/user_test.exs +++ b/test/graphql/resolvers/user_test.exs @@ -200,6 +200,34 @@ defmodule Mobilizon.GraphQL.Resolvers.UserTest do assert res["data"]["loggedUser"]["id"] == to_string(user.id) end + + test "get_current_user/3 returns the current logged-in user with moderator role", %{ + conn: conn + } do + user = insert(:user, role: :moderator) + + res = + conn + |> AbsintheHelpers.graphql_query( + query: @logged_user_query, + variables: %{} + ) + + assert res["data"]["loggedUser"] == nil + + assert hd(res["errors"])["message"] == + "You need to be logged in" + + res = + conn + |> auth_conn(user) + |> AbsintheHelpers.graphql_query( + query: @logged_user_query, + variables: %{} + ) + + assert res["data"]["loggedUser"]["id"] == to_string(user.id) + end end describe "Resolver: List users" do From 9fe2f658e220748ce0267a7ec3e2f8a8dc2b819d Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Tue, 23 May 2023 18:10:40 +0200 Subject: [PATCH 05/17] ci(docker-arm-build): allow Docker arm image build to fail Signed-off-by: Thomas Citharel --- .gitlab-ci.yml | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 38c3e43b1..d92024747 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -247,7 +247,6 @@ build-docker-main: script: - docker buildx build --push --platform linux/amd64 -t framasoft/mobilizon:main -f docker/production/Dockerfile . -# Don't push to latest when building beta/rc tags build-and-push-to-latest-docker-tag: <<: *docker rules: &release-tag-rules @@ -260,11 +259,31 @@ build-and-push-to-latest-docker-tag: - > docker buildx build --push - --platform linux/amd64,linux/arm + --platform linux/amd64 -t framasoft/mobilizon:$CI_COMMIT_TAG -t framasoft/mobilizon:latest -f docker/production/Dockerfile . +build-and-push-to-latest-docker-tag-cross: + <<: *docker + rules: &release-tag-rules + - if: '$CI_PROJECT_NAMESPACE != "framasoft"' + when: never + - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG !~ /alpha|beta|rc/ + when: on_success + timeout: 3 hours + allow_failure: true + script: + - > + docker buildx build + --push + --platform linux/arm, linux/arm64 + -t framasoft/mobilizon:$CI_COMMIT_TAG + -t framasoft/mobilizon:latest + -f docker/production/Dockerfile . + + +# Don't push to latest when building beta/rc tags build-and-push-docker-tag: <<: *docker rules: &pre-release-tag-rules @@ -277,7 +296,7 @@ build-and-push-docker-tag: - > docker buildx build --push - --platform linux/amd64,linux/arm + --platform linux/amd64 -t framasoft/mobilizon:$CI_COMMIT_TAG -f docker/production/Dockerfile . From 39da840da95c95c611cb2ae9ba65b2a4338cd461 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Tue, 23 May 2023 18:34:35 +0200 Subject: [PATCH 06/17] chore(changelog): fix links to commits in Changelog See https://github.com/conventional-changelog/conventional-changelog/issues/986 Signed-off-by: Thomas Citharel --- CHANGELOG.md | 76 ++++++++++++++++++++++++++-------------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa912cc44..8044ae495 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,48 +11,48 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Features * **API:** Allow to create apps, with permissions and both Authorization Code Flow and Device Flow -* **addresses:** Allow to enter manual addresses ([85d643d](https://framagit.org/framasoft/mobilizon/commits/85d643d0ecd5e7504f32953b9ed1509697b915e2)) -* **docker:** Specify the folder where tzdata downloads data so that it can be used in a volume ([4bb0625](https://framagit.org/framasoft/mobilizon/commits/4bb062528f12be530a3754ca23c1bc6dbc862e5a)), closes [#1280](https://framagit.org/framasoft/mobilizon/issues/1280) -* **spam:** Introduce checking new accounts, events & comments for spam with the help of Akismet ([317a343](https://framagit.org/framasoft/mobilizon/commits/317a3434b221a1a91b66d8443984269404863a8e)) +* **addresses:** Allow to enter manual addresses ([85d643d](https://framagit.org/framasoft/mobilizon/-/commit/85d643d0ecd5e7504f32953b9ed1509697b915e2)) +* **docker:** Specify the folder where tzdata downloads data so that it can be used in a volume ([4bb0625](https://framagit.org/framasoft/mobilizon/-/commit/4bb062528f12be530a3754ca23c1bc6dbc862e5a)), closes [#1280](https://framagit.org/framasoft/mobilizon/issues/1280) +* **spam:** Introduce checking new accounts, events & comments for spam with the help of Akismet ([317a343](https://framagit.org/framasoft/mobilizon/-/commit/317a3434b221a1a91b66d8443984269404863a8e)) * **rate-limiting:** Introduce rate-limiting on some endpoints ([c07ba3a5](https://framagit.org/framasoft/mobilizon/-/commit/c07ba3a5d19c419ef8aaf3ea9ca6e7f48e4f4487)) ### Bug Fixes -* **global-search:** Add option values in debug log before calling global search service ([8141bb0](https://framagit.org/framasoft/mobilizon/commits/8141bb0acbc4eb02a917c5bc18712d0d954c4ee5)) -* **apps:** Fix cleaning application data background job ([aa20f69](https://framagit.org/framasoft/mobilizon/commits/aa20f6991127ddee546fc0b867298c1342dbcb4d)) -* **apps:** Show message when the user doesn't have approved apps yet ([e0ee9c1](https://framagit.org/framasoft/mobilizon/commits/e0ee9c143b0335753db5dfae19e324781d55bd4e)) -* **auth:** Handle logging-in with disabled auth provider ([a22a5e3](https://framagit.org/framasoft/mobilizon/commits/a22a5e3cb924869e32cb9ed71dab3e03d91c018f)) -* **backend:** Fix Mobilizon.Events.list_participations_for_user_query/1 ([bcf6fd8](https://framagit.org/framasoft/mobilizon/commits/bcf6fd893c762c12b63d7e02da43cd5c05db509b)) -* **backend:** Handle CLDR data having no standard property for a language ([dbe2da7](https://framagit.org/framasoft/mobilizon/commits/dbe2da79c3aa1543b87dce61b5fd90195fb53afe)) -* **backend:** Ignore group mentions for now ([b5f106b](https://framagit.org/framasoft/mobilizon/commits/b5f106b0a81fefba3203f8ec5855e834a2078222)) -* **back:** Improve error message when requesting reset passwords and new instructions ([1c1d0d4](https://framagit.org/framasoft/mobilizon/commits/1c1d0d47d70cf19abe5be42e7ec3a73656a8172b)) -* **back:** Replace NaiveDateTime uses with DateTime for consistency ([8ea00e7](https://framagit.org/framasoft/mobilizon/commits/8ea00e7c1827ce3056ae51968a62fb3dc03ac6eb)) -* **back:** Various small fixes in backend ([2a57340](https://framagit.org/framasoft/mobilizon/commits/2a57340a82e414e69924ad89e8db9fc326742cc7)) -* bind pagination current prop ([4bcf572](https://framagit.org/framasoft/mobilizon/commits/4bcf572c54d904587d0409e2eb68b4ca6cf48fec)) -* **federation:** Account suspension should use actor in question as author and not relay actor ([79b48da](https://framagit.org/framasoft/mobilizon/commits/79b48da22209a8b2f1b234b8b8e121543a39b22b)) -* **feeds:** Only provide future events in ICS/Atom feeds ([f3a4431](https://framagit.org/framasoft/mobilizon/commits/f3a443138a0e1e6cf34fc593f5c174d56c21e904)), closes [#1246](https://framagit.org/framasoft/mobilizon/issues/1246) -* Fix type of variable in navbar ([50ab531](https://framagit.org/framasoft/mobilizon/commits/50ab531156214f883cb03f785ccf65e3f19ef50e)) -* **follow-instances:** Show correct error message when trying to follow already following actor ([d969c66](https://framagit.org/framasoft/mobilizon/commits/d969c6648f15e1ed280169a4c55d612bb002f03f)) -* **front:** Fix about sections titles ([487f406](https://framagit.org/framasoft/mobilizon/commits/487f4069b14fde6304c9a42cec5b1c1af79814c5)) -* **front:** Fix autocomplete attribute in o-inputitems after Oruga new version BC ([d2ba732](https://framagit.org/framasoft/mobilizon/commits/d2ba732b8b51986b739f6fbe3d74fa68e4b74ba0)) -* **front:** Fix behaviour when deleting an event from event list ([cfd10ea](https://framagit.org/framasoft/mobilizon/commits/cfd10ea96078f03ad3b4f5682e37078ffae16ee4)) -* **front:** Fix event list month order ([63c9ed6](https://framagit.org/framasoft/mobilizon/commits/63c9ed62de94d6d150798c949bad3d8a2dd4db23)), closes [#1244](https://framagit.org/framasoft/mobilizon/issues/1244) -* **front:** Fix instances list pagination ([8543204](https://framagit.org/framasoft/mobilizon/commits/8543204bd95de886d8d35bd491f23ecbc0a6ef8d)), closes [#1277](https://framagit.org/framasoft/mobilizon/issues/1277) -* **front:** Fix pagination display on dark mode ([4375438](https://framagit.org/framasoft/mobilizon/commits/4375438dc9fd2f1c5c9d7ed6670dde04f2da520f)) -* **front:** Fix style of My Events participations ([35b07dc](https://framagit.org/framasoft/mobilizon/commits/35b07dceaa41c74c28ea49655b755e341f56df32)) -* **front:** Focus report comment input in report modal ([2c28312](https://framagit.org/framasoft/mobilizon/commits/2c28312fc957901b86c2f3d1db8fc3376f505d37)), closes [#1236](https://framagit.org/framasoft/mobilizon/issues/1236) -* **front:** Handle "Failed to fetch dynamically imported module" errors by refreshing the page ([3d21a06](https://framagit.org/framasoft/mobilizon/commits/3d21a067897e4aa24f6404686ca6896044584796)) -* **front:** Improve Delete account modal UI ([c420bbc](https://framagit.org/framasoft/mobilizon/commits/c420bbccc9bd1c348e41904e826dc49c71d7eeb4)) -* **front:** Improve resend inscription instructions view and show error when appropriate ([5563052](https://framagit.org/framasoft/mobilizon/commits/55630527957d4f6a2e1e6845e64a92bc4794efc8)) -* **front:** No cache-only for config ([8dcb76c](https://framagit.org/framasoft/mobilizon/commits/8dcb76c30d4fa835837fd3b3833f83682fbae615)) -* **front:** Small UI fixes on identity pickers ([6faafd6](https://framagit.org/framasoft/mobilizon/commits/6faafd639303e4b57ed81db2ffb5db4ad598b904)) -* **i18n:** Update translations ([3b7dbcd](https://framagit.org/framasoft/mobilizon/commits/3b7dbcd71f0d19d5e723a03c56ca0b1abbd16f5d)) -* **map:** Fix style of the map marker ([c7b90cd](https://framagit.org/framasoft/mobilizon/commits/c7b90cd60a14abea7aebab7e1d87f37a44371f7c)) -* **map:** Only show map details when needed ([23b5e59](https://framagit.org/framasoft/mobilizon/commits/23b5e5930cb9bdb57b1d7fa3ec899d7e4d3571be)) -* **map:** Only show marker if we have it's position ([f0cc5ff](https://framagit.org/framasoft/mobilizon/commits/f0cc5ffb8feb2f4d70416792a8ab2f4f44bfba85)) -* **password-reset:** Lower time before being available to reset password or resend instructions ([73eb460](https://framagit.org/framasoft/mobilizon/commits/73eb4603b185c341b63481ed934f66e19aa0784f)) -* **search:** Fix event search order ([a4e7ee3](https://framagit.org/framasoft/mobilizon/commits/a4e7ee37bedc63b2193a401c801b3b1298f566d2)) -* **typespec:** Fix missing return type in typespec ([2043c98](https://framagit.org/framasoft/mobilizon/commits/2043c98717e8621b3953d347be0b4a35f494af98)) +* **global-search:** Add option values in debug log before calling global search service ([8141bb0](https://framagit.org/framasoft/mobilizon/-/commit/8141bb0acbc4eb02a917c5bc18712d0d954c4ee5)) +* **apps:** Fix cleaning application data background job ([aa20f69](https://framagit.org/framasoft/mobilizon/-/commit/aa20f6991127ddee546fc0b867298c1342dbcb4d)) +* **apps:** Show message when the user doesn't have approved apps yet ([e0ee9c1](https://framagit.org/framasoft/mobilizon/-/commit/e0ee9c143b0335753db5dfae19e324781d55bd4e)) +* **auth:** Handle logging-in with disabled auth provider ([a22a5e3](https://framagit.org/framasoft/mobilizon/-/commit/a22a5e3cb924869e32cb9ed71dab3e03d91c018f)) +* **backend:** Fix Mobilizon.Events.list_participations_for_user_query/1 ([bcf6fd8](https://framagit.org/framasoft/mobilizon/-/commit/bcf6fd893c762c12b63d7e02da43cd5c05db509b)) +* **backend:** Handle CLDR data having no standard property for a language ([dbe2da7](https://framagit.org/framasoft/mobilizon/-/commit/dbe2da79c3aa1543b87dce61b5fd90195fb53afe)) +* **backend:** Ignore group mentions for now ([b5f106b](https://framagit.org/framasoft/mobilizon/-/commit/b5f106b0a81fefba3203f8ec5855e834a2078222)) +* **back:** Improve error message when requesting reset passwords and new instructions ([1c1d0d4](https://framagit.org/framasoft/mobilizon/-/commit/1c1d0d47d70cf19abe5be42e7ec3a73656a8172b)) +* **back:** Replace NaiveDateTime uses with DateTime for consistency ([8ea00e7](https://framagit.org/framasoft/mobilizon/-/commit/8ea00e7c1827ce3056ae51968a62fb3dc03ac6eb)) +* **back:** Various small fixes in backend ([2a57340](https://framagit.org/framasoft/mobilizon/-/commit/2a57340a82e414e69924ad89e8db9fc326742cc7)) +* bind pagination current prop ([4bcf572](https://framagit.org/framasoft/mobilizon/-/commit/4bcf572c54d904587d0409e2eb68b4ca6cf48fec)) +* **federation:** Account suspension should use actor in question as author and not relay actor ([79b48da](https://framagit.org/framasoft/mobilizon/-/commit/79b48da22209a8b2f1b234b8b8e121543a39b22b)) +* **feeds:** Only provide future events in ICS/Atom feeds ([f3a4431](https://framagit.org/framasoft/mobilizon/-/commit/f3a443138a0e1e6cf34fc593f5c174d56c21e904)), closes [#1246](https://framagit.org/framasoft/mobilizon/issues/1246) +* Fix type of variable in navbar ([50ab531](https://framagit.org/framasoft/mobilizon/-/commit/50ab531156214f883cb03f785ccf65e3f19ef50e)) +* **follow-instances:** Show correct error message when trying to follow already following actor ([d969c66](https://framagit.org/framasoft/mobilizon/-/commit/d969c6648f15e1ed280169a4c55d612bb002f03f)) +* **front:** Fix about sections titles ([487f406](https://framagit.org/framasoft/mobilizon/-/commit/487f4069b14fde6304c9a42cec5b1c1af79814c5)) +* **front:** Fix autocomplete attribute in o-inputitems after Oruga new version BC ([d2ba732](https://framagit.org/framasoft/mobilizon/-/commit/d2ba732b8b51986b739f6fbe3d74fa68e4b74ba0)) +* **front:** Fix behaviour when deleting an event from event list ([cfd10ea](https://framagit.org/framasoft/mobilizon/-/commit/cfd10ea96078f03ad3b4f5682e37078ffae16ee4)) +* **front:** Fix event list month order ([63c9ed6](https://framagit.org/framasoft/mobilizon/-/commit/63c9ed62de94d6d150798c949bad3d8a2dd4db23)), closes [#1244](https://framagit.org/framasoft/mobilizon/issues/1244) +* **front:** Fix instances list pagination ([8543204](https://framagit.org/framasoft/mobilizon/-/commit/8543204bd95de886d8d35bd491f23ecbc0a6ef8d)), closes [#1277](https://framagit.org/framasoft/mobilizon/issues/1277) +* **front:** Fix pagination display on dark mode ([4375438](https://framagit.org/framasoft/mobilizon/-/commit/4375438dc9fd2f1c5c9d7ed6670dde04f2da520f)) +* **front:** Fix style of My Events participations ([35b07dc](https://framagit.org/framasoft/mobilizon/-/commit/35b07dceaa41c74c28ea49655b755e341f56df32)) +* **front:** Focus report comment input in report modal ([2c28312](https://framagit.org/framasoft/mobilizon/-/commit/2c28312fc957901b86c2f3d1db8fc3376f505d37)), closes [#1236](https://framagit.org/framasoft/mobilizon/issues/1236) +* **front:** Handle "Failed to fetch dynamically imported module" errors by refreshing the page ([3d21a06](https://framagit.org/framasoft/mobilizon/-/commit/3d21a067897e4aa24f6404686ca6896044584796)) +* **front:** Improve Delete account modal UI ([c420bbc](https://framagit.org/framasoft/mobilizon/-/commit/c420bbccc9bd1c348e41904e826dc49c71d7eeb4)) +* **front:** Improve resend inscription instructions view and show error when appropriate ([5563052](https://framagit.org/framasoft/mobilizon/-/commit/55630527957d4f6a2e1e6845e64a92bc4794efc8)) +* **front:** No cache-only for config ([8dcb76c](https://framagit.org/framasoft/mobilizon/-/commit/8dcb76c30d4fa835837fd3b3833f83682fbae615)) +* **front:** Small UI fixes on identity pickers ([6faafd6](https://framagit.org/framasoft/mobilizon/-/commit/6faafd639303e4b57ed81db2ffb5db4ad598b904)) +* **i18n:** Update translations ([3b7dbcd](https://framagit.org/framasoft/mobilizon/-/commit/3b7dbcd71f0d19d5e723a03c56ca0b1abbd16f5d)) +* **map:** Fix style of the map marker ([c7b90cd](https://framagit.org/framasoft/mobilizon/-/commit/c7b90cd60a14abea7aebab7e1d87f37a44371f7c)) +* **map:** Only show map details when needed ([23b5e59](https://framagit.org/framasoft/mobilizon/-/commit/23b5e5930cb9bdb57b1d7fa3ec899d7e4d3571be)) +* **map:** Only show marker if we have it's position ([f0cc5ff](https://framagit.org/framasoft/mobilizon/-/commit/f0cc5ffb8feb2f4d70416792a8ab2f4f44bfba85)) +* **password-reset:** Lower time before being available to reset password or resend instructions ([73eb460](https://framagit.org/framasoft/mobilizon/-/commit/73eb4603b185c341b63481ed934f66e19aa0784f)) +* **search:** Fix event search order ([a4e7ee3](https://framagit.org/framasoft/mobilizon/-/commit/a4e7ee37bedc63b2193a401c801b3b1298f566d2)) +* **typespec:** Fix missing return type in typespec ([2043c98](https://framagit.org/framasoft/mobilizon/-/commit/2043c98717e8621b3953d347be0b4a35f494af98)) * Change the way preferredUsername is synced ([a73e5a08](https://framagit.org/framasoft/mobilizon/-/commit/a73e5a085ef48a88dbb8f9c407df0430ca89fe1f)) * datetimepicker: change colors for day & time selectors on dark mode ([b18e8fd3](https://framagit.org/framasoft/mobilizon/-/commit/b18e8fd37c76190ca7f6db82e408cdb005d1810a)) * Save IP and login date from directly registered accounts ([1db5c4ae](https://framagit.org/framasoft/mobilizon/-/commit/1db5c4ae2d49d5adbda2c0825ee0320322b525d6)) From 3eddd5fc8f012c588400120b5b5f48980a6d0a15 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Tue, 23 May 2023 18:35:28 +0200 Subject: [PATCH 07/17] chore(release): release 3.1.0-beta.2 Signed-off-by: Thomas Citharel --- CHANGELOG.md | 6 ++++++ js/package.json | 2 +- mix.exs | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8044ae495..ecd3dcd1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 3.1.0-beta.2 (2023-05-23) + +### Bug Fixes + +* include user role in moderator role ([c4d6019](https://framagit.org/framasoft/mobilizon/-/commit/c4d60194a6900a3f9430355c5fbb346d910e4df6)) + ## 3.1.0-beta.1 (2023-05-17) diff --git a/js/package.json b/js/package.json index 6fe92803f..8be62536e 100644 --- a/js/package.json +++ b/js/package.json @@ -1,6 +1,6 @@ { "name": "mobilizon", - "version": "3.1.0-beta.1", + "version": "3.1.0-beta.2", "private": true, "scripts": { "dev": "vite", diff --git a/mix.exs b/mix.exs index 88b0022c4..e1fa8bd20 100644 --- a/mix.exs +++ b/mix.exs @@ -1,7 +1,7 @@ defmodule Mobilizon.Mixfile do use Mix.Project - @version "3.1.0-beta.1" + @version "3.1.0-beta.2" def project do [ From 67407dae62c68b9d6bf8a999facdaa07988a8a14 Mon Sep 17 00:00:00 2001 From: Dannek Rose Date: Wed, 24 May 2023 03:20:59 +0000 Subject: [PATCH 08/17] Translated using Weblate (Japanese) Currently translated at 40.8% (639 of 1565 strings) Translation: Mobilizon/Frontend Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ja/ --- js/src/i18n/ja.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/src/i18n/ja.json b/js/src/i18n/ja.json index 398143632..cb6d0cb80 100644 --- a/js/src/i18n/ja.json +++ b/js/src/i18n/ja.json @@ -32,7 +32,7 @@ "A resource has been created or updated": "", "A short tagline for your instance homepage. Defaults to \"Gather ⋅ Organize ⋅ Mobilize\"": "", "A twitter account handle to follow for event updates": "", - "A user-friendly, emancipatory and ethical tool for gathering, organising, and mobilising.": "", + "A user-friendly, emancipatory and ethical tool for gathering, organising, and mobilising.": "人を集めて計画して動員するための開放的で取り扱いが簡単で倫理的なソフトです。", "A validation email was sent to {email}": "", "API": "API", "Abandon editing": "", @@ -693,7 +693,7 @@ "Please add as many details as possible to help identify the problem.": "", "Please check your spam folder if you didn't receive the email.": "", "Please contact this instance's Mobilizon admin if you think this is a mistake.": "", - "Please do not use it in any real way.": "", + "Please do not use it in any real way.": "本格的に利用することはご遠慮ください。", "Please enter your password to confirm this action.": "このアクションの確認のため、パスワードを入力してください。", "Please make sure the address is correct and that the page hasn't been moved.": "", "Please read the {fullRules} published by {instance}'s administrators.": "{instance}の管理者によって作成された{fullRules}をお読み下さい。", From d73bafec97cd7d8eda887d21870427262befab0f Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Wed, 24 May 2023 10:56:02 +0200 Subject: [PATCH 09/17] fix(front): reset page number to 1 when search criteria changes Closes #1272 Signed-off-by: Thomas Citharel --- js/src/views/SearchView.vue | 48 ++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/js/src/views/SearchView.vue b/js/src/views/SearchView.vue index ad09e1d23..5d76def9c 100644 --- a/js/src/views/SearchView.vue +++ b/js/src/views/SearchView.vue @@ -868,20 +868,6 @@ const contentType = useRouteQuery( enumTransformer(ContentType) ); -watch(contentType, (newContentType: ContentType) => { - switch (newContentType) { - case ContentType.ALL: - page.value = 1; - break; - case ContentType.EVENTS: - eventPage.value = 1; - break; - case ContentType.GROUPS: - groupPage.value = 1; - break; - } -}); - const isOnline = useRouteQuery("isOnline", false, booleanTransformer); const categoryOneOf = useRouteQuery("categoryOneOf", [], arrayTransformer); const statusOneOf = useRouteQuery( @@ -1261,6 +1247,40 @@ const boostLanguagesQuery = computed((): string[] => { return Array.from(languages); }); +// When search criteria changes, reset page number to 1 +watch( + [ + contentType, + searchDebounced, + geoHashLocation, + start, + end, + radius, + isOnline, + categoryOneOf, + statusOneOf, + languageOneOf, + searchTarget, + bbox, + zoom, + sortBy, + boostLanguagesQuery, + ], + ([newContentType]) => { + switch (newContentType) { + case ContentType.ALL: + page.value = 1; + break; + case ContentType.EVENTS: + eventPage.value = 1; + break; + case ContentType.GROUPS: + groupPage.value = 1; + break; + } + } +); + const { result: searchElementsResult, loading: searchLoading } = useQuery<{ searchEvents: Paginate>; searchGroups: Paginate>; From a7c8cc0b9f02c4c440fcb59d8385647947c7ce85 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Wed, 24 May 2023 10:56:25 +0200 Subject: [PATCH 10/17] style(lint): lint front-end code Signed-off-by: Thomas Citharel --- js/src/views/Settings/AccountSettings.vue | 3 ++- js/src/views/User/ResendConfirmation.vue | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/js/src/views/Settings/AccountSettings.vue b/js/src/views/Settings/AccountSettings.vue index fbe1a1414..001328f04 100644 --- a/js/src/views/Settings/AccountSettings.vue +++ b/js/src/views/Settings/AccountSettings.vue @@ -187,7 +187,8 @@ :placeholder="t('Password')" /> -
{{ t("Instance administrator") }}
-
+
{{ t("Instance administrator") }}
+
{{ t( "The instance administrator is the person or entity that runs this Mobilizon instance." ) }}
-
{{ t("Application") }}
-
+
{{ t("Application") }}
+
{{ t( "In the following context, an application is a software, either provided by the Mobilizon team or by a 3rd-party, used to interact with your instance." ) }}
-
{{ t("API") }}
-
+
{{ t("API") }}
+
{{ t( "An “application programming interface” or “API” is a communication protocol that allows software components to communicate with each other. The Mobilizon API, for example, can allow third-party software tools to communicate with Mobilizon instances to carry out certain actions, such as posting events on your behalf, automatically and remotely." ) }}
-
{{ t("SSL/TLS") }}
+
{{ t("SSL/TLS") }}
-
{{ t("Cookies and Local storage") }}
-
+
{{ t("Cookies and Local storage") }}
+
{{ t( "A cookie is a small file containing information that is sent to your computer when you visit a website. When you visit the site again, the cookie allows that site to recognize your browser. Cookies may store user preferences and other information. You can configure your browser to refuse all cookies. However, this may result in some website features or services partially working. Local storage works the same way but allows you to store more data."