Unverified Commit 76473a2a authored by IKEDA Soji's avatar IKEDA Soji Committed by GitHub
Browse files

Merge branch 'sympa-6.2' into pr/release-6.2.68

parents c433db28 9ef3ebe5
......@@ -36,6 +36,7 @@ check_SCRIPTS = \
t/Message_smime.t \
t/Message_urlize.t \
t/Regexps.t \
t/Request_Handler_add+del.t \
t/Scenario.t \
t/Tools_Data.t \
t/Tools_File.t \
......@@ -232,12 +233,16 @@ distcheck-hook:
-sha256sum $(DIST_ARCHIVES) > $(DIST_ARCHIVES).sha256
-openssl sha512 $(DIST_ARCHIVES) > $(DIST_ARCHIVES).sha512
# tidyall --conf-file doc/dot.tidyallrc --root-dir . --recursive src t xt
tidyall:
tidyall --conf-file doc/dot.tidyallrc --root-dir . -r src t xt
@ ( echo 'exit 1 if grep { $$_->error }'; \
echo 'Code::TidyAll->new_from_conf_file('; \
echo ' "doc/dot.tidyallrc", root_dir => ".", recursive => 1'; \
echo ')->process_paths(qw(src xt t))' \
) | $(PERL) -MCode::TidyAll
all-local: sympa.conf-dist
sympa.conf-dist:
@PERL5LIB=$(srcdir)/src/lib; export PERL5LIB; \
$(PERL) mk-sympa-dist.pl
# Change Log
## [6.2.67b.2](https://github.com/sympa-community/sympa/tree/6.2.67b.2) (202X-XX-XX)
## [6.2.67b.2](https://github.com/sympa-community/sympa/tree/6.2.67b.2) (2021-11-26)
[Full Changelog](https://github.com/sympa-community/sympa/compare/6.2.67b.1...6.2.67b.2)
......
......@@ -25,7 +25,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ(2.60)
AC_INIT(sympa, 6.2.66, sympa-developpers@listes.renater.fr)
AC_INIT(sympa, 6.2.67b.2, sympa-developpers@listes.renater.fr)
AM_INIT_AUTOMAKE([foreign -Wall -Werror 1.9 tar-pax])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AM_PO_SUBDIRS
......
......@@ -5,8 +5,12 @@
# Notation suggested on https://metacpan.org/pod/Carton#PERL-VERSIONS
requires 'perl', '5.16.0';
# This module provides zip/unzip for archive and shared document download/upload
requires 'Archive::Zip', '>= 1.05';
# Used to zip/unzip for archive and shared document download/upload.
# Note: Some environments not providing 'Archive::Zip::Simple*' modules may
# use a memory-consuming module 'Archive::Zip' for the alternative.
requires 'Archive::Zip::SimpleUnzip', '>= 0.024';
requires 'Archive::Zip::SimpleZip', '>= 0.021';
#requires 'Archive::Zip', '>= 1.05';
# Required to run Sympa web interface
requires 'CGI', '>= 3.51';
......@@ -204,15 +208,16 @@ feature 'Crypt::Eksblowfish', 'Used to encrypt passwords with the Bcrypt hash al
};
feature 'x509-auth', 'Required to extract user certificates for SSL clients and S/MIME messages.' => sub {
requires 'Crypt::OpenSSL::X509', '>= 1.800.1';
# Note: email() for certificate on versions < 1.909 was broken.
requires 'Crypt::OpenSSL::X509', '>= 1.909';
};
feature 'smime', 'Required to sign, verify, encrypt and decrypt S/MIME messages.' => sub {
requires 'Convert::ASN1', '>= 0.14';
requires 'Crypt::SMIME', '>= 0.15';
# Required to extract user certificates for SSL clients and S/MIME messages.
# Note: On versions < 1.808, the value() method for extension was broken.
requires 'Crypt::OpenSSL::X509', '>= 1.808';
# Note: value() for extension on versions < 1.808 was broken.
# Note: email() for certificate on versions < 1.909 was broken.
requires 'Crypt::OpenSSL::X509', '>= 1.909';
};
feature 'csv', 'CSV database driver, required if you include list members, owners or moderators from CSV file.' => sub {
......
......@@ -158,6 +158,9 @@ message_hook privileged_owner read
personalization owner,privileged_owner read
default_owner_options owner read
default_editor_options owner read
default privileged_owner write
default owner write
default editor read
......
......@@ -368,10 +368,8 @@ Subject: [%"Listmaster: internal server error"|loc(list.name)|qencode%]
[%|loc(who)%] User %1 has encountered an internal server error[%END%]
([%|loc%]Web interface[%END%] - ACTION[%|loc%]:[%END%] [%action%][% IF list.name %] - LIST[%|loc%]:[%END%] [%list.name%]@[%domain%][%END%])[%|loc%]:[%END%]
[%IF error == 'chdir_error' %][%|loc%]Unable to change directory.[%END%]
[%ELSIF error == 'no_authentication_service_name' %][%|loc%]The authentication server name is not defined.[%END%]
[%IF error == 'no_authentication_service_name' %][%|loc%]The authentication server name is not defined.[%END%]
[%ELSIF error == 'auth_conf_no_identified_user' %][%|loc%]auth.conf error: either email_http_header or host/get_email_by_uid_filter entries should be defined.[%END%]
[%ELSIF error == 'unknown_authentication_service' %][%|loc(name)%]Unknown authentication service %1.[%END%]
[%ELSIF error == 'add_user_db_failed' %][%|loc(user)%]Add user '%1' in DB failed.[%END%]
[%ELSIF error == 'update_user_db_failed' %][%|loc(user)%]Update user '%1' in DB failed[%END%][% IF old_email %][%|loc(old_email)%] (old email: %1)[%END%][%END%]
[%ELSIF error == 'add_subscriber_db_failed' %][%|loc(sub)%]Add subscriber '%1' in DB failed.[%END%]
......@@ -395,8 +393,6 @@ Subject: [%"Listmaster: internal server error"|loc(list.name)|qencode%]
[%ELSIF error == 'month_not_found' %][%|loc(month,list.name)%]Unable to find month '%1' for list '%2'[%END%][%IF dir%][%|loc(dir)%]: unable to read '%1'.[%END%][%END%]
[%ELSIF error == 'arc_not_found' %][%|loc(arc_file,list.name,path)%]Unable to find archive '%1' for list '%2'[%END%][%IF path%][%|loc(path)%]: unable to read '%1'.[%END%][%END%]
[%ELSIF error == 'inaccessible_archive' %][%|loc(list.name)%]Unable to find archive for list '%1'[%END%][%IF path%][%|loc(path)%]: unable to read '%1'.[%END%][%END%]
[%ELSIF error == 'may_not_send_me'%][%|loc()%]Unable to send archive: no message id found.[%END%]
[%ELSIF error == 'archive_not_found'%][%|loc(msgid)%]No message found in archives matching Message-ID '%1'.[%END%]
[%ELSIF error == 'cannot_save_config'%][%|loc(list.name)%]Cannot save config file for list '%1'.[%END%]
[%ELSIF error == 'failed_to_install_aliases'%][%|loc%]Failed to install aliases.[%END%]
[%ELSIF error == 'failed_to_remove_aliases'%][%|loc%]Failed to remove aliases.[%END%]
......@@ -416,7 +412,6 @@ Subject: [%"Listmaster: internal server error"|loc(list.name)|qencode%]
[%ELSIF error == 'delete_shared'%][%|loc(list.name)%]Cannot delete shared for list '%1'.[%END%]
[%ELSIF error == 'browse_shared'%][%|loc%]Impossible to browse shared documents for list '%1'.[%END%]
[%ELSIF error == 'cannot_upload'%][%|loc(path)%]Cannot upload file '%1'.[%END%]
[%ELSIF error == 'cannot_unzip' %][%|loc(name)%]Cannot unzip file '%1'.[%END%]
[%ELSIF error == 'error_during_unzip' %][%|loc(name)%]Errors while unzipping file '%1'.[%END%]
[%ELSIF error == 'cannot_send_remind' %][%|loc(from,list.name)%]Unable to send command REMIND from '%1' to list '%2'.[%END%]
[%ELSIF error == 'cannot_send_mail' %][%|loc(from,list.name)%]Unable to send mail from '%1' to list '%2'.[%END%]
......@@ -424,7 +419,6 @@ Subject: [%"Listmaster: internal server error"|loc(list.name)|qencode%]
[%ELSIF error == 'del_sub_request' %][%|loc(sub)%]Unable to delete subscription request for user '%1'.[%END%]
[%ELSIF error == 'add_file_zip' %][%|loc(file)%]Unable to add file '%1' to archives.[%END%]
[%ELSIF error == 'write_file_zip' %][%|loc(zipfile)%]Unable to write zip file '%1'.[%END%]
[%ELSIF error == 'err_404' %][%|loc(zipfile)%]File not found.[%END%]
[%ELSIF error == 'new_document_failed' %][%|loc(path,list.name)%]Unable to create a Shared Document with path '%1' for list '%2'.[%END%]
[%ELSIF error == 'cookie_error' %][%|loc%]Parameter cookie undefined, authentication failure.[%END%]
[%ELSIF error == 'cookie_error_env' %][%|loc(env)%]Cookie error: '%1' undefined, authentication failure.[%END%]
......
......@@ -236,9 +236,6 @@
[% IF report_entry == '' ~%]
[%~ ELSIF report_entry == 'month_not_found' ~%]
[%|loc(report_param.month)%]Unable to find month '%1'[%END%]
[%~ ELSIF report_entry == 'inaccessible_archive' ~%]
[%|loc(report_param.year_month)%]Archives from %1 are not accessible[%END%]
......@@ -272,9 +269,6 @@
[%~ ELSIF report_entry == 'no_identified_user' ~%]
[%|loc%]Failed to get your email address from the authentication service.[%END%]
[%~ ELSIF report_entry == 'err_404' ~%]
[%|loc(report_param.key)%]File not found.[%END%]
[%~ ELSIF report_entry == 'db_error' ~%]
[%|loc%]Database error.[%END%]
......@@ -290,6 +284,12 @@
[%~ ELSIF report_entry == 'unable_to_rename_list' ~%]
[%|loc(report_param.listname,report_param.new_listname)%]Unable to rename list '%1' to '%2'.[%END%]
[%~ ELSIF report_entry == 'unable_to_add_to_database' ~%]
[%|loc(report_param.email)%]Attempts to add some users in database failed.[%END%]
[%~ ELSIF report_entry == 'unable_to_delete_from_database' ~%]
[%|loc(report_param.email)%]Attempts to delete some users in database failed.[%END%]
[%~ END ~%]
[%############################~%]
......@@ -899,6 +899,30 @@ Warning: this message may already have been sent by one of the list's moderators
[%~ ELSIF report_entry == 'no_classic_session' ~%]
[%|loc()%]You are not authorized to delete your account if you are not using the built-in authentication (i.e. you are using a LDAP authentication, a SSO system, etc.).[%END%]
[%~ ELSIF report_entry == 'unknown_authentication_service' ~%]
[%|loc(report_param.name)%]Unknown authentication service %1.[%END%]
[%~ ELSIF report_entry == 'no_message_id_to_send' ~%]
[%|loc()%]Unable to send archive: no message id found.[%END%]
[%~ ELSIF report_entry == 'no_message_id_to_view' ~%]
[%|loc()%]Unable to view archived message: no message id found.[%END%]
[%~ ELSIF report_entry == 'list_not_configured_for_tracking' ~%]
[%|loc()%]This list is not configured for tracking.[%END%]
[%~ ELSIF report_entry == 'no_message_id_in_archive' ~%]
[%|loc(report_param.msgid)%]No message found in archives matching Message-ID '%1'.[%END%]
[%~ ELSIF report_entry == 'unknown_scenario' ~%]
[%|loc(report_param.msgid)%]Unknown scenario '%1'.[%END%]
[%~ ELSIF report_entry == 'month_not_found' ~%]
[%|loc(report_param.month)%]Unable to find month '%1'[%END%]
[%~ ELSIF report_entry == 'cannot_get_privilege' ~%]
[%|loc()%]You are not allowed to get the privilege of this user.[%END%]
[%~ END ~%]
[%~ END ~%]
......@@ -117,6 +117,14 @@ q:before, q:after {
content: none;
}
/***
* Foundation 6: Expand width of tooltip (See GH issue #1262)
*/
.tooltip {
max-width: 20rem;
}
/***
* Foundation 6: Preventing FOUC.
*/
......
......@@ -17,15 +17,6 @@
</br>
[% END %]
[%###################-%]
[%#### SYSTEM ERROR -%]
[%###################-%]
[% FOREACH s_err = system_errors %]
[%|loc(s_err.action)%]SYSTEM ERROR (%1)[%END-%]
[% IF s_err.msg == 'a' %][% END %]
<br />
[% END %]
[%###################-%]
[%#### USER ERROR -%]
[%###################-%]
......
......@@ -47,7 +47,7 @@
[% PROCESS 'user_menu.tt2' %]
</ul>
</li>
[%~ ELSIF use_passwd || use_sso || authentication_info_url ~%]
[%~ ELSIF use_passwd || sso.size || authentication_info_url ~%]
[% PROCESS 'login_menu.tt2' %]
[%~ END %]
</ul>
......
......@@ -6,7 +6,7 @@
[% ELSE ~%]
<h2>
<i class="fa fa-user"></i>
[% IF use_sso && use_passwd && only_passwd ~%]
[% IF sso.size && use_passwd && only_passwd ~%]
[%|loc%]Login locally[%END%]
[%~ ELSE ~%]
[%|loc%]Login[%END%]
......@@ -17,7 +17,7 @@
[%|loc%]In order to perform a privileged operation (one that requires your email address), you need to login.[%END%]
</p>
[% IF use_sso && !only_passwd ~%]
[% IF sso.size && !only_passwd ~%]
<div class="row">
<div class="columns">
<form id="use-sso" action="[% path_cgi %]" method="post">
......@@ -27,7 +27,7 @@
<input type="hidden" name="list" value="[% list %]" />
<input type="hidden" name="action" value="sso_login" />
<input type="hidden" name="nomenu" value="[% nomenu %]" />
[% IF sso_number == 1 ~%]
[% IF sso.size == 1 ~%]
[% FOREACH server = sso ~%]
<input type="hidden" name="auth_service_name" value="[% server.key %]" />
<button type="submit" name="action_sso_login" value="[% server.value %]">
......@@ -53,9 +53,9 @@
</form>
</div>
</div>
[% END # IF use_sso && !only_passwd ~%]
[% END # IF sso.size && !only_passwd ~%]
[% IF use_passwd && use_sso && !only_passwd ~%]
[% IF use_passwd && sso.size && !only_passwd ~%]
<hr />
<h3>
<i class="fa fa-user"></i> [%|loc%]Login locally[%END%]
......
<!-- login_menu.tt2 -->
[% IF use_sso ~%]
[% IF sso.size ~%]
<li>
<form id="use-sso" action="[% path_cgi %]" method="post">
<fieldset>
<input type="hidden" name="list" value="[% list %]" />
<input type="hidden" name="action" value="sso_login" />
[% IF sso_number == 1 ~%]
[% IF sso.size == 1 ~%]
[% FOREACH server = sso ~%]
<input type="hidden" name="auth_service_name" value="[% server.key %]" />
<span>
......@@ -36,22 +36,22 @@
</li>
[%~ END %]
[% IF use_passwd == '1' AND use_sso ~%]
[% IF use_passwd AND sso.size ~%]
<li class="divider show-for-small" role="separator"></li>
[%~ END %]
[% IF use_passwd == '1' ~%]
[% IF use_passwd ~%]
[% IF action == 'login'; SET class = 'active'; END ~%]
<li class="[% class %]">
<form action="[% path_cgi %]" method="POST">
<fieldset>
[% IF use_sso ~%]
[% IF sso.size ~%]
<input type="hidden" name="only_passwd" value="1" />
[%~ END %]
<span>
<button type="submit" name="action_login" value="[%|loc%]Login[%END%]">
<i class="fa fa-user"></i>
[% IF use_sso ~%]
[% IF sso.size ~%]
[%|loc%]Login locally[%END%]
[%~ ELSE ~%]
[%|loc%]Login[%END%]
......@@ -61,5 +61,5 @@
</fieldset>
</form>
</li>
[%~ END # IF use_passwd == '1' %]
[%~ END # IF use_passwd %]
<!-- end login_menu.tt2 -->
......@@ -58,7 +58,7 @@
</form>
<br />
[% UNLESS use_sso %]
[% UNLESS sso.size %]
<h4>[%|loc%]Changing your password[%END%]</h4>
<form action="[% path_cgi %]" method="post">
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment