Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improving data sources #516

Merged
merged 25 commits into from
Jun 26, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
5539e75
Fix inconsistencies on parameter names.
ikedas Nov 9, 2018
099c8b6
Copyedit: Suppress unused or redundant codes.
ikedas Nov 12, 2018
74e3428
[bug] include_remote_file should limit protocols to HTTP, HTTPS and FTP.
ikedas Nov 29, 2018
c1b7e32
Refactoring (mostly rewritten). Introducing new classes Sympa::Reques…
ikedas Dec 16, 2018
117e2a2
[feature] Improve include_remote_file data source.
ikedas Dec 17, 2018
c2c7b05
[feature] Improve include_remote_sympa_list data source.
ikedas Dec 17, 2018
266230e
SQLite: Adding a UDF concat_ws().
ikedas Dec 16, 2018
4e6d9b7
[feature] Now data sources won't overwrite existing gecos: It is assi…
ikedas Dec 16, 2018
80f14b9
Copyedit: Remove redundant code.
ikedas Dec 16, 2018
95b40ab
Switch to new code.
ikedas Nov 12, 2018
a70a057
Change in ext/
ikedas Nov 12, 2018
dbb8efc
SQLite: Revert addition of a UDF concat_ws().
ikedas Dec 27, 2018
ae01bc3
[change] Data sources: outdated users will be expired only when all d…
ikedas Dec 27, 2018
9fc3831
[-change] Database schema: inclusion_ext_* fields in subscriber_table…
ikedas Dec 30, 2018
8c3fdd2
Fixup on templates.
ikedas Dec 31, 2018
bf7661f
Refactoring.
ikedas Jan 2, 2019
9a79962
Small fix: Duplicate counts of update.
ikedas Jan 4, 2019
5cd831c
[-release] Updating copyright notices.
ikedas Jan 2, 2019
e67fbc0
Update version numbers.
ikedas Jan 19, 2019
d5b31fe
rebase & fixup
ikedas Feb 3, 2019
1b42ea0
A name of the source by which user was actually included will be stor…
ikedas Feb 7, 2019
f642871
Merge branch 'sympa-6.2' into issue-461-addition-trial5
ikedas Feb 19, 2019
c99f86c
Merge branch 'sympa-6.2' into issue-461-addition-trial5
ikedas Mar 9, 2019
f6a221b
Merge branch 'sympa-6.2' into issue-461-addition-trial5
ikedas May 23, 2019
c4087f3
Update version numbers in comments & docs.
ikedas Jun 26, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions cpanfile
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ feature 'Encode::Locale', 'Useful when running command line utilities in the con
};

feature 'remote-list-including', 'Required when including members of a remote list.' => sub {
requires 'IO::Socket::SSL', '>= 0.90';
requires 'LWP::Protocol::https';
};

feature 'Mail::DKIM::Verifier', 'Required in order to use DKIM features (both for signature verification and signature insertion).' => sub {
Expand All @@ -269,10 +269,17 @@ feature 'ldap', 'Required to query LDAP directories. Sympa can do LDAP-based aut
# openldap-devel is needed to build the Perl code
requires 'Net::LDAP', '>= 0.40';

# Note: 'Net::LDAP::Entry', 'Net::LDAP::Util' and 'Net::LDAPS' are also
# Note: 'Net::LDAP::Entry' and 'Net::LDAP::Util' are also
# included in perl-ldap.
};

feature 'ldap-secure', 'Required to query LDAP directories over TLS.' => sub {
requires 'Net::LDAP', '>= 0.40';
requires 'IO::Socket::SSL', '>= 0.90';

# Note: 'Net::LDAPS' is also included in perl-ldap.
};

