Merge branch 'master' into ciauth

This commit is contained in:
Paolo
2019-03-21 17:04:51 +01:00
17 changed files with 284 additions and 125 deletions
@@ -81,10 +81,15 @@ class Manager extends Auth_Controller
}
/**
*
* Installiert eine Extension.
* Es wird davon ausgegangen, dass die Extension ueber einen Fileupload hochgeladen wird.
* alternativ kann hier auch der Name und Filename uebergeben werden um die installation ueber
* die Commandline ohne Upload durchzufuehren.
* @param $extensioName string Name der Extension
* @param $filename Url Encoded Pfad zum tgz File der Extension
*/
public function uploadExtension()
public function uploadExtension($extensionName = null, $filename = null)
{
$this->extensionslib->installExtension();
$this->extensionslib->installExtension($extensionName, urldecode($filename));
}
}
+16 -4
View File
@@ -59,17 +59,29 @@ class ExtensionsLib
/**
* Main method to install an extension
* If no filename / Extensionname is provided the extension should be uploaded via webupload
*
* @param $extensionName string Name of Extension (optional)
* @param $filename Path to tgz Extension File (optional)
*/
public function installExtension()
public function installExtension($extensionName = null, $filename = null)
{
$extensionDB = null; // contains data from DB about an extension
$extensionJson = null; // contains the extension.json data
$this->_printInfo('WARNING!!! Please do not change page or stop this procedure before it is finished');
$this->_loadUploadLibrary(); // loads CI upload library
$uploadData = $this->_uploadExtension(); // perform the upload of the file and returns info about it
if (!is_null($extensionName) && !is_null($filename))
{
$uploadData = new stdClass();
$uploadData->fullPath = $filename;
$uploadData->extensionName = $extensionName;
}
else
{
$this->_loadUploadLibrary(); // loads CI upload library
$uploadData = $this->_uploadExtension(); // perform the upload of the file and returns info about it
}
if ($uploadData != null) // if no error occurred
{
+2 -1
View File
@@ -112,11 +112,12 @@ class PermissionLib
public function isEntitled($requiredPermissions, $calledMethod)
{
$checkPermissions = false;
$requestMethod = $_SERVER['REQUEST_METHOD'];
// If it's called from command line than it's trusted
if (is_cli()) return true;
$requestMethod = $_SERVER['REQUEST_METHOD'];
// Checks if the parameter $requiredPermissions is set, is an array and contains at least one element
if (isset($requiredPermissions) && !isEmptyArray($requiredPermissions))
{
@@ -47,7 +47,12 @@ class Lehreinheit_model extends DB_Model
// add lehreinheitgruppen, each lehreinheitid
// having (maybe multiple) lehreinheitgruppen
$letoadd->lehreinheitgruppen = array();
$this->LehreinheitgruppeModel->addSelect('lehre.tbl_lehreinheitgruppe.*, tbl_gruppe.bezeichnung, tbl_gruppe.direktinskription');
$this->LehreinheitgruppeModel->addJoin('public.tbl_gruppe', 'gruppe_kurzbz', 'LEFT');
$lehreinheitgruppen = $this->LehreinheitgruppeModel->loadWhere(array('lehreinheit_id' => $le->lehreinheit_id));
if (hasData($lehreinheitgruppen))
{
foreach ($lehreinheitgruppen->retval as $lehreinheitgruppe)
@@ -55,7 +60,9 @@ class Lehreinheit_model extends DB_Model
$letoadd->lehreinheitgruppen[] = array(
'semester' => $lehreinheitgruppe->semester,
'verband' => $lehreinheitgruppe->verband,
'gruppe' => $lehreinheitgruppe->gruppe
'gruppe' => $lehreinheitgruppe->gruppe,
'gruppe_kurzbz' => $lehreinheitgruppe->gruppe_kurzbz,
'direktinskription' => $lehreinheitgruppe->direktinskription
);
}
}
@@ -78,4 +85,22 @@ class Lehreinheit_model extends DB_Model
return $lehreinheiten;
}
/**
* Gets students of a Lehreinheit
* @param int $lehreinheit_id
* @return array
*/
public function getStudenten($lehreinheit_id)
{
$query = 'SELECT uid, vorname, nachname '
. 'FROM campus.vw_student_lehrveranstaltung '
. 'JOIN campus.vw_student '
. 'USING (uid) '
. 'WHERE lehreinheit_id = ?'
. ' ORDER BY nachname';
return $this->execQuery($query, array($lehreinheit_id));
}
}