Code fuer Accountgenerierung

This commit is contained in:
Andreas Österreicher
2014-04-04 09:08:38 +00:00
parent dd10775c52
commit 57700728db
11 changed files with 495 additions and 156 deletions
+3 -131
View File
@@ -28,6 +28,7 @@ require_once('../../../include/benutzer.class.php');
require_once('../../../addons/ldap/vilesci/ldap.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/Crypt_CHAP-1.5.0/CHAP.php');
require_once('../../../include/'.EXT_FKT_PATH.'/passwort.inc.php');
$uid = get_uid();
$db = new basis_db();
@@ -99,7 +100,7 @@ if(isset($_POST['change']))
if($passwort_neu==$passwort_neu_check)
{
// Passwort Policy pruefen
if(($errormsg = check_policy($passwort_neu))===true)
if(($errormsg = check_policy($passwort_neu, $p))===true)
{
// Passwort aendern
if(($msg = change_password($passwort_alt, $passwort_neu, $uid))===true)
@@ -108,7 +109,7 @@ if(isset($_POST['change']))
}
else
{
echo '<span class="error">'.$msg.'</span>';
echo '<span class="error">ERR:'.$msg.'</span>';
}
}
else
@@ -125,133 +126,4 @@ if(isset($_POST['change']))
echo '</body>
</html>';
/**
* Prueft die Passwort Policy
* @param $passwort_neu das neue Passwort
* @return errormsg wenn Policy nicht erfuellt ist oder true wenn ok
*/
function check_policy($passwort_neu)
{
global $p;
// Prüfung des neuen Passwortes
$errormsg='';
$error=false;
// Laenge mindestens 8 Zeichen
if(mb_strlen($passwort_neu)<8)
{
$error=true;
$errormsg .= $p->t('passwort/MinLaenge');
}
// Mindestens 1 Großbuchstabe
if(!preg_match('/[A-Z]/', $passwort_neu))
{
$error=true;
$errormsg .=$p->t('passwort/Grossbuchstabe');
}
// Mindestens 1 Kleinbuchstabe
if(!preg_match('/[a-z]/', $passwort_neu))
{
$error=true;
$errormsg .=$p->t('passwort/Kleinbuchstabe');
}
// Mindestens 1 Ziffer
if(!preg_match('/[0-9]/', $passwort_neu))
{
$error=true;
$errormsg .=$p->t('passwort/Ziffer');
}
// Keine Leerzeichen
if(strstr($passwort_neu, ' '))
{
$error=true;
$errormsg .=$p->t('passwort/Leerzeichen');
}
// keine Umlaute
if(preg_match('/[ÄÖÜäöü]/', $passwort_neu))
{
$error=true;
$errormsg .=$p->t('passwort/Umlaute');
}
// Sonderzeichen
if(!preg_match('/^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z\-\$#\[\]\{\}!\(\)\.,\*:;_]{8,1024}$/', $passwort_neu))
{
$error=true;
$errormsg.=$p->t('passwort/Sonderzeichen');
}
if($error)
return $errormsg;
else
return true;
}
/**
* Aendert das Passwort im LDAP
* @param $passwort_alt Altes (aktuelles) Passwort
* @param $passwort_neu neues Passwort
* @param $uid UID
* @return true wenn erfolgreich sonst false
*/
function change_password($passwort_alt, $passwort_neu, $uid)
{
$ldap = new ldap();
// Normalen Bind zum LDAP Server
if($ldap->connect())
{
// DN des Users holen
if($user_dn = $ldap->GetUserDN($uid))
{
$ldap->unbind();
$ldap = new ldap();
// Bind des User mit alten Passwort
if($ldap->connect(LDAP_SERVER_MASTER,LDAP_PORT,$user_dn, $passwort_alt, LDAP_STARTTLS))
{
// Passwort verschlüsseln
//SSHA
$salt = substr(pack('H*',hash('sha1',substr(pack('h*',hash('md5',mt_rand())),0,8).$passwort_neu)),0,4);
$encrypted = base64_encode(pack('H*',hash('sha1',$passwort_neu.$salt)).$salt);
$ssha_password = '{SSHA}'.$encrypted;
// LM und NT
$hash = new Crypt_CHAP_MSv2();
$hash->password = $passwort_neu;
// $lm_password = strtoupper(bin2hex($hash->lmPasswordHash()));
$nt_password = strtoupper(bin2hex($hash->ntPasswordHash()));
// Neues Passwort setzen
$data = array();
$data['userPassword']=$ssha_password;
// $data['sambaLMPassword']=$lm_password;
$data['sambaNTPassword']=$nt_password;
$data['sambaPwdLastSet']=time();
$data['sambaPwdMustChange']=2147483647; // 2038-01-19 04:14:07
if($ldap->Modify($user_dn, $data))
return true;
else
return false;
}
else
{
return $ldap->errormsg;
}
}
else
{
return $ldap->errormsg;
}
}
else
{
return $ldap->errormsg;
}
}
?>
+207
View File
@@ -0,0 +1,207 @@
<?php
/* Copyright (C) 2014 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Österreicher <oesi@technikum-wien.at>
*/
require_once('../../config/cis.config.inc.php');
require_once('../../include/phrasen.class.php');
require_once('../../include/sprache.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/securimage/securimage.php');
require_once('../../include/'.EXT_FKT_PATH.'/passwort.inc.php');
if(isset($_GET['sprache']))
{
$sprache = new sprache();
if($sprache->load($_GET['sprache']))
{
setSprache($_GET['sprache']);
}
else
setSprache(DEFAULT_LANGUAGE);
}
$sprache = getSprache();
$p = new phrasen($sprache);
$securimage = new Securimage();
$errormsg='';
$db = new basis_db();
if(isset($_REQUEST['username']))
$username = $_REQUEST['username'];
else
$username='';
if(isset($_REQUEST['code']))
$code = $_REQUEST['code'];
else
$code ='';
if(isset($_POST['submit']))
{
// Captcha Pruefen
if ($securimage->check($_POST['captcha_code']) == true)
{
// Benutzer laden
$benutzer = new benutzer();
if($benutzer->load($username))
{
// Aktivierungscode pruefen
if($benutzer->aktivierungscode==$code)
{
$passwort = $_POST['passwort'];
$passwort2 = $_POST['passwort2'];
// Vergleichen ob beide Passwoerter gleich sind
if($passwort==$passwort2)
{
// Passwort Policy pruefen
if(($errormsg = check_policy($passwort, $p))===true)
{
// Passwort setzen
if(($errormsg = change_password(ACCOUNT_ACTIVATION_PASSWORD, $passwort, $username))===true)
{
// Code entfernen
$benutzer = new benutzer();
$benutzer->DeleteAktivierungscode($username);
}
}
}
else
{
$errormsg='Passwoerter stimmen nicht ueberein';
}
}
else
{
$errormsg='Code oder Username falsch';
}
}
else
{
$errormsg='Code oder Username falsch';
}
}
else
{
$errormsg= 'Captcha Code falsch';
}
}
echo '<!doctype html>
<html>
<head>
<title>Account Aktivierung</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="robots" content="noindex">
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
<script type="text/javascript">
function changeSprache(sprache)
{
window.location.href="accountactivation.php?sprache="+sprache;
}
</script>
</head>
<body>
<table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td class="rand"></td>
<td class="boxshadow" align="center" valign="top"><br><br>';
echo ' <table width="100%" border="0">
<tr>
<td align="left"></td>
<td align="right" width="10px">
<select style="text-align: right; color: #0086CC; border: 0;" name="select">';
$sprache2 = new sprache();
$sprache2->getAll(true);
foreach($sprache2->result as $row)
{
echo ' <option onclick="changeSprache(\''.$row->sprache.'\'); return false;" '.($row->sprache==$sprache?'selected':'').'>'.($row->bezeichnung_arr[getSprache()]).'&nbsp;&nbsp;</option>';
}
echo ' </select></td>
</tr>
</table>';
echo '
<h1>'.$p->t('passwort/AccountAktivierung').'</h1>
'.$p->t('passwort/PasswortWaehlen').'<br>'.
$p->t('passwort/InfotextPolicy').'
<br><br>';
if(!isset($_SERVER['HTTPS']) || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='off'))
{
$httpspath = str_replace('http://','https://',APP_ROOT).'cis/public/accountactivation.php';
echo '<div style="border: 2px solid red; text-align:center">'.$p->t('passwort/NoHttps').'<br>
<a href="'.$httpspath.'">'.$p->t('passwort/ZuHttpsWechseln').'</a></div><br>';
}
echo '<br>
<span class="error">'.$errormsg.'</span>
<br>
<form method="POST">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username" value="'.$db->convert_html_chars($username).'"/></td>
</tr>
<tr>
<td>Code</td>
<td><input type="text" size="32" name="code" value="'.$db->convert_html_chars($code).'"/></td>
</tr>
<tr>
<td>'.$p->t('passwort/NeuesPasswort').'</td>
<td><input type="password" name="passwort" /></td>
</tr>
<tr>
<td>'.$p->t('passwort/PasswortWiederholung').'</td>
<td><input type="password" name="passwort2" /></td>
</tr>
<tr>
<td></td>
<td>&nbsp;</td>
</tr>
<tr>
<td valign="top">
'.$p->t('passwort/CaptchaEingabe').'
<br>
<a href="#" onclick="document.getElementById(\'captcha\').src = \'../../include/securimage/securimage_show.php?\'+Math.random(); return false">'.$p->t('passwort/ReloadCaptcha').'</a>
</td>
<td>
<img id="captcha" src="../../include/securimage/securimage_show.php" alt="CAPTCHA Image" style="border:1px solid;" />
<br>
<input type="text" name="captcha_code" size="10" maxlength="6" />
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Absenden" /></td>
</tr>
</table>
</form>
<td class="rand">
</td>
</tr>
</table>
</body>
</html>
';
?>
+1
View File
@@ -1061,6 +1061,7 @@ if(!$error)
$benutzer->uid = $uid;
$benutzer->person_id = $prestd->person_id;
$benutzer->aktiv = true;
$benutzer->aktivierungscode = generateActivationKey();
$nachname_clean = mb_strtolower(convertProblemChars($prestd->nachname));
$vorname_clean = mb_strtolower(convertProblemChars($prestd->vorname));
+23 -3
View File
@@ -28,6 +28,7 @@ class benutzer extends person
public $bnaktiv=true; // boolean
public $alias; // varchar(256)
public $bn_ext_id;
public $aktivierungscode;
public $result = array();
/**
@@ -57,6 +58,8 @@ class benutzer extends person
$this->uid = $row->uid;
$this->bnaktiv = $this->db_parse_bool($row->aktiv);
$this->alias = $row->alias;
$this->aktivierungscode = $row->aktivierungscode;
if(!person::load($row->person_id))
return false;
else
@@ -152,7 +155,7 @@ class benutzer extends person
if($new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
{
$qry = 'INSERT INTO public.tbl_benutzer (uid, aktiv, alias, person_id, insertamum, insertvon, updateamum, updatevon, ext_id) VALUES('.
$qry = 'INSERT INTO public.tbl_benutzer (uid, aktiv, alias, person_id, insertamum, insertvon, updateamum, updatevon, ext_id, aktivierungscode) VALUES('.
$this->db_add_param($this->uid).",".
$this->db_add_param($this->bnaktiv,FHC_BOOLEAN).",".
$this->db_add_param($this->alias).",".
@@ -161,7 +164,8 @@ class benutzer extends person
$this->db_add_param($this->insertvon).",".
$this->db_add_param($this->updateamum).",".
$this->db_add_param($this->updatevon).",".
$this->db_add_param($this->bn_ext_id).");";
$this->db_add_param($this->bn_ext_id).",".
$this->db_add_param($this->aktivierungscode).");";
}
else
{
@@ -404,5 +408,21 @@ class benutzer extends person
return false;
}
}
/**
* Entfernt den Aktivierungscode eines Users
* @param $username
*/
public function DeleteAktivierungscode($username)
{
$qry = "UPDATE public.tbl_benutzer SET aktivierungscode=null WHERE uid=".$db->db_add_param($username);
if($this->db_query($qry))
return true;
else
{
$this->errormsg = 'Fehler beim Loeschen des Aktivierungscodes';
return false;
}
}
}
?>
?>
+12
View File
@@ -943,4 +943,16 @@ function generateSemesterList($semester, $anzahlFolgesemester)
return $result;
}
/**
* Generiert einen Aktivierungscode
*/
function generateActivationKey()
{
$keyvalues=array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
$key='';
for($i=0;$i<32;$i++)
$key.=$keyvalues[mt_rand(0,15)];
return md5(encryptData(uniqid(mt_rand(), true),$key));
}
?>
+1 -1
View File
@@ -31,7 +31,7 @@ class rdf
public $xml_header='<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'; // string
public $xml_ns; // string
protected $rdf_url; // string
protected static $rdf_text;
protected $rdf_text;
protected static $nl="\n";
protected static $tb="\t";
+182
View File
@@ -0,0 +1,182 @@
<?php
/* Copyright (C) 2014 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
*/
/**
* Funktionen zum Pruefen der Passwort Policy und setzen des Passworts
*/
require_once(dirname(__FILE__).'/../addon.class.php');
// die aktiven Addons werden durchsucht, ob eines davon eine eigene UID Generierung vorsieht
// falls ja, wird die Version des Addons genommen, ansonsten die Default Generierung
$passwort_addon_found=false;
$passwort_addons = new addon();
foreach($passwort_addons->aktive_addons as $addon)
{
$passwort_addon_filename = dirname(__FILE__).'/../../addons/'.$addon.'/vilesci/passwort.inc.php';
if(file_exists($passwort_addon_filename))
{
include($passwort_addon_filename);
$passwort_addon_found=true;
break;
}
}
if(!$passwort_addon_found)
{
/**
* Prueft die Passwort Policy
* Das Passwort muss zumindest 8 Zeichen enthalten, davon mindestens 1 Großbuchstabe,
* 1 Kleinbuchstabe und eine Ziffer!
* Das Passwort darf keine Leerzeichen und Umlaute enthalten!
* Erlaubte Sonderzeichen sind: -$#[]{}!().,*:;_
*
* @param $passwort_neu das neue Passwort
* @param $p Phrasen Objekt - Wenn nicht uebergeben werden die Fehler in der Default Langauge angezeigt
* @return errormsg wenn Policy nicht erfuellt ist oder true wenn ok
*/
function check_policy($passwort_neu, $p=null)
{
if(is_null($p))
$p = new phrase(DEFAULT_LANGUAGE);
// Prüfung des neuen Passwortes
$errormsg='';
$error=false;
// Laenge mindestens 8 Zeichen
if(mb_strlen($passwort_neu)<8)
{
$error=true;
$errormsg .= $p->t('passwort/MinLaenge');
}
// Mindestens 1 Großbuchstabe
if(!preg_match('/[A-Z]/', $passwort_neu))
{
$error=true;
$errormsg .=$p->t('passwort/Grossbuchstabe');
}
// Mindestens 1 Kleinbuchstabe
if(!preg_match('/[a-z]/', $passwort_neu))
{
$error=true;
$errormsg .=$p->t('passwort/Kleinbuchstabe');
}
// Mindestens 1 Ziffer
if(!preg_match('/[0-9]/', $passwort_neu))
{
$error=true;
$errormsg .=$p->t('passwort/Ziffer');
}
// Keine Leerzeichen
if(strstr($passwort_neu, ' '))
{
$error=true;
$errormsg .=$p->t('passwort/Leerzeichen');
}
// keine Umlaute
if(preg_match('/[ÄÖÜäöü]/', $passwort_neu))
{
$error=true;
$errormsg .=$p->t('passwort/Umlaute');
}
// Sonderzeichen
if(!preg_match('/^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z\-\$#\[\]\{\}!\(\)\.,\*:;_]{8,1024}$/', $passwort_neu))
{
$error=true;
$errormsg.=$p->t('passwort/Sonderzeichen');
}
if($error)
return $errormsg;
else
return true;
}
/**
* Aendert das Passwort im LDAP
* @param $passwort_alt Altes (aktuelles) Passwort
* @param $passwort_neu neues Passwort
* @param $uid UID
* @return true wenn erfolgreich sonst false
*/
function change_password($passwort_alt, $passwort_neu, $uid)
{
$ldap = new ldap();
// Normalen Bind zum LDAP Server
if($ldap->connect())
{
// DN des Users holen
if($user_dn = $ldap->GetUserDN($uid))
{
$ldap->unbind();
$ldap = new ldap();
// Bind des User mit alten Passwort
if($ldap->connect(LDAP_SERVER_MASTER,LDAP_PORT,$user_dn, $passwort_alt, LDAP_STARTTLS))
{
// Passwort verschlüsseln
//SSHA
$salt = substr(pack('H*',hash('sha1',substr(pack('h*',hash('md5',mt_rand())),0,8).$passwort_neu)),0,4);
$encrypted = base64_encode(pack('H*',hash('sha1',$passwort_neu.$salt)).$salt);
$ssha_password = '{SSHA}'.$encrypted;
// LM und NT
$hash = new Crypt_CHAP_MSv2();
$hash->password = $passwort_neu;
// $lm_password = strtoupper(bin2hex($hash->lmPasswordHash()));
$nt_password = strtoupper(bin2hex($hash->ntPasswordHash()));
// Neues Passwort setzen
$data = array();
$data['userPassword']=$ssha_password;
// $data['sambaLMPassword']=$lm_password;
$data['sambaNTPassword']=$nt_password;
$data['sambaPwdLastSet']=time();
$data['sambaPwdMustChange']=2147483647; // 2038-01-19 04:14:07
if($ldap->Modify($user_dn, $data))
return true;
else
return false;
}
else
{
return $ldap->errormsg;
}
}
else
{
return $ldap->errormsg;
}
}
else
{
return $ldap->errormsg;
}
}
}
?>
+4
View File
@@ -22,5 +22,9 @@ $this->phrasen['passwort/AenderungFehler']='Passwort Änderung fehlgeschlagen:%s
$this->phrasen['passwort/NichtUebereinstimmend']='Passwörter stimmen nicht überein';
$this->phrasen['passwort/NoHttps']='ACHTUNG - Sie verwenden eine unverschlüsselte Verbindung. Sie sollten Ihr Passwort nur über eine verschlüsselte Verbindung ändern.';
$this->phrasen['passwort/ZuHttpsWechseln']='Jetzt zu verschlüsselter Verbindung wechseln';
$this->phrasen['passwort/CaptchaEingabe']='Tippen Sie die angezeigten<br>Zeichen in das untere Feld.';
$this->phrasen['passwort/ReloadCaptcha']='Ich kann das Bild nicht lesen - neu laden';
$this->phrasen['passwort/PasswortWaehlen']='Bitte wählen Sie ein Passwort für Ihren Account';
$this->phrasen['passwort/AccountAktivierung']='Account Aktivierung';
?>
+37 -1
View File
@@ -1265,6 +1265,42 @@ if($result = @$db->db_query("SELECT 1 FROM information_schema.columns WHERE tabl
}
}
// aktivierungscode in tbl_benutzer
if(!$result = @$db->db_query("SELECT aktivierungscode FROM public.tbl_benutzer LIMIT 1"))
{
$qry = "ALTER TABLE public.tbl_benutzer ADD COLUMN aktivierungscode varchar(64);";
if(!$db->db_query($qry))
echo '<strong>public.tbl_benutzer: '.$db->db_last_error().'</strong><br>';
else
echo 'public.tbl_benutzer: Spalte aktivierungscode hinzugefuegt';
}
// Diverse neue Indexe
if($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_lehrveranstaltung_studiengang'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "
DROP INDEX idx_lehreinheit_lehrfach_id;
CREATE INDEX idx_lehrveranstaltung_studiengang ON lehre.tbl_lehrveranstaltung USING btree (studiengang_kz);
CREATE INDEX idx_lehrveranstaltung_semester ON lehre.tbl_lehrveranstaltung USING btree (semester);
CREATE INDEX idx_lehreinheit_lehrveranstaltung_id ON lehre.tbl_lehreinheit USING btree (lehrveranstaltung_id);
CREATE INDEX idx_studienplan_studienordnung_id ON lehre.tbl_studienplan USING btree (studienordnung_id);
CREATE INDEX idx_studienplan_lehrveranstaltung_lehrveranstaltung_id ON lehre.tbl_studienplan_lehrveranstaltung USING btree (lehrveranstaltung_id);
CREATE INDEX idx_studienplan_lehrveranstaltung_stpllvid ON lehre.tbl_studienplan_lehrveranstaltung USING btree (studienplan_id, lehrveranstaltung_id);
CREATE INDEX idx_studienplan_lehrveranstaltung_studienplan_id ON lehre.tbl_studienplan_lehrveranstaltung USING btree (studienplan_id);
CREATE INDEX idx_studienplan_lehrveranstaltung_parent_id ON lehre.tbl_studienplan_lehrveranstaltung USING btree (studienplan_lehrveranstaltung_id_parent);
CREATE INDEX idx_lehreinheit_lehrfach_id ON lehre.tbl_lehreinheit USING btree (lehrfach_id)
";
if(!$db->db_query($qry))
echo '<strong>Indizes: '.$db->db_last_error().'</strong><br>';
else
echo 'Diverse Indexe fuer Studienpan und Lehrveranstaltung hinzugefuegt';
}
echo '<br><br><br>';
$tabellen=array(
@@ -1400,7 +1436,7 @@ $tabellen=array(
"public.tbl_aufmerksamdurch" => array("aufmerksamdurch_kurzbz","beschreibung","ext_id"),
"public.tbl_aufnahmeschluessel" => array("aufnahmeschluessel"),
"public.tbl_bankverbindung" => array("bankverbindung_id","person_id","name","anschrift","bic","blz","iban","kontonr","typ","verrechnung","updateamum","updatevon","insertamum","insertvon","ext_id","oe_kurzbz"),
"public.tbl_benutzer" => array("uid","person_id","aktiv","alias","insertamum","insertvon","updateamum","updatevon","ext_id","updateaktivvon","updateaktivam"),
"public.tbl_benutzer" => array("uid","person_id","aktiv","alias","insertamum","insertvon","updateamum","updatevon","ext_id","updateaktivvon","updateaktivam","aktivierungscode"),
"public.tbl_benutzerfunktion" => array("benutzerfunktion_id","fachbereich_kurzbz","uid","oe_kurzbz","funktion_kurzbz","semester", "datum_von","datum_bis", "updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung"),
"public.tbl_benutzergruppe" => array("uid","gruppe_kurzbz","studiensemester_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"),
"public.tbl_buchungstyp" => array("buchungstyp_kurzbz","beschreibung","standardbetrag","standardtext","aktiv","credit_points"),
+24 -20
View File
@@ -126,11 +126,11 @@ if(isset($_GET['type']) && $_GET['type']=='getortcontent' && isset($_GET['plz'])
echo getOrtDropDown($_GET['plz'], $_GET['gemeinde']);
exit;
}
function getStudienplanDropDown($studiengang_kz, $orgform_kurzbz='', $studienplan_id='')
{
$db = new basis_db();
function getStudienplanDropDown($studiengang_kz, $orgform_kurzbz='', $studienplan_id='')
{
$db = new basis_db();
$content= '<SELECT id="studienplan_id" name="studienplan_id">
<OPTION value="">-- keine Auswahl --</OPTION>';
$studienplan = new studienplan();
@@ -148,21 +148,21 @@ function getStudienplanDropDown($studiengang_kz, $orgform_kurzbz='', $studienpla
if($row->aktiv)
{
if($orgform_kurzbz=='' || $row->orgform_kurzbz=='' || $row->orgform_kurzbz==$orgform_kurzbz)
if($orgform_kurzbz=='' || $row->orgform_kurzbz=='' || $row->orgform_kurzbz==$orgform_kurzbz)
$content.="<option value='$row->studienplan_id' $selected>$row->bezeichnung</option>";
}
}
}
}
$content.= '</SELECT>';
return $content;
}
if(isset($_GET['type']) && $_GET['type']=='getstudienplancontent' && isset($_GET['studiengang_kz']) && isset($_GET['orgform_kurzbz']))
{
header('Content-Type: text/html; charset=UTF-8');
echo getStudienplanDropDown($_GET['studiengang_kz'], $_GET['orgform_kurzbz']);
exit;
return $content;
}
if(isset($_GET['type']) && $_GET['type']=='getstudienplancontent' && isset($_GET['studiengang_kz']) && isset($_GET['orgform_kurzbz']))
{
header('Content-Type: text/html; charset=UTF-8');
echo getStudienplanDropDown($_GET['studiengang_kz'], $_GET['orgform_kurzbz']);
exit;
}
?><!DOCTYPE HTML>
<html>
@@ -472,6 +472,9 @@ $anmerkungen = (isset($_REQUEST['anmerkungen'])?$_REQUEST['anmerkungen']:'');
$studiengang_kz = (isset($_REQUEST['studiengang_kz'])?$_REQUEST['studiengang_kz']:'');
if($studiengang_kz=='' && isset($_GET['studiengang_kz']))
$studiengang_kz = $_GET['studiengang_kz'];
if($studiengang_kz=='undefined')
$studiengang_kz='';
$person_id = (isset($_REQUEST['person_id'])?$_REQUEST['person_id']:'');
$ueberschreiben = (isset($_REQUEST['ueberschreiben'])?$_REQUEST['ueberschreiben']:'');
$studiensemester_kurzbz = (isset($_REQUEST['studiensemester_kurzbz'])?$_REQUEST['studiensemester_kurzbz']:'');
@@ -885,6 +888,7 @@ if(isset($_POST['save']))
$benutzer->uid = $uid;
$benutzer->person_id = $person->person_id;
$benutzer->aktiv = true;
$benutzer->aktivierungscode = generateActivationKey();
$nachname_clean = mb_strtolower(convertProblemChars($person->nachname));
$vorname_clean = mb_strtolower(convertProblemChars($person->vorname));
@@ -1131,7 +1135,7 @@ if($studiengang_kz!='')
else
echo '<font color="gray">Bitte zuerst einen Studiengang waehlen</font>';
echo '</div></td>
</tr>';
</tr>';
echo '<tr><td>Incoming:</td><td><input type="checkbox" id="incoming" name="incoming" '.($incoming?'checked':'').' onclick="cmdIncoming()" /></td></tr>';
echo '<tr><tr><td></td><td>';
@@ -1221,4 +1225,4 @@ if($where!='')
</table>
</form>
</body>
</html>
</html>
@@ -500,6 +500,7 @@ if(isset($_POST['save']))
$benutzer->alias = $alias;
$benutzer->insertamum=date('Y-m-d H:i:s');
$benutzer->insertvon = $user;
$benutzer->aktivierungscode = generateActivationKey();
if($benutzer->save(true,false))
{