feature 'Net::SMTP', 'This is required if you set "list_check_smtp" sympa.conf parameter, used to check existing aliases before mailing list creation.' => sub {
requires 'Net::SMTP';
};
Expand Down
2 changes: 1 addition & 1 deletion default/web_tt2/edit.tt2
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<div class="row">
[% FOREACH kS = pS.format ~%]
[% NEXT UNLESS kS.privilege == 'read' || kS.privilege == 'write' ~%]
[% IF kS.name == 'subscribed' || kS.name == 'included' || kS.name == 'id' ~%]
[% IF kS.name == 'subscribed' || kS.name == 'inclusion' || kS.name == 'inclusion_ext' ~%]
[% NEXT %] [%~# FIXME %]
[%~ END %]

Expand Down
16 changes: 8 additions & 8 deletions default/web_tt2/subscriber_table.tt2
Original file line number Diff line number Diff line change
Expand Up @@ -155,14 +155,14 @@
[%|optdesc('reception')%][% u.reception %][%END%]
</td>
<td>
[% IF u.subscribed %]
[% IF u.included %]
[%|loc%]subscribed[%END%]<br />[% u.sources %]
[% ELSE %]
[%|loc%]subscribed[%END%]
[% END %]
[% ELSE %]
[% u.sources %]
[% IF u.subscribed %][%|loc%]subscribed[%END%][% END ~%]
[% IF u.subscribed && u.inclusion.defined() %]<br />[% END ~%]
[% IF u.inclusion.defined() ~%]
[% IF u.inclusion_label ~%]
[% u.inclusion_label %]
[%~ ELSE ~%]
[%|loc%]included[%END%]
[%~ END %]
[% END %]
</td>
<td>
Expand Down
50 changes: 21 additions & 29 deletions src/cgi/wwsympa.fcgi.in
Original file line number Diff line number Diff line change
Expand Up @@ -4770,7 +4770,6 @@ sub _review_member {
my @users;
my $size;
my $sortby = lc($in{'sortby'} || 'email');
my %sources;

## Access control
return undef unless defined check_authz('do_review', 'review');
Expand Down Expand Up @@ -4869,7 +4868,7 @@ sub _review_member {
}
foreach my $i (@members) {
# Add user
_prepare_subscriber($i, \@additional_fields, \%sources);
_prepare_subscriber($i, \@additional_fields);
push @{$param->{'members'}}, $i;
}

Expand Down Expand Up @@ -5055,7 +5054,6 @@ sub do_show_exclude {
sub do_search {
wwslog('info', '(%s)', $in{'filter'});

my %sources;
my %emails;

## Additional DB fields
Expand Down Expand Up @@ -5097,7 +5095,7 @@ sub do_search {
}

## Add user
_prepare_subscriber($i, \@additional_fields, \%sources);
_prepare_subscriber($i, \@additional_fields);

$record++;
push @{$param->{'members'}}, $i;
Expand Down Expand Up @@ -15124,22 +15122,15 @@ sub do_search_user {
}

if ($role eq 'member') {
$param->{'which'}{$l}{'is_member'} = 1;
$param->{'which'}{$l}{'reception'} =
$list->{'user'}{'reception'};
$param->{'which'}{$l}{'include_source'} =
$list->{'user'}{'include_source'};
$param->{'which'}{$l}{'bounce'} = $list->{'user'}{'bounce'};
$param->{'which'}{$l}{'topic'} = $list->{'user'}{'topic'};
$param->{'which'}{$l}{'included'} =
$list->{'user'}{'included'}
if ($list->{'user'}{'included'} == 1);
$param->{'which'}{$l}{'subscribed'} =
$list->{'user'}{'subscribed'}
if ($list->{'user'}{'subscribed'} == 1);
my $un = $list->{'user'}{'subscribed'};
# $param->{'which'}{$l}{'subscribed'} = 1;

$param->{'which'}{$l}{'is_member'} = 1;
$param->{'which'}{$l}{'subscribed'} = 1
if $list->{'user'}{'subscribed'};
my @keys = qw(reception bounce topic);
@{$param->{'which'}{$l}}{@keys} = @{$list->{'user'}}{@keys};

# Compat. <= 6.2.44
$param->{'which'}{$l}{'included'} = 1
if defined $list->{'user'}{'inclusion'};
} elsif ($role eq 'owner') {
$param->{'which'}{$l}{'is_owner'} = 1;
} elsif ($role eq 'editor') {
Expand Down Expand Up @@ -16747,16 +16738,15 @@ sub do_lca {
sub _prepare_subscriber {
my $user = shift;
my $additional_fields = shift;
my $sources = shift;

## Add user
#FIXME: don't overwrite.
$user->{'date'} =
$language->gettext_strftime("%d %b %Y", localtime($user->{'date'}));
$language->gettext_strftime("%d %b %Y", localtime $user->{'date'});
$user->{'update_date'} =
$language->gettext_strftime("%d %b %Y",
localtime($user->{'update_date'}));
localtime $user->{'update_date'});

## Reception mode and topics
# Reception mode and topics.
$user->{'reception'} ||= 'mail';
if (($user->{'reception'} eq 'mail') && $user->{'topics'}) {
$user->{'reception'} =
Expand All @@ -16767,10 +16757,6 @@ sub _prepare_subscriber {
$user->{'domain'} = $1;
$user->{'pictures_url'} = $list->find_picture_url($user->{'email'});

## Check data sources
$user->{'sources'} = $list->get_datasource_name($user->{'id'})
if ($user->{'id'});

if (@{$additional_fields}) {
my @fields;
foreach my $f (@{$additional_fields}) {
Expand All @@ -16779,6 +16765,12 @@ sub _prepare_subscriber {
$user->{'additional'} = join ',', @fields;
}

# Compat. <= 6.2.44
if (defined $user->{'inclusion'}) {
$user->{'included'} = 1;
$user->{'sources'} = $language->gettext('included');
}

return 1;
}

Expand Down
10 changes: 9 additions & 1 deletion src/lib/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,14 @@ nobase_modules_DATA = \
Sympa/DatabaseDriver/PostgreSQL.pm \
Sympa/DatabaseDriver/SQLite.pm \
Sympa/DatabaseManager.pm \
Sympa/Datasource.pm \
Sympa/DataSource.pm \
Sympa/DataSource/File.pm \
Sympa/DataSource/LDAP.pm \
Sympa/DataSource/LDAP2.pm \
Sympa/DataSource/List.pm \
Sympa/DataSource/RemoteDump.pm \
Sympa/DataSource/RemoteFile.pm \
Sympa/DataSource/SQL.pm \
Sympa/Family.pm \
Sympa/HTML/FormatText.pm \
Sympa/HTMLDecorator.pm \
Expand Down Expand Up @@ -94,6 +101,7 @@ nobase_modules_DATA = \
Sympa/Request/Handler/global_signoff.pm \
Sympa/Request/Handler/help.pm \
Sympa/Request/Handler/import.pm \
Sympa/Request/Handler/include.pm \
Sympa/Request/Handler/index.pm \
Sympa/Request/Handler/info.pm \
Sympa/Request/Handler/invite.pm \
Expand Down
Loading