- 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.="\nFolgende URL wurde versucht aufzurufen: \n".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$text.="\n\nIP des Aufrufers: ".$_SERVER['REMOTE_ADDR'];
$text.="\n\nUserAgent: ".$_SERVER['HTTP_USER_AGENT'];
$text.="\n\nAuffälliger Value: $param";
$mail = new mail(MAIL_ADMIN, 'no-reply@'.DOMAIN, 'Versuchte XSS Attacke', $text);
$mail->send();
die('Invalid URL detected');
+11 -6
View File
@@ -167,12 +167,6 @@ if(isset($_POST['save']))
{
$message.= '<span class="error">'.$coodle->errormsg.'</span>';
}
/*
$message.='<script>
window.opener.location.href="uebersicht.php";
</script>';*/
}
elseif(isset($_GET['coodle_id']))
{
@@ -182,6 +176,17 @@ elseif(isset($_GET['coodle_id']))
{
if($coodle->ersteller_uid!=$user)
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
+1 -1
View File
@@ -55,7 +55,7 @@ if(!$coodle->load($coodle_id))
}
$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'));
}
+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>
<style>
.wrapper h4
@@ -165,29 +151,58 @@ foreach($coodle->result as $c)
<td>'.$coodle->convert_html_chars($ersteller).'</td>
<td>'.$coodle->convert_html_chars($datum->formatDatum($c->endedatum, 'd.m.Y')).'</td>
<td nowrap>
';
';
if(($c->coodle_status_kurzbz=='laufend' || $c->coodle_status_kurzbz=='neu') && $uid==$c->ersteller_uid)
// Bearbeiten Button
if(($c->coodle_status_kurzbz=='neu') && $uid==$c->ersteller_uid)
{
$row.= '
<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>
<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>';
$row.= '<a href="stammdaten.php?coodle_id='.$c->coodle_id.'">
&nbsp;<img src="../../../skin/images/edit.png" title="'.$p->t('coodle/bearbeiten').'">
</a>';
}
else
{
$row.= '
<img src="../../../skin/images/edit_grau.png" title="'.$p->t('global/keineBerechtigung').'">
&nbsp; <img src="../../../skin/images/delete_x_grau.png" title="'.$p->t('global/keineBerechtigung').'">';
if($c->coodle_status_kurzbz=='laufend')
$title=$p->t('coodle/umfrageWurdeBereitsGestartet');
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')
$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
$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.='
</td>
</tr>';
if($c->coodle_status_kurzbz=='laufend' || $c->coodle_status_kurzbz=='neu')
echo $row;
else
+2 -2
View File
@@ -522,8 +522,8 @@ TRANSP:OPAQUE
SEQUENCE:0
UID:FHCompleteCoodle".$coodle_id."
DTSTAMP;TZID=Europe/Vienna:".$dtstamp."
DESCRIPTION:".strip_tags($coodle->beschreibung)."
SUMMARY:".$coodle->titel."
DESCRIPTION:".strip_tags(html_entity_decode($coodle->beschreibung, ENT_QUOTES, 'UTF-8'))."
SUMMARY:".strip_tags($coodle->titel)."
PRIORITY:5
CLASS:PUBLIC
END:VEVENT
+6 -6
View File
@@ -67,12 +67,12 @@ foreach($umfragen->result as $umfrage)
{
//Start und Ende berechnen
$date = new DateTime($termin->datum.' '.$termin->uhrzeit);
$dtstart = $date->format('dmY\THis');
$dtstart = $date->format('Ymd\THis');
$interval =new DateInterval('PT'.$umfrage->dauer.'M');
$date->add($interval);
$uhrzeit_ende = $date->format('H:i:s');
$dtende = $date->format('dmY\THis');
echo "\nFREEBUSY;TZID=Europe/Vienna: $dtstart / $dtende";
$dtende = $date->format('Ymd\THis');
echo "\nFREEBUSY;TZID=Europe/Vienna: $dtstart/$dtende";
}
}
}
@@ -85,12 +85,12 @@ foreach($umfragen->result as $umfrage)
{
//Start und Ende berechnen
$date = new DateTime($termin->datum.' '.$termin->uhrzeit);
$dtstart = $date->format('dmY\THis');
$dtstart = $date->format('Ymd\THis');
$interval =new DateInterval('PT'.$umfrage->dauer.'M');
$date->add($interval);
$uhrzeit_ende = $date->format('H:i:s');
$dtende = $date->format('dmY\THis');
echo "\nFREEBUSY;TZID=Europe/Vienna: $dtstart / $dtende";
$dtende = $date->format('Ymd\THis');
echo "\nFREEBUSY;TZID=Europe/Vienna: $dtstart/$dtende";
}
}
// stornierte Umfragen werden nicht beruecksichtigt
+3 -2
View File
@@ -118,9 +118,10 @@ class ical extends basis_db
{
$len = mb_strlen($row);
$slashpos = 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);
$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/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/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