Commit 0205e2ae authored by olivier.salaun's avatar olivier.salaun
Browse files

[feature] The change_email feature has been rewritten as follows :

  - using authenticating URLs to check the new user email (instead of collecting his password)
  - provide an equivalent listmaster feature to change a user's email address
  - check if user is included ; if so, notify the list owner
  - rename list member picture if he changes his member email address
Also removed old code for the following actions : change_identity, unify_email, record_email

New feature to define custom moderation rejection messages. 



git-svn-id: https://subversion.renater.fr/sympa/trunk@5150 05aa8bb8-cd2b-0410-b1d7-8918dfa770ce
parent f7e38f5f
......@@ -165,12 +165,20 @@ Subject: [% FILTER qencode %][%|loc(param0)%]list %1 in status error_config[%END
[% ELSIF type == 'listowner_email_changed' -%]
Subject: [% FILTER qencode %][%|loc(param0)%]List owner/editor email changes[%END%][%END%]
[%|loc(previous_email,new_email)%]User %1 has changed his owner/editor email address to %2. This changed has been performed to the following lists :[%END%]
[%|loc(previous_email,new_email)%]Member %1 has changed his owner/editor email address to %2. This change has been performed for the following lists :[%END%]
[% FOREACH updated_list = updated_lists -%]
[% updated_list %]
[% END %]
[% ELSIF type == 'failed_to_change_included_admin' -%]
Subject: [% FILTER qencode %][%|loc(list.name)%]List %1 : Failed to change admin email address[%END%][%END%]
[%|loc(current_email,new_email,datasource)%]Admin %1 could not change his admin email address (new email address is %2) because he is included via a the following data sources: %3.
If you are able to do so, you should probably update these data sources with this person's new email address.[%END%]
[% ELSIF type == 'error_copy_file' -%]
Subject: [% FILTER qencode %][%|loc(param0)%]list %1 in status error_config[%END%][%END%]
......
......@@ -124,10 +124,24 @@ Subject: [% FILTER qencode %][%|loc(who)%]FYI: automatic removal of user %1[%END
[%END%]
(no action needed)
[% ELSIF type == 'named_filter' -%]
Subject: [% FILTER qencode %][%|loc(list.name)%]List %1 : Named filter error[%END%][%END%]
[%|loc(filter,list.name)%]The %1 named filter could not be evaluated. The list %2 is using it for some authorization scenario.[%END%]
[% ELSIF type == 'automatic_del' -%]
Subject: [% FILTER qencode %][%|loc(who)%]FYI: automatic removal of user %1[%END%][%END%]
[%|loc(who,list.name)%]User "%1" has been automatically removed from list %2. [%END%]
[% IF reason == 'arf' -%]
The user complain to abuse service about a message from the list using email feedback reports format.
[% ELSIF reason == 'welcome' -%]
The welcome message (or a subscription remind) sent to the user has triggered a non-delivery report. The user email address might be incorrect.
[%END%]
(no action needed)
[% ELSIF type == 'failed_to_change_included_member' -%]
Subject: [% FILTER qencode %][%|loc(list.name)%]List %1 : Failed to change member email address[%END%][%END%]
[%|loc(current_email,new_email,datasource)%]User %1 could not change his member email address (new email address is %2) because he is included via a the following data sources: %3.
If you are able to do so, you should probably update these data sources with this person's new email address.[%END%]
[% ELSE -%]
Subject: [% FILTER qencode %][%|loc(list.name,type)%]List %1 / %2[%END%][%END%]
......
......@@ -13,7 +13,7 @@ Content-Type: text/plain; charset="UTF-8";
Content-Transfer-Encoding: 8bit
[%|loc(list.name,msg_from)%]One new message from list %1 from %2 arrived. [%END%]
[%- IF spam_status == 'spam' -%][%|loc%]This message as been tagued as a spam[%END%][% END %]
[%- IF spam_status == 'spam' -%][%|loc%]This message has been tagged as spam[%END%][% END %]
[%|loc(mod_spool_size)%]They are %1 messages awaiting moderation.[%END%]
[%|loc(conf.wwsympa_url,one_time_ticket) %]You can browse and accept or refuse them by web : %1/ticket/%2[%END%]
......
......@@ -36,6 +36,13 @@ Subject: [% FILTER qencode %][%|loc(list.name)%]Management of list %1[%END%][%EN
[%|loc(conf.wwsympa_url)%]Owner and moderator guide: %1/help/admin[%END%]
[% ELSIF type == 'ticket_to_send' -%]
Subject: [% FILTER qencode %][%|loc%]Changing your subscriber email address[%END%][%END%]
[%|loc%]You have requested to change your subscriber email address. To confirm your new email address with the SYMPA server, please click the link below :[%END%]
[% conf.wwsympa_url %]/ticket/[% one_time_ticket %]
[% ELSE -%]
Subject: [% FILTER qencode %][%list.name%] / [%type%][%END%]
......
......@@ -2851,7 +2851,7 @@ sub send_msg_digest {
#
# IN : -$tpl (+): template file name (file.tt2),
# without tt2 extension
# -$who (+): SCALAR |ref(ARRAY) - recepient(s)
# -$who (+): SCALAR |ref(ARRAY) - recipient(s)
# -$robot (+): robot
# -$context : ref(HASH) - for the $data set up
# to parse file tt2, keys can be :
......@@ -6086,6 +6086,21 @@ sub update_user {
return undef;
}
}
## Rename picture on disk if user email changed
if ($values->{'email'}) {
my $file_name = &tools::md5_fingerprint($who);
my $picture_file_path = &Conf::get_robot_conf($self->{'domain'},'pictures_path').'/'.$self->{'name'}.'@'.$self->{'domain'};
foreach my $extension ('gif','png','jpg','jpeg') {
if (-f $picture_file_path.'/'.$file_name.'.'.$extension) {
my $new_file_name = &tools::md5_fingerprint($values->{'email'});
unless (rename $picture_file_path.'/'.$file_name.'.'.$extension, $picture_file_path.'/'.$new_file_name.'.'.$extension) {
&do_log('err', "Failed to rename %s to %s : %s", $picture_file_path.'/'.$file_name.'.'.$extension, $picture_file_path.'/'.$new_file_name.'.'.$extension, $!);
}
}
}
}
## Reset session cache
$list_cache{'get_subscriber'}{$self->{'domain'}}{$name}{$who} = undef;
......@@ -9315,7 +9330,7 @@ sub get_which {
@{$requested_lists} = keys %{$db_which->{$robot}};
}
## This call is required to
## This call is required too
my $all_lists = &get_lists($robot, {}, $requested_lists);
foreach my $list (@$all_lists){
......@@ -11147,6 +11162,26 @@ sub search_datasource {
return undef;
}
## Return the names of datasources, given a coma-separated list of source ids
# IN : -$class
# -$id : datasource ids (coma-separated)
# OUT : -$name : datasources names (scalar)
sub get_datasource_name {
my ($self, $id) = @_;
&do_log('debug2','(%s,%s)', $self->{'name'}, $id);
my %sources;
my @ids = split /,/,$id;
foreach my $id (@ids) {
## User may come twice from the same datasource
unless (defined ($sources{$id})) {
$sources{$id} = $self->search_datasource($id);
}
}
return join(', ', values %sources);
}
## Remove a task in the tasks spool
sub remove_task {
my $self = shift;
......
......@@ -313,7 +313,7 @@ sub get_first_db_log {
'DoCommand','SendDigest'],
'authentication' => ['login','logout','loginrequest','sendpasswd',
'ssologin','ssologin_succeses','remindpasswd',
'change_identity','choosepasswd'],
'choosepasswd'],
'subscription' => ['subscribe','signoff','add','del','ignoresub',
'subindex'],
'list_management' => ['create_list','rename_list','close_list',
......@@ -321,7 +321,7 @@ sub get_first_db_log {
'purge_list','edit_template','copy_template',
'remove_template'],
'bounced' => ['resetbounce','get_bounce'],
'preferences' => ['set','setpref','pref','change_email','setpasswd','record_email','editsubscriber'],
'preferences' => ['set','setpref','pref','change_email','setpasswd','editsubscriber'],
'shared' => ['d_unzip','d_upload','d_read','d_delete','d_savefile',
'd_overwrite','d_create_dir','d_set_owner','d_change_access',
'd_describe','d_rename','d_editfile','d_admin',
......
......@@ -1873,7 +1873,7 @@ sub DoMessage{
&do_log('info', 'Key %s for list %s from %s sent to editors, %s', $key, $listname, $sender, $message->{'filename'});
# do not report to the sender if the message was tagued as a spam
# do not report to the sender if the message was tagged as a spam
unless (($2 eq 'quiet')||($message->{'spam_status'} eq 'spam')) {
unless (&report::notice_report_msg('moderating_message',$sender,{'message' => $message},$robot,$list)) {
&do_log('notice',"sympa::DoMessage(): Unable to send template 'message_report', entry 'moderating_message' to $sender");
......@@ -1892,7 +1892,7 @@ sub DoMessage{
&do_log('info', 'Message for %s from %s sent to editors', $listname, $sender);
# do not report to the sender if the message was tagued as a spam
# do not report to the sender if the message was tagged as a spam
unless (($2 eq 'quiet')||($message->{'spam_status'} eq 'spam')) {
unless (&report::notice_report_msg('moderating_message',$sender,{'message' => $message},$robot,$list)) {
&do_log('notice',"sympa::DoMessage(): Unable to send template 'message_report', type 'success', entry 'moderating_message' to $sender");
......@@ -1963,7 +1963,7 @@ sub DoCommand {
my $sender = $message->{'sender'};
if ($msg->{'spam_status'} eq 'spam'){
&do_log('notice', "Message for robot %s@%s ignored, because tagued as spam (Message-id: %s)",$rcpt,$robot,$messageid);
&do_log('notice', "Message for robot %s@%s ignored, because tagged as spam (Message-id: %s)",$rcpt,$robot,$messageid);
return undef;
}
......
......@@ -53,7 +53,7 @@ my $separator="------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -----
## also be changed
my %regexp = ('email' => '([\w\-\_\.\/\+\=\'\&]+|\".*\")\@[\w\-]+(\.[\w\-]+)+',
'family_name' => '[a-z0-9][a-z0-9\-\.\+_]*',
'template_name' => '[a-zA-Z0-9][a-zA-Z0-9\-\.\+_]*',
'template_name' => '[a-zA-Z0-9][a-zA-Z0-9\-\.\+_\s]*', ## Allow \s
'host' => '[\w\.\-]+',
'multiple_host_with_port' => '[\w\.\-]+(:\d+)?(,[\w\.\-]+(:\d+)?)*',
'listname' => '[a-z0-9][a-z0-9\-\.\+_]{0,49}',
......
<!-- $Id$ -->
[%|loc%]You will receive an email, reminding you your password.[%END%]<br />
[%|loc%]To confirm your email address change, please enter the password
you received below :[%END%]
<form action="[% path_cgi %]" method="post">
<fieldset>
<input type="hidden" name="email" value="[% email %]" />
<label for="password"><span class="color_dark">[%|loc(email)%]Password for %1[%END%]: </span></label>
<br />&nbsp;&nbsp;&nbsp;<input id ="password" type="password" name="password" size="15" />
<br /><br /><input type="submit" class="MainMenuLinks" name="action_change_email" value="[%|loc%]Change my email address[%END%]" />
</fieldset>
</form>
[%|loc%]You will receive an email, with a confirmation ticket.[%END%]<br />
[%|loc%]To confirm your email address change, go to your email account and click on the ticket[%END%]
<!-- $Id: change_email_request.tt2 3907 2008-08-08 14:50:16Z peter.hart $ -->
[%|loc%]Changing your email address is a sensitive operation so we need to verify that it is really your email.[%END%]<br />
[%|loc(new_email)%]To this end we have sent you an email to this address : %1 with a confirmation ticket.[%END%]<br />
[%|loc%]To confirm your email address change, go to your email account and click on the ticket[%END%]
......@@ -12,21 +12,43 @@
</textarea>
<br />
<input class="MainMenuLinks" type="submit" name="action_savefile" value="[%|loc%]Save[%END%]" />
</fieldset>
</form>
[% ELSE %]
<form action="[% path_cgi %]" method="post">
<fieldset>
[%|loc%]You can edit several messages/files associated with your list :[%END%]<br /><br />
<dl>
<dd><input type="hidden" name="list" value="[% list %]" />
<select name="file">
[% FOREACH f = files %]
<option value="[% f.key %]" [% f.value.selected %]>[% f.value.complete %]</option>
[% END %]
</select>
<input class="MainMenuLinks" type="submit" name="action_editfile" value="[%|loc%]Edit[%END%]" />
</dd></dl>
[% PROCESS 'help_editfile.tt2' %]
<h4>[%|loc%]HTML pages[%END%]</h4>
<a href="[% path_cgi %]/editfile/[%list%]/homepage" class="MainMenuLinks">[%|loc%]Edit[%END%]</a> [%|helploc%]List homepage : HTML text to describe the list. It is printed on the right-hand side of the main list page. (default for this is the list description)[%END%]<br />
<a href="[% path_cgi %]/editfile/[%list%]/info" class="MainMenuLinks">[%|loc%]Edit[%END%]</a> [%|helploc%]List description : This text is sent as an answer to the mail command
INFO. It can also be included in the <em>Welcome message</em>.[%END%]<br />
<h4>[%|loc%]Automatic messages[%END%]</h4>
<a href="[% path_cgi %]/editfile/[%list%]/welcome.tt2" class="MainMenuLinks">[%|loc%]Edit[%END%]</a> [%|helploc%]Welcome message: This message is sent to new subscribers. It can be a full MIME structured message (only for MIME gurus).[%END%]<br />
<a href="[% path_cgi %]/manage_template/ls_template/[% list %]/reject" class="MainMenuLinks">[%|loc%]Edit[%END%]</a> [%|helploc%]Rejection message : when a message is rejected by list editor, a notification can be sent to the original author. You may prepare various rejection messages.[%END%]<br />
<a href="[% path_cgi %]/editfile/[%list%]/remind.tt2" class="MainMenuLinks">[%|loc%]Edit[%END%]</a> [%|helploc%]Remind message : This message is sent to each subscriber
when using the command REMIND. It's very useful to help people who are confused about their own subscription emails or people who are not able to unsubscribe themselves.[%END%]<br />
<a href="[% path_cgi %]/editfile/[%list%]/invite.tt2" class="MainMenuLinks">[%|loc%]Edit[%END%]</a> [%|helploc%]Subscribing invitation message : sent to a person if someone
uses the INVITE command to invite someone to subscribe.[%END%]<br />
<h4>[%|loc%]Added in distributed messages[%END%]</h4>
<a href="[% path_cgi %]/editfile/[%list%]/message.footer" class="MainMenuLinks">[%|loc%]Edit[%END%]</a> [%|helploc%]Message footer: If this file is not empty, it is added as a MIME attachment at the end of each message distributed to the list.[%END%]<br />
<a href="[% path_cgi %]/editfile/[%list%]/message.header" class="MainMenuLinks">[%|loc%]Edit[%END%]</a> [%|helploc%]Message header: If this file is not empty, it is added as a MIME attachment at the beginning of each message distributed to the list.[%END%]<br />
<h4>[%|loc%]More[%END%]</h4>
<a href="[% path_cgi %]/editfile/[%list%]/bye.tt2" class="MainMenuLinks">[%|loc%]Edit[%END%]</a> [%|helploc%]Unsubscribe message : This message is sent when users leave the list.[%END%]<br />
<a href="[% path_cgi %]/editfile/[%list%]/removed.tt2" class="MainMenuLinks">[%|loc%]Edit[%END%]</a> [%|helploc%]Deletion message : This message is sent to users when you
remove them from the list using the DEL command (unless you hit the Quiet button).[%END%]<br />
[% END %]
</fieldset>
</form>
......@@ -102,7 +102,7 @@
[% ELSIF u_err.msg == 'no_content' %][%|loc%]Failed : your content is empty[%END%]
[% ELSIF u_err.msg == 'cannot_overwrite' %] [%|loc(u_err.path)%]Cannot overwrite file %1[%END%] : [% u_err.reason %]
[% ELSIF u_err.msg == 'doc_already_a_dir' %] [%|loc(u_err.path)%]A directory named '%1' already exists[%END%] : [% u_err.reason %]
[% ELSIF u_err.msg == 'doc_already_exists' %] [%|loc(u_err.name)%]This is an already existing document : '%1'[%END%]
[% ELSIF u_err.msg == 'doc_already_exist' %] [%|loc(u_err.name)%]This is an already existing document : '%1'[%END%]
[% ELSIF u_err.msg == 'no_name' %][%|loc%]No name specified[%END%]
[% ELSIF u_err.msg == 'shared_full' %][%|loc%]The document repository exceed disk quota.[%END%]
[% ELSIF u_err.msg == 'cannot_upload' %] [%|loc(u_err.path)%]Cannot upload file %1[%END%] : [% u_err.reason %]
......@@ -122,6 +122,8 @@
[% ELSIF u_err.msg == 'template_exists' %][%|loc(u_err.argument)%]This Template '%1' already exists[%END%]
[% ELSIF u_err.msg == 'cannot_delete' %][%|loc(u_err.file_del)%]Cannot delete this file '%1'[%END%]
[% ELSIF u_err.msg == 'invalid_filename' %][%|loc(u_err.filename)%]Invalid filename: '%1'[%END%]
[% ELSIF u_err.msg == 'change_member_email_failed_included' %][%|loc(u_err.listname)%]Failed to update member email in list '%1', list owner has been notified.[%END%]
[% ELSIF u_err.msg == 'change_admin_email_failed_included' %][%|loc(u_err.listname)%]Failed to update admin email in list '%1', list owner has been notified.[%END%]
[% ELSIF u_err.msg %][%u_err.msg%]
[% END %]
<br />
......
......@@ -177,58 +177,25 @@
<p>[%|helploc%]You can also <strong>unsubscribe subscribers whose addresses are still bouncing</strong>: too many bouncing addresses cause a considerable load on the mailing list server. To unsubscribe subscribers, select them by ticking the boxes in front of their names and click on the '<strong>Delete selected email addresses</strong>' button.[%END%]</p>
<p class="retraitita">[%|helploc%]Tip: to select all subscribers at once, first make sure that they are all displayed on the page, and then click on the 'Toggle selection' button: all subscribers will be selected in a single click![%END%]</p>
<h4><a name="moderate"></a>[%|helploc%]Moderating messages sent to the list[%END%]</h4>
<p>[%|helploc%]When a list is moderated, <strong>all messages have to be approved of by one of the moderators before being distributed to the list</strong>. After sending a message to a list, subscribers are automatically notified by email that their message will be moderated. As for moderators, they also receive a notice message from Sympa, which includes the message to moderate.[%END%]</p>
<p>[%|helploc%]You can <strong>perform moderating tasks</strong> either <strong>by email</strong>, by answering the messages received from Sympa, or <strong>through the mailing list web interface</strong>. To do that, click on the '<strong>Message</strong>' link in the 'Moderate' submenu: you are brought to a page that displays all messages to be moderated (the most recent messages are on top of the table). <strong>To read a message, click on its subject</strong>.[%END%]</p>
<p>[%|helploc%]You can <strong>perform moderating tasks</strong> either <strong>by email</strong>, by answering the messages received from Sympa, or <strong>through the mailing list web interface</strong>. To do that, click on the '<strong>Message</strong>' link in the 'Moderate' submenu: you are brought to a page that displays all messages to be moderated (the most recent messages are on top of page). <strong>To read a message, click on its subject</strong>.[%END%]</p>
<p>[%|helploc%]Several actions can also be performed on these messages :[%END%]</p>
<p>[%|helploc%]You have <strong>two options</strong>:[%END%]</p>
<ul>
<li>[%|helploc%]<strong>Distribute :</strong> After one or more messages have been selected from the main menu, you click this button to distribute them to the mailing list.[%END%]</li>
<li>[%|helploc%]<strong>Edit Blacklist : </strong>This button brings up which email addresses are in the blacklist and allows you to add or remove further entries[%END%]</li>
<li>[%|helploc%]<strong>Reject (+menu) : </strong>Once you have selected the desired reject message (from the adjacent menu) this button sends the rejection message to the sender[%END%]</li>
<p class="retraitita">[%|helploc%]Note : There is an option in the reject message menu 'Do Not Notify' to be used when you do not wish to notify the sender that you have rejected their message.[%END%]</p></li>
<li>[%|helploc%]<strong>Blacklist : </strong>This checkbox is used in conjunction with the list of messages to be moderated, the rejection message menu and the reject button. First select the messages concerned then check the Blacklist checkbox then click reject. All the selected messages will be erased, all the senders emails will be added to the blacklist <strong>without</strong> notification.[%END%]</li>
<p class="retraitita">[%|helploc%]Be careful: rejecting a message and notifying its sender is only available through the mailing list web interface.[%END%]</p></li>
<p>[%|helploc%]There is also an option to modify the reject messages which we will discuss here[%END%]</p>
<ul>
<p>[%|helploc%]<strong>This screen is divided into two parts :</strong>[%END%]
<li>[%|helploc%]<strong>Modify or Delete Existing Messages</strong>[%END%]</li>
<li>[%|helploc%]<strong>Create New Reject Messages</strong>[%END%]</li>
<p>[%|helploc%]<strong>Modify or Delete Existing Messages</strong>[%END%]
<li>[%|helploc%]<strong>Delete Template : </strong>Once a message has been selected from the menu to the right this button deletes it (will ask for confirmation).[%END%]</li>
<li>[%|helploc%]<strong>Modify Template : </strong>Once a message has been selected this button displays the name and contents of the message in the textfield and textarea below ('Create New Reject Messages' section) where you can make changes and then click <strong>save template </strong>[%END%]</li>
<p class="retraitita">[%|helploc%]Note : In the menu the entries 'Default rejection message' and 'Do Not Notify' are no longer present. This is because they are both default messages and cannot be modified or erased.[%END%]</p></li>
<p>[%|helploc%]<strong>Create New Reject Messages</strong>[%END%]
<li>[%|helploc%]Textfield <strong>Template Name : </strong>This is where you can enter the name of the template you wish to create or where the name of the template to be modified will be displayed.[%END%]</li>
<li>[%|helploc%]Textarea : This is where you can enter the text of the message you wish to create or where the content of the template to be modified will be displayed[%END%]</li>
<li>[%|helploc%]<strong>Default Template : </strong> If pressed this button fills the Textarea with the contents of the 'Default Rejection Message' which can then be modified and saved[%END%]</li>
<li>[%|helploc%]<strong>Save Template : </strong> After the name and contents of the message have been created/modified this button saves the message.[%END%]</li>
<li>[%|helploc%]<strong>Cancel : </strong> This button returns to the 'list of messages to moderate' screen.[%END%]</li>
<li>[%|helploc%]<strong>authorize the message distribution</strong> on the list;[%END%]</li>
<li>[%|helploc%]<strong>reject the message and notify sender</strong>: when you reject a message, it is better to notify its sender...[%END%]<br />
</ul>
<p>[%|helploc%]All moderators can decide to distribute a message or not. However, <strong>the first moderator to process the message will carry the day</strong>. You will be notified by Sympa if you try to process a message that has already been moderated. When there are several moderators, it is <strong>easier to moderate messages from the mailing list web interface</strong>: thus, you will be able to view all messages remaining to be moderated.[%END%]</p>
<p class="retraitita">[%|helploc%]<strong>Whatever the date and time of moderation, the date and time of sending of the message do not change</strong>. Thus, if the distribution of the message is allowed with a lot of delay, it is possible to receive a message dated January 1st on December 31st![%END%]</p>
<p>[%|helploc%]In case the message was rejected with a notice, the subscriber who had sent it is notified by email. You can <a href="#customize">customize the message he/she gets</a>.[%END%]</p>
<p>[%|helploc%]Checking the '<strong>Reject without notification</strong>' checkbox allows you to prevent the message author from receiving a notification.[%END%]</p>
<p>[%|helploc%]Checking the '<strong>Add to blacklist</strong>' checkbox both skip the rejection notification and adds the message author to the list own blacklist. You can manage the blacklist via the '<strong>edit blacklist</strong>' button at the bottom of the page.[%END%]</p>
<p>[%|helploc%]If you wish to customize the rejection message that is sent to a message author, you can do so via the '<strong>Manage rejection messages</strong>' button. The message management page will let define a set of rejection messages and define the default one.[%END%]</p>
<p>[%|helploc(path_cgi)%]<strong>Reminder</strong>: you can <a href="%1/help/listconfig#description">add or remove moderators</a> through the list administration module. To do that, from the list information page, click on '<strong>Admin</strong>', on '<strong>Edit list config</strong>', and then on '<strong>List definition</strong>'.[%END%]</p>
<p>[%|helploc(path_cgi)%]It is also possible to <strong>process messages after their distribution on the list</strong>; this can be useful when a list is not moderated. If you want to <strong>delete a message</strong>, <a href="%1/help/arc#arcsearch">search for it in the online message archive</a> and click on the '<strong>Tag this mail for deletion</strong>' button in the upper right corner of the message. A confirmation message displays; click on 'OK'. The message will be deleted after a few seconds. <strong>Be careful: this operation is irreversible!!! If you delete a message, you will not be able to retrieve it.</strong>[%END%]</p>
......
......@@ -42,43 +42,6 @@
<br />
[% END %]
[% IF unique != '1' %]
<table summary="">
&nbsp;&nbsp;<span class="color_dark">[%|loc%]See your subscriptions with the following email addresses[%END%]</span><br />
<br /><br />
<tr>
<form method="post" action="[% path_cgi %]">
<fieldset>
[% FOREACH email = alt_emails %]
<input name="email" type="hidden" value="[% email.key %]" />
&nbsp;&nbsp;<a href="[% path_cgi %]/change_identity/[% email.key %]/which">[% email.key %]</a>
<br />
[% END %]
</fieldset>
</form>
</tr>
</table>
<br />
<table summary="">
<tr>
&nbsp;&nbsp;<span class="color_dark">[%|loc%]Unify your subscriptions with the email[%END%] <strong>[% user.email %]</strong></span><br />
&nbsp;&nbsp;<span class="color_dark">[%|loc%]That is to say you are using a unique email address in Sympa for your subscriptions and preferences[%END%]</span>
<tr>
<td>
<form action="[% path_cgi %]" method="post">
<fieldset>
&nbsp;&nbsp;<input class="MainMenuLinks" type="submit" name="action_unify_email" value="[%|loc%]Validate[%END%]" />
</fieldset>
</form>
</td>
</tr>
</table>
<br />
[% END %]
[% END %]
[% ELSE %]
<p>[%|loc%]No mailing list available.[%END%]</p>
......
......@@ -40,12 +40,12 @@
[% IF action == 'pref' %][% SET class = 'menuLinksCurrentPage' %][% ELSE %][% SET class = 'menuLinks' %][% END %]
<strong><a class="[% class %]" href="[% path_cgi %]/pref" >[%|loc%]Your preferences[%END%]</a></strong><br />
[% ELSE %]
[% END %]
[% ELSE %]
<div class="MenuBlock">
[% PROCESS 'loginbanner.tt2' %]
</div>
[% END %]
</div><!-- end div=MenuBlock -->
......
<!-- $Id: manage_template.tt2 5269 2008-08-22 15:52:19Z peter.hart $ -->
<form action="[% path_cgi %]" method="post" name="select_templates">
<fieldset>
<h2>[%|loc%]Modify or Delete existing messages[%END%]</h2>
<h2>[%|loc%]Modify or delete existing rejection messages[%END%]</h2>
<p>
<input class="MainMenuLinks" type="submit" name="subaction_delete" onclick="return request_confirm('[% FILTER escape_quote %][%|loc%]Do you really want to delete this reject message?[%END%][%END%]');" value="[%|loc%]Delete Template[%END%]" />
<input class="MainMenuLinks" type="submit" name="subaction_modify" value="[%|loc%]Modify Template[%END%]" />
[% IF available_files %]
<select name="message_template">
[% FOREACH file = available_files %]
<option value="[% file %]" [% IF file == message_template %]selected[% END %]> [% file %]</option>
[%- END- %]
<table border="1">
<table summary="[%|loc%]Listing rejection messages[%END%]" class="listOfItems">
<tr><th colspan="4">[%|loc%]Listing rejection messages[%END%]</th></tr>
<tr><th>[%|loc%]Use as default[%END%]</th><th>[%|loc%]Message name[%END%]</th><th colspan="2">[%|loc%]Operation[%END%]</th></tr>
<form action="[% path_cgi %]" method="post" name="manage_templates">
<fieldset>
<input type="hidden" name="action" value="manage_template">
<input type="hidden" name="list" value="[% list %]">
<input type="hidden" name="new_default" value="[% default_reject_template %]">
[% SET dark = 1 %]
[% FOREACH file = available_files %]
[% IF dark == '1' %]
[% dark = '0' %]
<tr>
[% ELSE %]
[% dark = '1' %]
<tr class="color0">
[% END %]
<td align="center">
<input type="radio" name="subaction_setdefault" value="[% file %]" [% IF file == default_reject_template %] checked="checked" [% ELSE %] onchange="this.form.new_default.value = '[%file%]' ; this.form.submit();" [% END %]>
</td>
<td>
[% file %]
</td>
<td align="center">
<a href="[% path_cgi %]/manage_template/modify/[% list %]/[% file %]" class="MainMenuLinks">[%|loc%]Edit[%END%]</a>
</td>
<td align="center">
<a href="[% path_cgi %]/manage_template/delete/[% list %]/[% file %]" class="MainMenuLinks" onclick="return request_confirm('[% FILTER escape_quote %][%|loc(file)%]Do you really want to delete message %1?[%END%][%END%]')">[%|loc%]Delete[%END%]</a>
</td>
</tr>
[% END %]
</fieldset>
</form>
</select>
[% ELSE %]
<tr><td colspan="4">[%|loc%]There are currently no Rejection Messages available[%END%]<td>
[% END %]
<input type="hidden" name="action" value="manage_template"/>
<input type="hidden" name="list" value="[% list %]"/>
</table>
</table>
</p>
</form>
[%IF content %]
<form action="[% path_cgi %]" method="post" name="edit_templates">
<p>
<h2>[%|loc%]Create New Reject Messages[%END%]</h2>
<h2>[%|loc%]Edit[%END%] [% message_template %]</h2>
</p>
<p>
[%|loc()%]Template Name :[%END%]<input type="text" name="message_template" value="[% message_template %]">
<input class="MainMenuLinks" type="submit" name="subaction_default" value="[%|loc%]Default Template[%END%]" />
</P>
<P>
<!-- [%|loc()%]Message Name :[%END%]<input type="text" name="message_template" value="[% message_template %]"> -->
<!-- <input class="MainMenuLinks" type="submit" name="subaction_default" value="[%|loc%]Default Message[%END%]" /> -->
<textarea NAME="template_content" COLS="50" ROWS="10" WRAP=SOFT>
[% content %]
</TEXTAREA>
</p>
<p>
<input class="MainMenuLinks" type="submit" name="subaction_save" value="[%|loc%]Save Template[%END%]" />
<input class="MainMenuLinks" type="submit" name="subaction_save" value="[%|loc%]Save Message[%END%]" />
<input class="MainMenuLinks" type="submit" name="action_manage_template" value="[%|loc%]Cancel[%END%]" />
<input type="hidden" name="message_template" value="[% message_template %]"/>
<input type="hidden" name="list" value="[% list %]"/>
<input type="hidden" name="action" value="manage_template"/>
</p>
</fieldset>
</form>
[% ELSE %]
<h2>[%|loc%]Create new rejection messages[%END%]</h2>
<form action="[% path_cgi %]" method="post" name="edit_templates">
<fieldset>
<input type="hidden" name="list" value="[%list%]">
<input type="hidden" name="action" value="manage_template">
New message name : <input type="text" name="new_template_name"> <input type="submit" name="subaction_create_new" value="[%|loc%]create[%END%]" class="MainMenuLinks">
</fieldset>
</form>
[% END %]
......@@ -10,35 +10,39 @@
<p>
[%- IF topic_required -%]
<input type="submit" name="action_distribute" value="[%|loc%]Distribute[%END%]" onclick="return checkbox_check_topic(moderate_mails)"/>
<input type="submit" name="action_distribute" value="[%|loc%]Distribute[%END%]" onclick="return checkbox_check_topic(moderate_mails)"/>
</p>
<p>
[%- ELSE -%]
<input class="MainMenuLinks" type="submit" name="action_distribute" value="[%|loc%]Distribute[%END%]" />
<input class="MainMenuLinks" type="submit" name="action_distribute" value="[%|loc%]Distribute[%END%]" />
</p>
<p>
[%- END -%]
[% IF conf.use_blacklist != 'none' %]
<input class="MainMenuLinks" type="submit" name="action_blacklist" value="[%|loc%]edit blacklist[%END%]" />
<input class="MainMenuLinks" type="submit" name="action_reject" value="[%|loc%]Reject[%END%]" onclick="return check_reject_spams(moderate_mails,'[%|loc %]You should probably not reject message detected as spam with notification because the message sender is probably spoofed. Do you really want to reject those messages with notification ?[%END%]')" />
[%- END -%]
<input class="MainMenuLinks" type="submit" name="action_reject" value="[%|loc%]Reject[%END%]" onclick="return check_reject_spams(moderate_mails,'[%|loc %]You should probably not reject message detected as spam with notification because the message sender is probably spoofed. Do you really want to reject those messages with notification ?[%END%]')" />
<input type="hidden" name="from_modindex" value="from_modindex" />
<select name="message_template">
<option value="reject">[%|loc %]Default rejection message[%END%]</option>
<option value="quiet">[%|loc %]Do Not Notify[%END%]</option>
[% FOREACH file = available_files %]
<option value="reject_[% file %]"> [% file %]</option>
[%- END- %]
<option value="reject">[%|loc %]Server default rejection message[%END%]</option>
[% FOREACH file = available_files %]
<option value="reject_[% file %]" [% IF file == default_reject_template %] selected="selected" [%END%] > [% file %]</option>
[%- END- %]
</select>
<br />
[%- END- %]
</select>
<input type=checkbox name="quiet">[%|loc %]Reject without notification [%END%]</option>
<br />
<input type=checkbox name="blacklist">[%|loc %]Blacklist[%END%]</option>
<input type=checkbox name="blacklist">[%|loc %]Add to blacklist[%END%]</option>
</p>
<p>
If you would like to modify the reject messages
<a href="[% path_cgi %]/manage_template/[% list %]">[%|loc%]Click Here[%END%]</a>
[%- IF request_topic -%]
<br />
......@@ -112,11 +116,13 @@ If you would like to modify the reject messages
<input class="MainMenuLinks" type="submit" name="action_reject.quiet" value="[%|loc%]Reject[%END%]" />
<input class="MainMenuLinks" type="submit" name="action_reject" value="[%|loc%]Notified reject[%END%]" />
[% IF conf.use_blacklist != 'none' %]
<input class="MainMenuLinks" type="submit" name="action_reject.blaclist" value="[%|loc%]Reject and blacklist sender[%END%]" />
<input class="MainMenuLinks" type="submit" name="action_reject.blacklist" value="[%|loc%]Reject and blacklist sender[%END%]" />
[% END %]
<br />
[% END %]
<input class="MainMenuLinks" type="button" value="[%|loc%]Toggle Selection[%END%]" onclick="toggle_selection(document.moderate_mails.id); toggle_selection(document.moderate_mails.idspam)" />
[%- END- %]
<input class="MainMenuLinks" type="button" value="[%|loc%]Toggle Selection[%END%]" onclick="toggle_selection(document.moderate_mails.id); toggle_selection(document.moderate_mails.idspam)" />
[%- IF therissomespam -%]
<input class="MainMenuLinks" type="button" value="[%|loc%]Toggle spams[%END%]" onclick="toggle_selection(document.moderate_mails.idspam)" />
[%- END -%]
......@@ -124,6 +130,20 @@ If you would like to modify the reject messages
</fieldset>
</form>
<h2>[%|loc%]Moderation management[%END%] <a class="input" href="[% path_cgi %]/nomenu/help/admin#moderate" title="[%|loc%]Open in a new window[%END%]" onclick="window.open('','wws_help','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=400,height=200')" target="wws_help">[%|loc%]Help[%END%]</a></h2>
<p>
<form action="[% path_cgi %]" method="post" name="moderate_mails">
<fieldset>
<input type="hidden" name="list" value="[% list %]" />
[% IF conf.use_blacklist != 'none' %]
<input class="MainMenuLinks" type="submit" name="action_blacklist" value="[%|loc%]edit blacklist[%END%]" />
[% END %]
<input class="MainMenuLinks" type="submit" name="action_manage_template" value="[%|loc%]Manage rejection messages[%END%]" <br />
</fieldset></form>
</p>