mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Coodle
- 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:
@@ -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');
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'));
|
||||
}
|
||||
|
||||
@@ -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.'\');"> <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.'\');"> <img src="../../../skin/images/delete_x.png" title="'.$p->t('coodle/loeschen').'"></a>';
|
||||
$row.= '<a href="stammdaten.php?coodle_id='.$c->coodle_id.'">
|
||||
<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').'">
|
||||
<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.= ' <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.'">
|
||||
<img src="../../../skin/images/delete_x.png" title="'.$p->t('coodle/loeschen').'">
|
||||
</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$row.=' <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.'"> <img src="../../../skin/images/date_go.png" title="'.$p->t('coodle/zurUmfrage').'"></a>';
|
||||
{
|
||||
$row.= '<a href="../../public/coodle.php?coodle_id='.$c->coodle_id.'">
|
||||
<img src="../../../skin/images/date_go.png" title="'.$p->t('coodle/zurUmfrage').'">
|
||||
</a>';
|
||||
}
|
||||
else
|
||||
$row.=' <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.=' <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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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';
|
||||
?>
|
||||
|
||||
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 455 B |
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 536 B |
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 447 B |
Reference in New Issue
Block a user