/[smecontribs]/rpms/smeserver-vacation/contribs9/smeserver-vacation-1.1-auto_enable_disable_vacation.patch
ViewVC logotype

Annotation of /rpms/smeserver-vacation/contribs9/smeserver-vacation-1.1-auto_enable_disable_vacation.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (hide annotations) (download)
Sat Sep 5 07:17:18 2015 UTC (9 years, 1 month ago) by stephdl
Branch: MAIN
CVS Tags: smeserver-vacation-1_1-22_el6_sme, smeserver-vacation-1_1-24_el6_sme, smeserver-vacation-1_1-21_el6_sme, smeserver-vacation-1_1-17_el6_sme, smeserver-vacation-1_1-20_el6_sme, smeserver-vacation-1_1-14_el6_sme, smeserver-vacation-1_1-26_el6_sme, smeserver-vacation-1_1-25_el6_sme, smeserver-vacation-1_1-16_el6_sme, smeserver-vacation-1_1-9_el6_sme, smeserver-vacation-1_1-18_el6_sme, smeserver-vacation-1_1-12_el6_sme, smeserver-vacation-1_1-19_el6_sme, smeserver-vacation-1_1-8_el6_sme, smeserver-vacation-1_1-13_el6_sme, smeserver-vacation-1_1-15_el6_sme, smeserver-vacation-1_1-10_el6_sme, smeserver-vacation-1_1-23_el6_sme, HEAD
Changes since 1.1: +5 -3 lines
* Fri Sep 4 2015 stephane de Labrusse <stephdl@de-labrusse.fr> 1.1-7.sme
- code done by Mats Schuh <m.schuh@neckargeo.net>
- Allow automated enabling and disabling of user vacations on given dates [SME: 7555]
- Above functionality provided by additional db accounts entries and a cron script

