- Parsen des Coodle Freebusy File mit Zeitzonenangabe
- Kodierung von Umlauten im ICal Event korrigiert
- Bearbeiten der Umfrage nach dem starten nicht mehr möglich
This commit is contained in:
Andreas Österreicher
2012-11-23 11:21:56 +00:00
parent 56d06c2f17
commit 07f35defbc
11 changed files with 69 additions and 43 deletions
+3
View File
@@ -41,7 +41,10 @@ function validURLCheck($param)
$text="Dies ist eine automatische Mail.\nEs wurde eine mögliche XSS Attacke durchgefuehrt:\n"; $text="Dies ist eine automatische Mail.\nEs wurde eine mögliche XSS Attacke durchgefuehrt:\n";
$text.="\nFolgende URL wurde versucht aufzurufen: \n".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; $text.="\nFolgende URL wurde versucht aufzurufen: \n".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$text.="\n\nIP des Aufrufers: ".$_SERVER['REMOTE_ADDR']; $text.="\n\nIP des Aufrufers: ".$_SERVER['REMOTE_ADDR'];
$text.="\n\nUserAgent: ".$_SERVER['HTTP_USER_AGENT'];
$text.="\n\nAuffälliger Value: $param"; $text.="\n\nAuffälliger Value: $param";
$mail = new mail(MAIL_ADMIN, 'no-reply@'.DOMAIN, 'Versuchte XSS Attacke', $text); $mail = new mail(MAIL_ADMIN, 'no-reply@'.DOMAIN, 'Versuchte XSS Attacke', $text);
$mail->send(); $mail->send();
die('Invalid URL detected'); die('Invalid URL detected');
+11 -6
View File
@@ -167,12 +167,6 @@ if(isset($_POST['save']))
{ {
$message.= '<span class="error">'.$coodle->errormsg.'</span>'; $message.= '<span class="error">'.$coodle->errormsg.'</span>';
} }
/*
$message.='<script>
window.opener.location.href="uebersicht.php";
</script>';*/
} }
elseif(isset($_GET['coodle_id'])) elseif(isset($_GET['coodle_id']))
{ {
@@ -182,6 +176,17 @@ elseif(isset($_GET['coodle_id']))
{ {
if($coodle->ersteller_uid!=$user) if($coodle->ersteller_uid!=$user)
die($p->t('global/keineBerechtigungFuerDieseSeite')); die($p->t('global/keineBerechtigungFuerDieseSeite'));
if($coodle->coodle_status_kurzbz!='neu')
{
// Wenn bereits gestartet, abgeschlosse oder storniert,
// kann nicht mehr bearbeitet werden
die($p->t('coodle/umfrageNichtGueltig'));
}
}
else
{
die('Error:'.$coodle->errormsg);
} }
} }
else else
+1 -1
View File
@@ -55,7 +55,7 @@ if(!$coodle->load($coodle_id))
} }
$event_titel = $coodle->titel; $event_titel = $coodle->titel;
if($coodle->coodle_status_kurzbz == 'storniert' || $coodle->coodle_status_kurzbz == 'abgeschlossen') if($coodle->coodle_status_kurzbz == 'storniert' || $coodle->coodle_status_kurzbz == 'abgeschlossen' || $coodle->coodle_status_kurzbz=='laufend')
{ {
die($p->t('coodle/umfrageNichtGueltig')); die($p->t('coodle/umfrageNichtGueltig'));
} }
+41 -26
View File
@@ -67,21 +67,7 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
}); });
}); });
function conf_user(ersteller_uid)
{
var uid = ersteller_uid;
if(uid == "'.$uid.'")
{
return true;
}
else
{
alert("'.$p->t('global/keineBerechtigung').'");
return false;
}
}
</script> </script>
<style> <style>
.wrapper h4 .wrapper h4
@@ -165,29 +151,58 @@ foreach($coodle->result as $c)
<td>'.$coodle->convert_html_chars($ersteller).'</td> <td>'.$coodle->convert_html_chars($ersteller).'</td>
<td>'.$coodle->convert_html_chars($datum->formatDatum($c->endedatum, 'd.m.Y')).'</td> <td>'.$coodle->convert_html_chars($datum->formatDatum($c->endedatum, 'd.m.Y')).'</td>
<td nowrap> <td nowrap>
';
'; // Bearbeiten Button
if(($c->coodle_status_kurzbz=='laufend' || $c->coodle_status_kurzbz=='neu') && $uid==$c->ersteller_uid) if(($c->coodle_status_kurzbz=='neu') && $uid==$c->ersteller_uid)
{ {
$row.= ' $row.= '<a href="stammdaten.php?coodle_id='.$c->coodle_id.'">
<a href="stammdaten.php?coodle_id='.$c->coodle_id.'" onclick="return conf_user(\''.$c->ersteller_uid.'\');">&nbsp;<img src="../../../skin/images/edit.png" title="'.$p->t('coodle/bearbeiten').'"></a> &nbsp;<img src="../../../skin/images/edit.png" title="'.$p->t('coodle/bearbeiten').'">
<a href="'.$_SERVER['PHP_SELF'].'?method=delete&coodle_id='.$c->coodle_id.'" onclick="return conf_user(\''.$c->ersteller_uid.'\');">&nbsp;<img src="../../../skin/images/delete_x.png" title="'.$p->t('coodle/loeschen').'"></a>'; </a>';
} }
else else
{ {
$row.= ' if($c->coodle_status_kurzbz=='laufend')
<img src="../../../skin/images/edit_grau.png" title="'.$p->t('global/keineBerechtigung').'"> $title=$p->t('coodle/umfrageWurdeBereitsGestartet');
&nbsp; <img src="../../../skin/images/delete_x_grau.png" title="'.$p->t('global/keineBerechtigung').'">'; else
$title=$p->t('global/keineBerechtigung');
$row.= '&nbsp;<img src="../../../skin/images/edit_grau.png" title="'.$title.'">';
} }
// Storno Button
if($uid==$c->ersteller_uid && $c->coodle_status_kurzbz!='storniert' && $c->coodle_status_kurzbz!='abgeschlossen')
{
$row.= '<a href="'.$_SERVER['PHP_SELF'].'?method=delete&coodle_id='.$c->coodle_id.'">
&nbsp;<img src="../../../skin/images/delete_x.png" title="'.$p->t('coodle/loeschen').'">
</a>';
}
else
{
$row.='&nbsp; <img src="../../../skin/images/delete_x_grau.png" title="'.$p->t('global/keineBerechtigung').'">';
}
// Umfrage Button
if($c->coodle_status_kurzbz=='laufend' || $c->coodle_status_kurzbz=='abgeschlossen') if($c->coodle_status_kurzbz=='laufend' || $c->coodle_status_kurzbz=='abgeschlossen')
$row.='<a href="../../public/coodle.php?coodle_id='.$c->coodle_id.'"> &nbsp; <img src="../../../skin/images/date_go.png" title="'.$p->t('coodle/zurUmfrage').'"></a>'; {
$row.= '<a href="../../public/coodle.php?coodle_id='.$c->coodle_id.'">
&nbsp; <img src="../../../skin/images/date_go.png" title="'.$p->t('coodle/zurUmfrage').'">
</a>';
}
else else
$row.=' &nbsp; <img src="../../../skin/images/date_go_grau.png" title="'.$p->t('global/keineBerechtigung').'">'; {
if($c->coodle_status_kurzbz=='neu')
$title=$p->t('coodle/umfrageNochNichtGestartet');
else
$title=$p->t('global/keineBerechtigung');
$row.=' &nbsp; <img src="../../../skin/images/date_go_grau.png" title="'.$title.'">';
}
$row.=' $row.='
</td> </td>
</tr>'; </tr>';
if($c->coodle_status_kurzbz=='laufend' || $c->coodle_status_kurzbz=='neu') if($c->coodle_status_kurzbz=='laufend' || $c->coodle_status_kurzbz=='neu')
echo $row; echo $row;
else else
+2 -2
View File
@@ -522,8 +522,8 @@ TRANSP:OPAQUE
SEQUENCE:0 SEQUENCE:0
UID:FHCompleteCoodle".$coodle_id." UID:FHCompleteCoodle".$coodle_id."
DTSTAMP;TZID=Europe/Vienna:".$dtstamp." DTSTAMP;TZID=Europe/Vienna:".$dtstamp."
DESCRIPTION:".strip_tags($coodle->beschreibung)." DESCRIPTION:".strip_tags(html_entity_decode($coodle->beschreibung, ENT_QUOTES, 'UTF-8'))."
SUMMARY:".$coodle->titel." SUMMARY:".strip_tags($coodle->titel)."
PRIORITY:5 PRIORITY:5
CLASS:PUBLIC CLASS:PUBLIC
END:VEVENT END:VEVENT
+6 -6
View File
@@ -67,12 +67,12 @@ foreach($umfragen->result as $umfrage)
{ {
//Start und Ende berechnen //Start und Ende berechnen
$date = new DateTime($termin->datum.' '.$termin->uhrzeit); $date = new DateTime($termin->datum.' '.$termin->uhrzeit);
$dtstart = $date->format('dmY\THis'); $dtstart = $date->format('Ymd\THis');
$interval =new DateInterval('PT'.$umfrage->dauer.'M'); $interval =new DateInterval('PT'.$umfrage->dauer.'M');
$date->add($interval); $date->add($interval);
$uhrzeit_ende = $date->format('H:i:s'); $uhrzeit_ende = $date->format('H:i:s');
$dtende = $date->format('dmY\THis'); $dtende = $date->format('Ymd\THis');
echo "\nFREEBUSY;TZID=Europe/Vienna: $dtstart / $dtende"; echo "\nFREEBUSY;TZID=Europe/Vienna: $dtstart/$dtende";
} }
} }
} }
@@ -85,12 +85,12 @@ foreach($umfragen->result as $umfrage)
{ {
//Start und Ende berechnen //Start und Ende berechnen
$date = new DateTime($termin->datum.' '.$termin->uhrzeit); $date = new DateTime($termin->datum.' '.$termin->uhrzeit);
$dtstart = $date->format('dmY\THis'); $dtstart = $date->format('Ymd\THis');
$interval =new DateInterval('PT'.$umfrage->dauer.'M'); $interval =new DateInterval('PT'.$umfrage->dauer.'M');
$date->add($interval); $date->add($interval);
$uhrzeit_ende = $date->format('H:i:s'); $uhrzeit_ende = $date->format('H:i:s');
$dtende = $date->format('dmY\THis'); $dtende = $date->format('Ymd\THis');
echo "\nFREEBUSY;TZID=Europe/Vienna: $dtstart / $dtende"; echo "\nFREEBUSY;TZID=Europe/Vienna: $dtstart/$dtende";
} }
} }
// stornierte Umfragen werden nicht beruecksichtigt // stornierte Umfragen werden nicht beruecksichtigt
+3 -2
View File
@@ -118,9 +118,10 @@ class ical extends basis_db
{ {
$len = mb_strlen($row); $len = mb_strlen($row);
$slashpos = mb_strpos($row, '/');
$doppelpunktpos = mb_strpos($row, ':'); $doppelpunktpos = mb_strpos($row, ':');
$dtstart = mb_substr($row, $doppelpunktpos+1, $len-$slashpos); $row = mb_substr($row, $doppelpunktpos+1);
$slashpos = mb_strpos($row, '/');
$dtstart = mb_substr($row, 0, $len-$slashpos);
$dtend = mb_substr($row, $slashpos+1); $dtend = mb_substr($row, $slashpos+1);
$this->dtresult[]=array('dtstart'=>trim($dtstart),'dtend'=>trim($dtend)); $this->dtresult[]=array('dtstart'=>trim($dtstart),'dtend'=>trim($dtend));
} }
+2
View File
@@ -58,4 +58,6 @@ $this->phrasen['coodle/raumNichtReserviert']='Achtung: Ihr Raum wurde nicht rese
$this->phrasen['coodle/auswahlEndtermin']='Auswahl des Endtermins'; $this->phrasen['coodle/auswahlEndtermin']='Auswahl des Endtermins';
$this->phrasen['coodle/auswahlHinweis']='Durch diese Auswahl wird der endgültige Termin ausgewählt und die Umfrage beendet. Dieser Vorgang kann nicht rückgängig gemacht werden.'; $this->phrasen['coodle/auswahlHinweis']='Durch diese Auswahl wird der endgültige Termin ausgewählt und die Umfrage beendet. Dieser Vorgang kann nicht rückgängig gemacht werden.';
$this->phrasen['coodle/keineAuswahl']='Keine Auswahl'; $this->phrasen['coodle/keineAuswahl']='Keine Auswahl';
$this->phrasen['coodle/umfrageWurdeBereitsGestartet']='Umfrage wurde bereits gestartet';
$this->phrasen['coodle/umfrageNochNichtGestartet']='Umfrage wurde noch nicht gestartet';
?> ?>
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 455 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 536 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B