1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.fhw.cabaweb.webfrontend.forms.simple;
20
21 import java.util.Collection;
22 import java.util.Iterator;
23
24 import javax.servlet.http.HttpServletRequest;
25
26 import org.apache.commons.logging.Log;
27 import org.apache.commons.logging.LogFactory;
28 import org.apache.struts.action.ActionError;
29 import org.apache.struts.action.ActionErrors;
30 import org.apache.struts.action.ActionForm;
31 import org.apache.struts.action.ActionMapping;
32 import org.fhw.cabaweb.data.DataInterfaceGruppenmitglieder;
33 import org.fhw.cabaweb.data.DataInterfaceProjektgruppen;
34 import org.fhw.cabaweb.tools.StringUtilities;
35
36 /***
37 * Formularklasse der MVC Architektur von Struts.
38 * In diesem Fall für ein einzelnes Gruppenmitglied (Create/Delete/Edit eines Gruppenmitglieds)
39 *
40 * @author <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
41 * @version Version 1.0 06.07.2004
42 */
43 public final class GruppenmitgliedForm extends ActionForm
44 {
45 /***
46 * The <code>Log</code> instance for this application.
47 */
48 private Log log = LogFactory.getLog("org.fhw.cabaweb.webfrontend.forms.simple");
49
50
51 /*** Art der Aktion die wir durchführen wollen (Create, Delete or Edit) - Default ist Create. */
52 private String action = "Create";
53 /*** Die Mitgliedsnummer */
54 private Integer mitgliedsnummer = null;
55 /*** Die Benutzerrollen ID */
56 private Integer rollenID = null;
57 /*** Die Gruppennummer */
58 private Integer gruppennummer = null;
59 /*** Die Projektnummer */
60 private Integer projektnummer = null;
61 /*** Ob das Mitglied einer Gruppe zugeordnet ist */
62 private Boolean istZugeordnet = null;
63 /*** Der Anmeldename des Mitglieds */
64 private String loginName = null;
65 /*** Der Name des Mitglieds */
66 private String mitgliedsname = null;
67 /*** Der Vorname des Mitglieds */
68 private String mitgliedsvorname = null;
69 /*** Die Adresse 1 des Mitglieds */
70 private String mitgliedsadresse1 = null;
71 /*** Die Adresse 2 des Mitglieds */
72 private String mitgliedsadresse2 = null;
73 /*** Die Postleitzahl des Mitglieds */
74 private Integer mitgliedsplz = null;
75 /*** Der Ort des Mitglieds */
76 private String mitgliedsort = null;
77 /*** Das Kennzeichen des Mitglieds */
78 private String mitgliedskennzeichen = null;
79 /*** Die eMail Adresse des Mitglieds */
80 private String mitgliedsemailadresse = null;
81 /*** Der Passworthash des Mitglieds */
82 private String passworthash = null;
83 /*** Der Passwort des Mitglieds */
84 private String passwort = null;
85 /*** Ist der Benutzer aktiv oder nicht */
86 private Boolean aktiv = null;
87 /*** Zeitstempel letzter Login */
88 private String letzterlogin = null;
89
90 /*** Das Gruppenpasswort */
91 private String gruppenpasswort = null;
92
93
94
95 /***
96 * GET Methode
97 *
98 * @return der Parameterwert
99 */
100 public String getAction()
101 {
102 return this.action;
103 }
104
105 /***
106 * SET Methode
107 *
108 * @param action Der zu setzende Parameterwert
109 */
110 public void setAction(String action)
111 {
112 this.action = action;
113 }
114
115 /***
116 * GET Methode
117 *
118 * @return der Parameterwert
119 */
120 public Integer getGruppennummer()
121 {
122 return this.gruppennummer;
123 }
124
125 /***
126 * GET Methode
127 *
128 * @return der Parameterwert
129 */
130 public Integer getProjektnummer()
131 {
132 return this.projektnummer;
133 }
134
135 /***
136 * GET Methode
137 *
138 * @return der Parameterwert
139 */
140 public Boolean getIstZugeordnet()
141 {
142 return this.istZugeordnet;
143 }
144
145 /***
146 * GET Methode
147 *
148 * @return der Parameterwert
149 */
150 public String getLetzterlogin()
151 {
152 return this.letzterlogin;
153 }
154
155 /***
156 * GET Methode
157 *
158 * @return der Parameterwert
159 */
160 public String getLoginName()
161 {
162 return this.loginName;
163 }
164
165 /***
166 * GET Methode
167 *
168 * @return der Parameterwert
169 */
170 public String getMitgliedsadresse1()
171 {
172 return this.mitgliedsadresse1;
173 }
174
175 /***
176 * GET Methode
177 *
178 * @return der Parameterwert
179 */
180 public String getMitgliedsadresse2()
181 {
182 return this.mitgliedsadresse2;
183 }
184
185 /***
186 * GET Methode
187 *
188 * @return der Parameterwert
189 */
190 public String getMitgliedsemailadresse()
191 {
192 return this.mitgliedsemailadresse;
193 }
194
195 /***
196 * GET Methode
197 *
198 * @return der Parameterwert
199 */
200 public String getMitgliedskennzeichen()
201 {
202 return this.mitgliedskennzeichen;
203 }
204
205 /***
206 * GET Methode
207 *
208 * @return der Parameterwert
209 */
210 public String getMitgliedsname()
211 {
212 return this.mitgliedsname;
213 }
214
215 /***
216 * GET Methode
217 *
218 * @return der Parameterwert
219 */
220 public Integer getMitgliedsnummer()
221 {
222 return this.mitgliedsnummer;
223 }
224
225 /***
226 * GET Methode
227 *
228 * @return der Parameterwert
229 */
230 public String getMitgliedsort()
231 {
232 return this.mitgliedsort;
233 }
234
235 /***
236 * GET Methode
237 *
238 * @return der Parameterwert
239 */
240 public Integer getMitgliedsplz()
241 {
242 return this.mitgliedsplz;
243 }
244
245 /***
246 * GET Methode
247 *
248 * @return der Parameterwert
249 */
250 public String getMitgliedsvorname()
251 {
252 return this.mitgliedsvorname;
253 }
254
255 /***
256 * GET Methode
257 *
258 * @return der Parameterwert
259 */
260 public String getPassworthash()
261 {
262 return this.passworthash;
263 }
264
265 /***
266 * GET Methode
267 *
268 * @return der Parameterwert
269 */
270 public String getPasswort()
271 {
272 return this.passwort;
273 }
274
275 /***
276 * GET Methode
277 *
278 * @return der Parameterwert
279 */
280 public Integer getRollenID()
281 {
282 return this.rollenID;
283 }
284
285 /***
286 * GET Methode
287 *
288 * @return der Parameterwert
289 */
290 public Boolean getAktiv()
291 {
292 return this.aktiv;
293 }
294
295 /***
296 * SET Methode
297 *
298 * @param gruppennummer Der zu setzende Parameterwert
299 */
300 public void setGruppennummer(Integer gruppennummer)
301 {
302 this.gruppennummer = gruppennummer;
303 }
304
305 /***
306 * SET Methode
307 *
308 * @param projektnummer Der zu setzende Parameterwert
309 */
310 public void setProjektnummer(Integer projektnummer)
311 {
312 this.projektnummer = projektnummer;
313 }
314
315 /***
316 * SET Methode
317 *
318 * @param istZugeordnet Der zu setzende Parameterwert
319 */
320 public void setIstZugeordnet(Boolean istZugeordnet)
321 {
322 this.istZugeordnet = istZugeordnet;
323 }
324
325 /***
326 * SET Methode
327 *
328 * @param letzterlogin Der zu setzende Parameterwert
329 */
330 public void setLetzterlogin(String letzterlogin)
331 {
332 this.letzterlogin = letzterlogin;
333 }
334
335 /***
336 * SET Methode
337 *
338 * @param loginName Der zu setzende Parameterwert
339 */
340 public void setLoginName(String loginName)
341 {
342 this.loginName = loginName;
343 }
344
345 /***
346 * SET Methode
347 *
348 * @param mitgliedsadresse1 Der zu setzende Parameterwert
349 */
350 public void setMitgliedsadresse1(String mitgliedsadresse1)
351 {
352 this.mitgliedsadresse1 = mitgliedsadresse1;
353 }
354
355 /***
356 * SET Methode
357 *
358 * @param mitgliedsadresse2 Der zu setzende Parameterwert
359 */
360 public void setMitgliedsadresse2(String mitgliedsadresse2)
361 {
362 this.mitgliedsadresse2 = mitgliedsadresse2;
363 }
364
365 /***
366 * SET Methode
367 *
368 * @param mitgliedsemailadresse Der zu setzende Parameterwert
369 */
370 public void setMitgliedsemailadresse(String mitgliedsemailadresse)
371 {
372 this.mitgliedsemailadresse = mitgliedsemailadresse;
373 }
374
375 /***
376 * SET Methode
377 *
378 * @param mitgliedskennzeichen Der zu setzende Parameterwert
379 */
380 public void setMitgliedskennzeichen(String mitgliedskennzeichen)
381 {
382 this.mitgliedskennzeichen = mitgliedskennzeichen;
383 }
384
385 /***
386 * SET Methode
387 *
388 * @param mitgliedsname Der zu setzende Parameterwert
389 */
390 public void setMitgliedsname(String mitgliedsname)
391 {
392 this.mitgliedsname = mitgliedsname;
393 }
394
395 /***
396 * SET Methode
397 *
398 * @param mitgliedsnummer Der zu setzende Parameterwert
399 */
400 public void setMitgliedsnummer(Integer mitgliedsnummer)
401 {
402 this.mitgliedsnummer = mitgliedsnummer;
403 }
404
405 /***
406 * SET Methode
407 *
408 * @param mitgliedsort Der zu setzende Parameterwert
409 */
410 public void setMitgliedsort(String mitgliedsort)
411 {
412 this.mitgliedsort = mitgliedsort;
413 }
414
415 /***
416 * SET Methode
417 *
418 * @param mitgliedsplz Der zu setzende Parameterwert
419 */
420 public void setMitgliedsplz(Integer mitgliedsplz)
421 {
422 this.mitgliedsplz = mitgliedsplz;
423 }
424
425 /***
426 * SET Methode
427 *
428 * @param mitgliedsvorname Der zu setzende Parameterwert
429 */
430 public void setMitgliedsvorname(String mitgliedsvorname)
431 {
432 this.mitgliedsvorname = mitgliedsvorname;
433 }
434
435 /***
436 * SET Methode
437 *
438 * @param passworthash Der zu setzende Parameterwert
439 */
440 public void setPassworthash(String passworthash)
441 {
442 this.passworthash = passworthash;
443 }
444
445 /***
446 * SET Methode
447 *
448 * @param passwort Der zu setzende Parameterwert
449 */
450 public void setPasswort(String passwort)
451 {
452 this.passwort = StringUtilities.convertUTF8String(passwort);
453 }
454
455 /***
456 * SET Methode
457 *
458 * @param rollenID Der zu setzende Parameterwert
459 */
460 public void setRollenID(Integer rollenID)
461 {
462 this.rollenID = rollenID;
463 }
464
465 /***
466 * SET Methode
467 *
468 * @param aktiv Der zu setzende Parameterwert
469 */
470 public void setAktiv(Boolean aktiv)
471 {
472 this.aktiv = aktiv;
473 }
474
475 /***
476 * GET Methode
477 *
478 * @return gruppenpasswort
479 */
480 public String getGruppenpasswort()
481 {
482 return gruppenpasswort;
483 }
484
485 /***
486 * SET Methode
487 *
488 * @param gruppenpasswort Der zu setzende Parameterwert
489 */
490 public void setGruppenpasswort(String gruppenpasswort)
491 {
492 this.gruppenpasswort = gruppenpasswort;
493 }
494
495
496
497
498 /***
499 * Zurücksetzen aller Parameterwerte auf die Default Werte.
500 *
501 * @param mapping Das Mapping das benutzt wurde um diese Instanz zu selektieren
502 * @param request Die Servlet Anfrage die wir gerade bearbeiten
503 */
504 public void reset(ActionMapping mapping, HttpServletRequest request)
505 {
506 this.action = "Create";
507 this.mitgliedsnummer = null;
508 this.projektnummer = null;
509 this.gruppennummer = null;
510 this.rollenID = null;
511 this.istZugeordnet = null;
512 this.loginName = null;
513 this.mitgliedsname = null;
514 this.mitgliedsvorname = null;
515 this.mitgliedsadresse1 = null;
516 this.mitgliedsadresse2 = null;
517 this.mitgliedsplz = null;
518 this.mitgliedsort = null;
519 this.mitgliedskennzeichen = null;
520 this.mitgliedsemailadresse = null;
521 this.passworthash = null;
522 this.aktiv = null;
523 this.letzterlogin = null;
524 this.gruppenpasswort = null;
525 }
526
527 /***
528 * Validieren der mit diesem Request übergebenen Paramter Werte. Wenn Fehler
529 * bei der Validierung auftreten wird <code>ActionErrors</code> Objekt,
530 * das die Fehler enthält zurückgegeben.
531 * Wenn kein Fehler bei der Validierung auftritt wird <code>null</code> bzw.
532 * ein leeres <code>ActionErrors</code> Objekt zurückgegeben
533 *
534 * @param mapping Das Mapping das benutzt wurde um diese Instanz zu selektieren
535 * (siehe struts-config.xml)
536 * @param request Das Servlet Anfrage Objekt
537 */
538 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
539 {
540 /*** Data Interface für Benutzer (indirekter Zugriff auf die OJB Ebene) initialisieren */
541 DataInterfaceGruppenmitglieder dig = new DataInterfaceGruppenmitglieder();
542 /*** Data Interface für Benutzer (indirekter Zugriff auf die OJB Ebene) initialisieren */
543 DataInterfaceProjektgruppen dipg = new DataInterfaceProjektgruppen();
544
545
546 ActionErrors errors = new ActionErrors();
547
548 if (gruppenpasswort == null || gruppenpasswort.trim().compareTo("") == 0 || gruppenpasswort.trim().compareTo("null") == 0)
549 {
550 if (projektnummer == null)
551 errors.add("projektnummer", new ActionError("error.field.edit.gruppenmitglied.projektnummer.empty"));
552
553 if (gruppennummer == null)
554 errors.add("gruppennummer", new ActionError("error.field.edit.gruppenmitglied.gruppennummer.empty"));
555 }
556 else
557 {
558 Collection groups = dipg.sucheKombination(null, null, null, gruppenpasswort);
559
560 if(groups.size() == 0 || groups.size() > 1)
561 {
562 errors.add("gruppenpasswort", new ActionError("error.field.edit.gruppenmitglied.gruppenpasswort.notfound"));
563 }
564 }
565
566 if (projektnummer == null && (gruppenpasswort == null || gruppenpasswort == ""))
567 errors.add("rollenID", new ActionError("error.field.edit.gruppenmitglied.rollenID.empty"));
568
569 if (loginName == null || loginName.length() <= 0)
570 errors.add("loginName", new ActionError("error.field.edit.gruppenmitglied.loginName.empty"));
571 else if (loginName.length() < 5)
572 errors.add("loginName", new ActionError("error.field.edit.gruppenmitglied.loginName.minlength"));
573 else if (loginName.length() > 50)
574 errors.add("loginName", new ActionError("error.field.edit.gruppenmitglied.loginName.maxlength"));
575
576 if (loginName != null && loginName.length() > 0 && action.compareTo("Create") == 0)
577 {
578 Collection users = dig.sucheLogInName(loginName);
579
580 if(users.size() > 0)
581 errors.add("loginName", new ActionError("error.field.edit.gruppenmitglied.loginName.duplicate"));
582 }
583
584 if (mitgliedsname == null || mitgliedsname.length() <= 0)
585 errors.add("mitgliedsname", new ActionError("error.field.edit.gruppenmitglied.mitgliedsname.empty"));
586 else if (mitgliedsname.length() < 1)
587 errors.add("mitgliedsname", new ActionError("error.field.edit.gruppenmitglied.mitgliedsname.minlength"));
588 else if (mitgliedsname.length() > 75)
589 errors.add("mitgliedsname", new ActionError("error.field.edit.gruppenmitglied.mitgliedsname.maxlength"));
590
591 if (mitgliedsvorname == null || mitgliedsvorname.length() <= 0)
592 errors.add("mitgliedsvorname", new ActionError("error.field.edit.gruppenmitglied.mitgliedsvorname.empty"));
593 else if (mitgliedsvorname.length() < 1)
594 errors.add(
595 "mitgliedsvorname",
596 new ActionError("error.field.edit.gruppenmitglied.mitgliedsvorname.minlength"));
597 else if (mitgliedsvorname.length() > 75)
598 errors.add(
599 "mitgliedsvorname",
600 new ActionError("error.field.edit.gruppenmitglied.mitgliedsvorname.maxlength"));
601
602 if (mitgliedskennzeichen == null || mitgliedskennzeichen.length() <= 0)
603 errors.add("mitgliedskennzeichen", new ActionError("error.field.edit.gruppenmitglied.mitgliedskennzeichen.empty"));
604 else if (mitgliedskennzeichen.length() < 1)
605 errors.add(
606 "mitgliedskennzeichen",
607 new ActionError("error.field.edit.gruppenmitglied.mitgliedskennzeichen.minlength"));
608 else if (mitgliedskennzeichen.length() > 75)
609 errors.add(
610 "mitgliedskennzeichen",
611 new ActionError("error.field.edit.gruppenmitglied.mitgliedskennzeichen.maxlength"));
612
613 if (mitgliedsemailadresse == null || mitgliedsemailadresse.length() <= 0)
614 errors.add(
615 "mitgliedsemailadresse",
616 new ActionError("error.field.edit.gruppenmitglied.mitgliedsemailadresse.empty"));
617 else if (mitgliedsemailadresse.length() < 3)
618 errors.add(
619 "mitgliedsemailadresse",
620 new ActionError("error.field.edit.gruppenmitglied.mitgliedsemailadresse.minlength"));
621 else if (mitgliedsemailadresse.length() > 255)
622 errors.add(
623 "mitgliedsemailadresse",
624 new ActionError("error.field.edit.gruppenmitglied.mitgliedsemailadresse.maxlength"));
625
626 if (StringUtilities.isValidEmailAddress(mitgliedsemailadresse) == false)
627 errors.add(
628 "mitgliedsemailadresse",
629 new ActionError("error.field.edit.gruppenmitglied.mitgliedsemailadresse.format"));
630
631 if ((passwort == null || passwort.length() <= 0) && action == "Create")
632 errors.add("passwort", new ActionError("error.field.edit.gruppenmitglied.passwort.empty"));
633 else if ((passwort.length() < 8 && action == "Create") || (passwort.length() > 0 && passwort.length() < 8))
634 errors.add("passwort", new ActionError("error.field.edit.gruppenmitglied.passwort.minlength"));
635 else if (passwort.length() > 100)
636 errors.add("passwort", new ActionError("error.field.edit.gruppenmitglied.passwort.maxlength"));
637
638 if (log.isDebugEnabled())
639 {
640 Iterator iter = errors.get();
641
642 log.debug(" Form had errors:");
643 while (iter.hasNext())
644 {
645 log.debug(" " + ((ActionError) iter.next()).getKey());
646 }
647 }
648
649 return errors;
650 }
651
652 }