1 stephdl 1.1 diff -urN smeserver-vacation-1.1.old/root/etc/cron.d/vacation smeserver-vacation-1.1/root/etc/cron.d/vacation
2     --- smeserver-vacation-1.1.old/root/etc/cron.d/vacation 1970-01-01 01:00:00.000000000 +0100
3 stephdl 1.2 +++ smeserver-vacation-1.1/root/etc/cron.d/vacation 2015-09-04 21:50:28.364085037 +0200
4     @@ -0,0 +1,6 @@
5 stephdl 1.1 +# Check each user account if a vacation message should be enabled
6     +# or disabled based on the given From/To vacation dates
7     +# Do it shortly after midnight on every day
8 stephdl 1.2 +SHELL=/bin/sh
9     +PATH=/sbin/e-smith:/sbin:/bin:/usr/sbin:/usr/bin
10     +5 0 * * * root /sbin/e-smith/vacation/check_vacation_dates.sh
11 stephdl 1.1 diff -urN smeserver-vacation-1.1.old/root/etc/e-smith/locale/de/etc/e-smith/web/functions/uservacations smeserver-vacation-1.1/root/etc/e-smith/locale/de/etc/e-smith/web/functions/uservacations
12     --- smeserver-vacation-1.1.old/root/etc/e-smith/locale/de/etc/e-smith/web/functions/uservacations 2015-09-04 10:53:45.506912186 +0200
13     +++ smeserver-vacation-1.1/root/etc/e-smith/locale/de/etc/e-smith/web/functions/uservacations 2015-09-04 20:05:53.405096692 +0200
14     @@ -21,7 +21,39 @@
15     </entry>
16     <entry>
17     <base>MODIFY_DESCRIPTION</base>
18     - <trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain. To change the vacation message back to the default type "reset". </p> ]]></trans>
19     + <trans><![CDATA[
20     + <p>
21     + Geben Sie hier eine Abwesenheitsnachricht an. Sie können die Variable "$SUBJECT" an beliebiger Stelle im Nachrichtentext einfügen. An dieser Stelle wird in der generierten Abwsenheitsnachricht der Betreff derjenigen empfangenen Nachricht erscheinen, welche die automatische Abwesenheitsnachricht ausgelöst hat.
22     + </p>
23     + <p>
24     + Der Text der Abwesenheitsnachricht sollte aus zwei Teilen bestehen, die voneinander durch eine Leerzeile getrennt sind.
25     + Der obere Teil wird in den Header der generierten Abwesenheitsnachricht eingefügt.
26     + Vor dem eigentlichen Inhalt der Abwesenheitsnachricht muss also auf jeden Fall eine Leerzeile stehen.
27     + </p>
28     + <p>
29     + Die primäre Domain wird der Absenderadresse automatisch hinzugefügt. Sie können aber im "From:"-Header auch eine virtuelle Domäne verwenden.
30     + Um die Abwesenheitsnachricht auf den Standardtext zurückzusetzen geben Sie bitte "reset" ein.
31     + </p>
32     + <p>
33     + Sie können zusätzlich die entsprechenden Felder ausfüllen, um das Versenden der Abwesenheitsnachricht
34     + für diesen Benutzer-Account zum jeweiligen Datum automatisch zu aktivieren und zu deaktivieren.
35     + </p>
36     + <p>
37     + Bitte verwenden Sie dafür das Format JJJJMMTT (vierstellige Jahreszahl, zweistellige Monatszahl, zweistellige Tageszahl)
38     + und beachten Sie, dass die Sie in die beiden Felder nicht das gleiche Datum eintragen dürfen.
39     + </p>
40     + <p>
41     + Wenn Sie diese Funktionalität verwenden möchten dann belassen Sie den Eintrag "Abwesenheitsnotiz aktivieren" auf "Nein"; die Aktivierung erfolgt dann automatisch am gewünschten Datum.
42     + </p>
43     + ]]></trans>
44     + </entry>
45     + <entry>
46     + <base>VACATION_FROM</base>
47     + <trans>Abwesenheitsnotiz aktivieren am (JJJJMMTT)</trans>
48     + </entry>
49     + <entry>
50     + <base>VACATION_TO</base>
51     + <trans>Abwesenheitsnotiz deaktivieren am (JJJJMMTT)</trans>
52     </entry>
53     <entry>
54     <base>MESSAGE</base>
55     @@ -29,7 +61,7 @@
56     </entry>
57     <entry>
58     <base>VACATION_STATUS</base>
59     - <trans>Abwesenheitsnotiz aktivieren</trans>
60     + <trans>Abwesenheitsnotiz aktiviert</trans>
61     </entry>
62     <entry>
63     <base>FROM</base>
64     diff -urN smeserver-vacation-1.1.old/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/uservacations smeserver-vacation-1.1/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/uservacations
65     --- smeserver-vacation-1.1.old/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/uservacations 2015-09-04 10:53:45.507912125 +0200
66     +++ smeserver-vacation-1.1/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/uservacations 2015-09-04 19:35:46.599092069 +0200
67     @@ -42,10 +42,28 @@
68     "From: user@primary.domain" with "From: user@virtual.domain").
69     To change the vacation message back to the default type "reset".
70     </p>
71     + <p>
72     + You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to
73     + automatically enable and disable sending of the vacation message for this user account on the given dates.
74     + </p>
75     + <p>
76     + The format used is YYYYMMDD (four digit year, two digit month, two digit day)
77     + and the dates in the two fields must not be the same.
78     + If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given.
79     + </p>
80     + </p>
81     ]]>
82     </trans>
83     </entry>
84     <entry>
85     + <base>VACATION_FROM</base>
86     + <trans>Enable vacation on (YYYYMMDD)</trans>
87     + </entry>
88     + <entry>
89     + <base>VACATION_TO</base>
90     + <trans>Disable vacation on (YYYYMMDD)</trans>
91     + </entry>
92     + <entry>
93     <base>MESSAGE</base>
94     <trans>Vacation message</trans>
95     </entry>
96     diff -urN smeserver-vacation-1.1.old/root/etc/e-smith/web/functions/uservacations smeserver-vacation-1.1/root/etc/e-smith/web/functions/uservacations
97     --- smeserver-vacation-1.1.old/root/etc/e-smith/web/functions/uservacations 2015-09-04 10:53:45.503912372 +0200
98     +++ smeserver-vacation-1.1/root/etc/e-smith/web/functions/uservacations 2015-09-04 18:12:18.853099056 +0200
99     @@ -54,6 +54,14 @@
100     <field type="literal" id="FullName">
101     <label>USER_NAME</label>
102     </field>
103     +
104     + <field type="text" id="EmailVacationFrom">
105     + <label>VACATION_FROM</label>
106     + </field>
107     +
108     + <field type="text" id="EmailVacationTo">
109     + <label>VACATION_TO</label>
110     + </field>
111    
112     <subroutine src="get_vacation_text()" />
113    
114     diff -urN smeserver-vacation-1.1.old/root/sbin/e-smith/vacation/check_vacation_dates.sh smeserver-vacation-1.1/root/sbin/e-smith/vacation/check_vacation_dates.sh
115     --- smeserver-vacation-1.1.old/root/sbin/e-smith/vacation/check_vacation_dates.sh 1970-01-01 01:00:00.000000000 +0100
116     +++ smeserver-vacation-1.1/root/sbin/e-smith/vacation/check_vacation_dates.sh 2015-09-04 18:39:09.929079461 +0200
117     @@ -0,0 +1,37 @@
118     +#!/bin/bash
119     +CURRENT_DATE=`date +%Y%m%d`
120     +
121     +echo "Checking vacation changes on $CURRENT_DATE"
122     +
123     +# iterate over users
124     +for key in `db accounts keys`
125     +do
126     + if [ `db accounts gettype $key` == "user" ]
127     + then
128     + # check for EmailVacationProperty
129     + if [ -z `db accounts getprop $key EmailVacation` ]
130     + then
131     + echo "$key never went on vacation before."
132     +
133     + # if both fields are empty or contain the same value, do nothing
134     + elif [ `db accounts getprop $key EmailVacationFrom` == `db accounts getprop $key EmailVacationTo` ]
135     + then
136     + echo "Both fields empty or same date, not changing anything for $key"
137     + # db accounts setprop $key EmailVacation no
138     +
139     + elif [ `db accounts getprop $key EmailVacationFrom` == $CURRENT_DATE ]
140     + then
141     + echo "Happy holidays, $key"
142     + db accounts setprop $key EmailVacation yes
143     +
144     + elif [ `db accounts getprop $key EmailVacationTo` == $CURRENT_DATE ]
145     + then
146     + echo "Back to work, $key"
147     + db accounts setprop $key EmailVacation no
148     +
149     + else
150     + echo "Nothing to do for $key"
151     +
152     + fi
153     + fi
154     +done
155     diff -urN smeserver-vacation-1.1.old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/uservacations.pm smeserver-vacation-1.1/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/uservacations.pm
156     --- smeserver-vacation-1.1.old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/uservacations.pm 2015-09-04 10:53:45.503912372 +0200
157     +++ smeserver-vacation-1.1/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/uservacations.pm 2015-09-04 11:47:21.004897212 +0200
158     @@ -85,6 +85,8 @@
159     {
160     # make it clearer which uses have vacation
161     my $EmailVacation = $user->prop('EmailVacation') || '';
162     + my $EmailVacationFrom = $user->prop('EmailVacationFrom') || '';
163     + my $EmailVacationTo = $user->prop('EmailVacationTo') || '';
164     my $status = $user->prop('EmailVacation') || '';
165     if ($status eq 'yes') { $status = 'YES'; } else { $status = ''; }
166    
167     @@ -94,6 +96,8 @@
168     $user->prop('LastName'),
169     status => $self->localise($status),
170     EmailVacation => $EmailVacation,
171     + EmailVacationFrom => $EmailVacationFrom,
172     + EmailVacationTo => $EmailVacationTo,
173     Modify => $self->localise('MODIFY'),
174     }
175     }
176     @@ -115,6 +119,8 @@
177     "User=" . $row->{User},
178     "FullName=" . $row->{FullName},
179     "EmailVacation=" . $row->{EmailVacation},
180     + "EmailVacationFrom=" . $row->{EmailVacationFrom},
181     + "EmailVacationTo=" . $row->{EmailVacationTo},
182     "wherenext=VACATION_PAGE_MODIFY");
183     }
184    
185     @@ -177,6 +183,8 @@
186     my $user = $q->param('User');
187    
188     my $EmailVacation = $q->param('EmailVacation');
189     + my $EmailVacationFrom = $q->param('EmailVacationFrom');
190     + my $EmailVacationTo = $q->param('EmailVacationTo');
191     my $new_message = $q->param('new_message');
192     my $vfile = "/home/e-smith/files/users/$user/.vacation.msg";
193    
194     @@ -228,6 +236,8 @@
195     "/home/e-smith/files/users/$user/.vacation.msg");
196    
197     $adb->set_prop($user, 'EmailVacation', $EmailVacation);
198     + $adb->set_prop($user, 'EmailVacationFrom', $EmailVacationFrom);
199     + $adb->set_prop($user, 'EmailVacationTo', $EmailVacationTo);
200    
201     #the first is more correct but is slower
202     #system ("/sbin/e-smith/signal-event", "email-update", $user) == 0
203     @@ -260,6 +270,16 @@
204     return $adb->get_prop($PanelUser, "EmailVacation");
205     }
206    
207     +sub get_vacation_date_from
208     +{
209     + return $adb->get_prop($PanelUser, "EmailVacationFrom");
210     +}
211     +
212     +sub get_vacation_date_to
213     +{
214     + return $adb->get_prop($PanelUser, "EmailVacationTo");
215     +}
216     +
217     # this formats the text to display on screen
218     sub userpanel_get_vacation_text
219     {
220    

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed