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

Contents 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 - (show annotations) (download)
Sat Sep 5 07:17:18 2015 UTC (8 years, 7 months 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 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 +++ smeserver-vacation-1.1/root/etc/cron.d/vacation 2015-09-04 21:50:28.364085037 +0200
4 @@ -0,0 +1,6 @@
5 +# 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 +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 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