This commit is contained in:
Stefan Puraner
2016-05-10 14:12:54 +02:00
13 changed files with 181 additions and 258 deletions
-42
View File
@@ -1,42 +0,0 @@
<?php
class File_model extends DB_Model
{
/**
*
*/
public function __construct()
{
parent::__construct();
}
/**
*
*/
public function saveFile($file = NULL)
{
$result = FALSE;
// Checks if the operation is permitted by the API caller
// All the code should be put inside this if statement
if(isAllowed($this->getUID(), 'file'))
{
if($this->_validate($file))
{
$result = $this->_write($file);
}
}
return $result;
}
private function _validate($file = NULL)
{
return TRUE;
}
private function _write($file = NULL)
{
return TRUE;
}
}
@@ -16,6 +16,13 @@ class Studiengang_model extends DB_Model
*/
public function getAllForBewerbung()
{
// Checks if the operation is permitted by the API caller
if (! $this->fhc_db_acl->isBerechtigt($this->acl['lehre.vw_studienplan'], 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl['lehre.vw_studienplan'], FHC_MODEL_ERROR);
if (! $this->fhc_db_acl->isBerechtigt($this->acl['bis.tbl_lgartcode'], 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl['bis.tbl_lgartcode'], FHC_MODEL_ERROR);
$allForBewerbungQuery = "SELECT DISTINCT studiengang_kz,
typ,
organisationseinheittyp_kurzbz,
@@ -29,13 +36,8 @@ class Studiengang_model extends DB_Model
AND aktiv IS TRUE
ORDER BY typ, studiengangbezeichnung, tbl_lgartcode.bezeichnung ASC";
// Checks if the operation is permitted by the API caller
if (! $this->fhc_db_acl->isBerechtigt($this->acl['lehre.vw_studienplan'], 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl['lehre.vw_studienplan'], FHC_MODEL_ERROR);
$result = $this->db->query($allForBewerbungQuery);
if (! $this->fhc_db_acl->isBerechtigt($this->acl['bis.tbl_lgartcode'], 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl['lehre.vw_studienplan'], FHC_MODEL_ERROR);
return $this->db->query($allForBewerbungQuery);
return $this->_success($result->result());
}
}
+111 -95
View File
@@ -1,95 +1,111 @@
<?php
class Person_model extends DB_Model
{
/**
*
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'public.tbl_person';
$this->pk = 'person_id';
}
public function getFields()
{
$fields = array(
//Tabellenspalten
"person_id" => NULL,
"sprache" => NULL,
"anrede" => NULL,
"titelpost" => NULL,
"titelpre" => NULL,
"nachname" => NULL,
"vorname" => NULL,
"vornamen" => NULL,
"gebdatum" => NULL,
"gebort" => NULL,
"gebzeit" => NULL,
"foto" => NULL,
"anmerkungen" => NULL,
"homepage" => NULL,
"svnr" => NULL,
"ersatzkennzeichen" => NULL,
"familienstand" => NULL,
"anzahlkinder" => NULL,
"aktiv"=>TRUE,
"insertamum" => NULL,
"insertvon" => NULL,
"updateamum" => NULL,
"updatevon" => NULL,
"geschlecht" => "u",
"staatsbuergerschaft" => NULL,
"geburtsnation" => NULL,
"ext_id" => NULL,
"kurzbeschreibung"> NULL,
"zugangscode" => NULL,
"foto_sperre" => FALSE,
"matr_nr"=> NULL
);
return $this->_success($fields);
}
/**
*
*/
public function checkBewerbung($email, $studiensemester_kurzbz = NULL)
{
$this->db->distinct();
if(is_null($studiensemester_kurzbz))
{
$this->db->select("p.person_id, p.zugangscode, p.insertamum")
->from("public.tbl_person p")
->join("public.tbl_kontakt k", "p.person_id=k.person_id")
->join("public.tbl_benutzer b", "p.person_id=b.person_id", "left")
->where("k.kontakttyp", 'email')
->where("(kontakt='" . $email . "'" .
" OR alias ||'@technikum-wien.at'='" . $email . "'" .
" OR uid ||'@technikum-wien.at'='" . $email . "')")
->order_by("p.insertamum", "DESC")
->limit(1)
;
}
else
{
$this->db->select("p.person_id,p.zugangscode,p.insertamum")
->from("public.tbl_person p")
->join("public.tbl_kontakt k", "p.person_id=k.person_id")
->join("public.tbl_benutzer b", "p.person_id=b.person_id", "left")
->join("public.tbl_prestudent ps", "p.person_id=ps.person_id")
->join("public.tbl_prestudentstatus pst", "pst.prestudent_id=ps.prestudent_id")
->where("k.kontakttyp", 'email')
->where("(kontakt='" . $email . "'" .
" OR alias ||'@technikum-wien.at'='" . $email . "'" .
" OR uid ||'@technikum-wien.at'='" . $email . "')")
->where("studiensemester_kurzbz='" . $studiensemester_kurzbz . "'")
->order_by("p.insertamum", "DESC")
->limit(1)
;
}
return $this->db->get()->result_array();
}
}
<?php
class Person_model extends DB_Model
{
/**
*
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'public.tbl_person';
$this->pk = 'person_id';
}
public function getFields()
{
$fields = array(
//Tabellenspalten
"person_id" => NULL,
"sprache" => NULL,
"anrede" => NULL,
"titelpost" => NULL,
"titelpre" => NULL,
"nachname" => NULL,
"vorname" => NULL,
"vornamen" => NULL,
"gebdatum" => NULL,
"gebort" => NULL,
"gebzeit" => NULL,
"foto" => NULL,
"anmerkungen" => NULL,
"homepage" => NULL,
"svnr" => NULL,
"ersatzkennzeichen" => NULL,
"familienstand" => NULL,
"anzahlkinder" => NULL,
"aktiv"=>TRUE,
"insertamum" => NULL,
"insertvon" => NULL,
"updateamum" => NULL,
"updatevon" => NULL,
"geschlecht" => "u",
"staatsbuergerschaft" => NULL,
"geburtsnation" => NULL,
"ext_id" => NULL,
"kurzbeschreibung"> NULL,
"zugangscode" => NULL,
"foto_sperre" => FALSE,
"matr_nr"=> NULL
);
return $this->_success($fields);
}
/**
*
*/
public function checkBewerbung($email, $studiensemester_kurzbz = NULL)
{
// Checks if the operation is permitted by the API caller
if (! $this->fhc_db_acl->isBerechtigt($this->acl['public.tbl_person'], 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl['public.tbl_person'], FHC_MODEL_ERROR);
if (! $this->fhc_db_acl->isBerechtigt($this->acl['public.tbl_kontakt'], 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl['public.tbl_kontakt'], FHC_MODEL_ERROR);
if (! $this->fhc_db_acl->isBerechtigt($this->acl['public.tbl_benutzer'], 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl['public.tbl_benutzer'], FHC_MODEL_ERROR);
if (! $this->fhc_db_acl->isBerechtigt($this->acl['public.tbl_prestudent'], 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl['public.tbl_prestudent'], FHC_MODEL_ERROR);
if (! $this->fhc_db_acl->isBerechtigt($this->acl['public.tbl_prestudentstatus'], 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl['public.tbl_prestudentstatus'], FHC_MODEL_ERROR);
$result = NULL;
if(is_null($studiensemester_kurzbz))
{
$checkBewerbungQuery = "SELECT DISTINCT p.person_id, p.zugangscode, p.insertamum
FROM public.tbl_person p JOIN public.tbl_kontakt k ON p.person_id = k.person_id
LEFT JOIN public.tbl_benutzer b ON p.person_id = b.person_id
WHERE k.kontakttyp = 'email'
AND (kontakt = ? OR alias || '@technikum-wien.at' = ? OR uid || '@technikum-wien.at' = ?)
ORDER BY p.insertamum DESC
LIMIT 1";
$result = $this->db->query($checkBewerbungQuery, array($email, $email, $email));
}
else
{
$checkBewerbungQuery = "SELECT DISTINCT p.person_id, p.zugangscode, p.insertamum
FROM public.tbl_person p JOIN public.tbl_kontakt k ON p.person_id = k.person_id
LEFT JOIN public.tbl_benutzer b ON p.person_id = b.person_id
JOIN public.tbl_prestudent ps ON p.person_id = ps.person_id
JOIN public.tbl_prestudentstatus pst ON pst.prestudent_id = ps.prestudent_id
WHERE k.kontakttyp = 'email'
AND (kontakt = ? OR alias || '@technikum-wien.at' = ? OR uid || '@technikum-wien.at' = ?)
AND studiensemester_kurzbz = ?
ORDER BY p.insertamum DESC
LIMIT 1";
$result = $this->db->query($checkBewerbungQuery, array($email, $email, $email, $studiensemester_kurzbz));
}
if(is_object($result))
return $this->_success($result->result());
else
return $this->_error($this->db->error(), FHC_DB_ERROR);
}
}