mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-25 08:34:29 +00:00
Compare commits
20
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
494d1bdb23 | ||
|
|
edc65621f7 | ||
|
|
0f19788d2d | ||
|
|
e39d05c83c | ||
|
|
ea7910d1a4 | ||
|
|
728a8ab19e | ||
|
|
4d022208e7 | ||
|
|
fcb1ea6534 | ||
|
|
181580fb55 | ||
|
|
e968d21d35 | ||
|
|
4925542c8a | ||
|
|
0f8afd90fd | ||
|
|
1e5979fe70 | ||
|
|
7403c612b0 | ||
|
|
bcf6708e31 | ||
|
|
b511e1b15b | ||
|
|
ed579be7d1 | ||
|
|
8031a7ace8 | ||
|
|
2d18d1856a | ||
|
|
6e0c399831 |
@@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2024 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 3 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, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Permission extends FHCAPI_Controller
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct([
|
||||||
|
'isBerechtigt' => self::PERM_LOGGED
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Load the library SearchBarLib
|
||||||
|
$this->load->library('PermissionLib');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function isBerechtigt()
|
||||||
|
{
|
||||||
|
$payload = json_decode($this->input->raw_input_stream, TRUE);
|
||||||
|
if( !isset($payload['berechtigung_kurzbz']) || empty($payload['berechtigung_kurzbz']) )
|
||||||
|
{
|
||||||
|
$this->terminateWithError('Missing Parameter "berechtigung_kurzbz"');
|
||||||
|
}
|
||||||
|
$berechtigung_kurzbz = $payload['berechtigung_kurzbz'];
|
||||||
|
$art = isset($payload['art']) ? $payload['art'] : null;
|
||||||
|
$oe_kurzbz = isset($payload['oe_kurzbz']) ? $payload['oe_kurzbz'] : null;
|
||||||
|
$kostenstelle_id = isset($payload['kostenstelle_id']) ? $payload['kostenstelle_id'] : null;
|
||||||
|
$payload['isBerechtigt'] = $this->permissionlib->isBerechtigt(
|
||||||
|
$berechtigung_kurzbz, $art, $oe_kurzbz, $kostenstelle_id
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->terminateWithSuccess($payload);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,6 +15,13 @@ class GehaltsbestandteilLib
|
|||||||
protected $CI;
|
protected $CI;
|
||||||
/** @var Gehaltsbestandteil_model */
|
/** @var Gehaltsbestandteil_model */
|
||||||
protected $GehaltsbestandteilModel;
|
protected $GehaltsbestandteilModel;
|
||||||
|
/** @var Dienstverhaeltnis_model */
|
||||||
|
protected $DienstverhaeltnisModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var PermissionLib
|
||||||
|
*/
|
||||||
|
protected $PermissionLib;
|
||||||
|
|
||||||
protected $loggedInUser;
|
protected $loggedInUser;
|
||||||
|
|
||||||
@@ -24,7 +31,25 @@ class GehaltsbestandteilLib
|
|||||||
$this->CI = get_instance();
|
$this->CI = get_instance();
|
||||||
$this->CI->load->model('vertragsbestandteil/Gehaltsbestandteil_model',
|
$this->CI->load->model('vertragsbestandteil/Gehaltsbestandteil_model',
|
||||||
'GehaltsbestandteilModel');
|
'GehaltsbestandteilModel');
|
||||||
|
$this->CI->load->model('vertragsbestandteil/Dienstverhaeltnis_model',
|
||||||
|
'DienstverhaeltnisModel');
|
||||||
|
$this->DienstverhaeltnisModel = $this->CI->DienstverhaeltnisModel;
|
||||||
|
$this->CI->load->library('extensions/FHC-Core-Personalverwaltung/abrechnung/GehaltsLib');
|
||||||
$this->GehaltsbestandteilModel = $this->CI->GehaltsbestandteilModel;
|
$this->GehaltsbestandteilModel = $this->CI->GehaltsbestandteilModel;
|
||||||
|
$this->CI->load->library('PermissionLib', null, 'PermissionLib');
|
||||||
|
$this->PermissionLib = $this->CI->PermissionLib;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function fetchDienstverhaeltnis($dienstverhaeltnis_id)
|
||||||
|
{
|
||||||
|
$result = $this->DienstverhaeltnisModel->load($dienstverhaeltnis_id);
|
||||||
|
$dv = null;
|
||||||
|
if(null !== ($row = getData($result)))
|
||||||
|
{
|
||||||
|
$dv = new Dienstverhaeltnis();
|
||||||
|
$dv->hydrateByStdClass($row[0], true);
|
||||||
|
}
|
||||||
|
return $dv;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function fetchGehaltsbestandteileValorisiertForChart($dienstverhaeltnis_id, $stichtag=null, $includefuture=false)
|
public function fetchGehaltsbestandteileValorisiertForChart($dienstverhaeltnis_id, $stichtag=null, $includefuture=false)
|
||||||
@@ -120,12 +145,24 @@ class GehaltsbestandteilLib
|
|||||||
{
|
{
|
||||||
$this->setUIDtoPGSQL();
|
$this->setUIDtoPGSQL();
|
||||||
|
|
||||||
$ret = $this->GehaltsbestandteilModel->delete($gehaltsbestandteil->getGehaltsbestandteil_id());
|
$dv = $this->fetchDienstverhaeltnis($gehaltsbestandteil->getDienstverhaeltnis_id());
|
||||||
|
if($dv && $this->PermissionLib->isberechtigt('basis/gehaelter', 'd', $dv->getOe_kurzbz()))
|
||||||
if (isError($ret))
|
|
||||||
{
|
{
|
||||||
throw new Exception('error deleting gehaltsbestandteil');
|
// delete Gehaltsabrechnung
|
||||||
|
$ret = $this->CI->gehaltslib->deleteAbrechnung($gehaltsbestandteil);
|
||||||
|
|
||||||
|
//
|
||||||
|
$ret = $this->GehaltsbestandteilModel->delete($gehaltsbestandteil->getGehaltsbestandteil_id());
|
||||||
|
|
||||||
|
if (isError($ret))
|
||||||
|
{
|
||||||
|
throw new Exception('error deleting gehaltsbestandteil');
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
throw new Exception('permission denied for deleting gehaltsbestandteil');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function endGehaltsbestandteil(Gehaltsbestandteil $gehaltsbestandteil, $enddate)
|
public function endGehaltsbestandteil(Gehaltsbestandteil $gehaltsbestandteil, $enddate)
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace vertragsbestandteil;
|
||||||
|
|
||||||
|
class NoPermissionException extends \Exception
|
||||||
|
{
|
||||||
|
// Redefine the exception so message isn't optional
|
||||||
|
public function __construct($message, $code = 0, ?\Throwable $previous = null) {
|
||||||
|
|
||||||
|
// make sure everything is assigned properly
|
||||||
|
parent::__construct($message, $code, $previous);
|
||||||
|
}
|
||||||
|
|
||||||
|
// custom string representation of object
|
||||||
|
public function __toString() {
|
||||||
|
return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -13,10 +13,12 @@ require_once __DIR__ . '/VertragsbestandteilKarenz.php';
|
|||||||
require_once __DIR__ . '/VertragsbestandteilLohnguide.php';
|
require_once __DIR__ . '/VertragsbestandteilLohnguide.php';
|
||||||
require_once __DIR__ . '/VertragsbestandteilFactory.php';
|
require_once __DIR__ . '/VertragsbestandteilFactory.php';
|
||||||
require_once __DIR__ . '/OverlapChecker.php';
|
require_once __DIR__ . '/OverlapChecker.php';
|
||||||
|
require_once __DIR__ . '/NoPermissionException.php';
|
||||||
|
|
||||||
use vertragsbestandteil\Dienstverhaeltnis;
|
use vertragsbestandteil\Dienstverhaeltnis;
|
||||||
use vertragsbestandteil\Vertragsbestandteil;
|
use vertragsbestandteil\Vertragsbestandteil;
|
||||||
use vertragsbestandteil\VertragsbestandteilFactory;
|
use vertragsbestandteil\VertragsbestandteilFactory;
|
||||||
|
use vertragsbestandteil\NoPermissionException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description of VertragsbestandteilLib
|
* Description of VertragsbestandteilLib
|
||||||
@@ -35,6 +37,8 @@ class VertragsbestandteilLib
|
|||||||
protected $DienstverhaeltnisModel;
|
protected $DienstverhaeltnisModel;
|
||||||
/** @var Vertragsbestandteil_model */
|
/** @var Vertragsbestandteil_model */
|
||||||
protected $VertragsbestandteilModel;
|
protected $VertragsbestandteilModel;
|
||||||
|
/** @var GehaltsbestandeilModel */
|
||||||
|
protected $GehaltbestandteilModel;
|
||||||
/** @var Benutzer_model */
|
/** @var Benutzer_model */
|
||||||
protected $BenutzerModel;
|
protected $BenutzerModel;
|
||||||
/**
|
/**
|
||||||
@@ -44,6 +48,11 @@ class VertragsbestandteilLib
|
|||||||
|
|
||||||
protected $loggedInUser;
|
protected $loggedInUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var PermissionLib
|
||||||
|
*/
|
||||||
|
protected $PermissionLib;
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$this->loggedInUser = getAuthUID();
|
$this->loggedInUser = getAuthUID();
|
||||||
@@ -54,12 +63,17 @@ class VertragsbestandteilLib
|
|||||||
$this->CI->load->model('vertragsbestandteil/Vertragsbestandteil_model',
|
$this->CI->load->model('vertragsbestandteil/Vertragsbestandteil_model',
|
||||||
'VertragsbestandteilModel');
|
'VertragsbestandteilModel');
|
||||||
$this->VertragsbestandteilModel = $this->CI->VertragsbestandteilModel;
|
$this->VertragsbestandteilModel = $this->CI->VertragsbestandteilModel;
|
||||||
|
$this->CI->load->model('vertragsbestandteil/Gehaltsbestandteil_model',
|
||||||
|
'GehaltbestandteilModel');
|
||||||
|
$this->GehaltbestandteilModel = $this->CI->GehaltbestandteilModel;
|
||||||
$this->CI->load->model('person/benutzer_model',
|
$this->CI->load->model('person/benutzer_model',
|
||||||
'BenutzerModel');
|
'BenutzerModel');
|
||||||
$this->BenutzerModel = $this->CI->BenutzerModel;
|
$this->BenutzerModel = $this->CI->BenutzerModel;
|
||||||
$this->CI->load->library('vertragsbestandteil/GehaltsbestandteilLib',
|
$this->CI->load->library('vertragsbestandteil/GehaltsbestandteilLib',
|
||||||
null, 'GehaltsbestandteilLib');
|
null, 'GehaltsbestandteilLib');
|
||||||
$this->GehaltsbestandteilLib = $this->CI->GehaltsbestandteilLib;
|
$this->GehaltsbestandteilLib = $this->CI->GehaltsbestandteilLib;
|
||||||
|
$this->CI->load->library('PermissionLib', null, 'PermissionLib');
|
||||||
|
$this->PermissionLib = $this->CI->PermissionLib;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function handleGUIData($guidata, $employeeUID, $userUID)
|
public function handleGUIData($guidata, $employeeUID, $userUID)
|
||||||
@@ -99,9 +113,14 @@ class VertragsbestandteilLib
|
|||||||
$vbs = $this->VertragsbestandteilModel->getVertragsbestandteile(
|
$vbs = $this->VertragsbestandteilModel->getVertragsbestandteile(
|
||||||
$dienstverhaeltnis_id, $stichtag, $includefuture
|
$dienstverhaeltnis_id, $stichtag, $includefuture
|
||||||
);
|
);
|
||||||
$gbs = $this->GehaltsbestandteilLib->fetchGehaltsbestandteile(
|
$dv = $this->fetchDienstverhaeltnis($dienstverhaeltnis_id);
|
||||||
$dienstverhaeltnis_id, $stichtag, $includefuture, $withvalorisationhistory
|
$gbs = array();
|
||||||
);
|
if($dv && $this->PermissionLib->isberechtigt('basis/gehaelter', 's', $dv->getOe_kurzbz()))
|
||||||
|
{
|
||||||
|
$gbs = $this->GehaltsbestandteilLib->fetchGehaltsbestandteile(
|
||||||
|
$dienstverhaeltnis_id, $stichtag, $includefuture, $withvalorisationhistory
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$gbsByVBid = array();
|
$gbsByVBid = array();
|
||||||
foreach( $gbs as $gb )
|
foreach( $gbs as $gb )
|
||||||
@@ -235,8 +254,12 @@ class VertragsbestandteilLib
|
|||||||
throw new Exception("Transaction failed");
|
throw new Exception("Transaction failed");
|
||||||
}
|
}
|
||||||
$this->CI->db->trans_commit();
|
$this->CI->db->trans_commit();
|
||||||
}
|
} catch (NoPermissionException $e) {
|
||||||
catch (Exception $ex)
|
log_message('debug', "Transaction rolled back. " . $e->getMessage());
|
||||||
|
$this->CI->db->trans_rollback();
|
||||||
|
// rethrow and let GUIHandler catch it to display error message
|
||||||
|
throw $e;
|
||||||
|
} catch (Exception $ex)
|
||||||
{
|
{
|
||||||
log_message('debug', "Transaction rolled back. " . $ex->getMessage());
|
log_message('debug', "Transaction rolled back. " . $ex->getMessage());
|
||||||
$this->CI->db->trans_rollback();
|
$this->CI->db->trans_rollback();
|
||||||
@@ -315,6 +338,15 @@ class VertragsbestandteilLib
|
|||||||
private function deleteVertragsbestandteilHelper(Vertragsbestandteil $vertragsbestandteil)
|
private function deleteVertragsbestandteilHelper(Vertragsbestandteil $vertragsbestandteil)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
$dv = $this->fetchDienstverhaeltnis($vertragsbestandteil->getDienstverhaeltnis_id());
|
||||||
|
$hasGehaltsPermission = $this->PermissionLib->isberechtigt('basis/gehaelter', 's', $dv->getOe_kurzbz());
|
||||||
|
$vbHasGehaltsbestandteile = $this->GehaltbestandteilModel->existsGehaltsbestandteil($vertragsbestandteil->getVertragsbestandteil_id());
|
||||||
|
|
||||||
|
if (!$hasGehaltsPermission && $vbHasGehaltsbestandteile)
|
||||||
|
{
|
||||||
|
throw new NoPermissionException('delete Gehaltsbestandteil permission denied');
|
||||||
|
}
|
||||||
|
|
||||||
$specialisedModel = VertragsbestandteilFactory::getVertragsbestandteilDBModel(
|
$specialisedModel = VertragsbestandteilFactory::getVertragsbestandteilDBModel(
|
||||||
$vertragsbestandteil->getVertragsbestandteiltyp_kurzbz());
|
$vertragsbestandteil->getVertragsbestandteiltyp_kurzbz());
|
||||||
$retspecial = $specialisedModel->delete($vertragsbestandteil->getVertragsbestandteil_id());
|
$retspecial = $specialisedModel->delete($vertragsbestandteil->getVertragsbestandteil_id());
|
||||||
|
|||||||
@@ -130,6 +130,15 @@ LEFT JOIN
|
|||||||
$this->getEncryptedColumns());
|
$this->getEncryptedColumns());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function existsGehaltsbestandteil($vertragsbestandteil_id)
|
||||||
|
{
|
||||||
|
$qry = "select count(*) from hr.tbl_gehaltsbestandteil where vertragsbestandteil_id=?";
|
||||||
|
$ret = $this->execQuery($qry,
|
||||||
|
array($vertragsbestandteil_id));
|
||||||
|
$d = getData($ret);
|
||||||
|
return $d !== null && $d > 0;
|
||||||
|
}
|
||||||
|
|
||||||
public function getGehaltsbestandteile($dienstverhaeltnis_id, $stichtag=null,
|
public function getGehaltsbestandteile($dienstverhaeltnis_id, $stichtag=null,
|
||||||
$includefuture=false, $withvalorisationhistory=true)
|
$includefuture=false, $withvalorisationhistory=true)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -148,6 +148,9 @@
|
|||||||
generateJSsInclude('vendor/npm-asset/primevue/autocomplete/autocomplete.min.js');
|
generateJSsInclude('vendor/npm-asset/primevue/autocomplete/autocomplete.min.js');
|
||||||
generateJSsInclude('vendor/npm-asset/primevue/overlaypanel/overlaypanel.min.js');
|
generateJSsInclude('vendor/npm-asset/primevue/overlaypanel/overlaypanel.min.js');
|
||||||
generateJSsInclude('vendor/npm-asset/primevue/datatable/datatable.min.js');
|
generateJSsInclude('vendor/npm-asset/primevue/datatable/datatable.min.js');
|
||||||
|
generateJSsInclude('vendor/npm-asset/primevue/fileupload/fileupload.min.js');
|
||||||
|
generateJSsInclude('vendor/npm-asset/primevue/tabview/tabview.min.js');
|
||||||
|
generateJSsInclude('vendor/npm-asset/primevue/tabpanel/tabpanel.min.js');
|
||||||
// TODO check ob notwendig
|
// TODO check ob notwendig
|
||||||
generateJSsInclude('vendor/npm-asset/primevue/toast/toast.min.js');
|
generateJSsInclude('vendor/npm-asset/primevue/toast/toast.min.js');
|
||||||
generateJSsInclude('vendor/npm-asset/primevue/toastservice/toastservice.min.js');
|
generateJSsInclude('vendor/npm-asset/primevue/toastservice/toastservice.min.js');
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2025 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 3 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, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
export default {
|
||||||
|
|
||||||
|
isBerechtigt(berechtigung_kurzbz, art, oe_kurzbz, kostenstelle_id) {
|
||||||
|
return {
|
||||||
|
method: 'post',
|
||||||
|
url: '/api/frontend/v1/Permission/isBerechtigt',
|
||||||
|
params: { berechtigung_kurzbz, art, oe_kurzbz, kostenstelle_id }
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -39,6 +39,7 @@ import studiengang from "./studiengang.js";
|
|||||||
import menu from "./menu.js";
|
import menu from "./menu.js";
|
||||||
import dashboard from "./dashboard.js";
|
import dashboard from "./dashboard.js";
|
||||||
import authinfo from "./authinfo.js";
|
import authinfo from "./authinfo.js";
|
||||||
|
import permission from "./permission.js";
|
||||||
import vertraege from "./vertraege.js";
|
import vertraege from "./vertraege.js";
|
||||||
import studium from "./studium.js";
|
import studium from "./studium.js";
|
||||||
import language from "./language.js";
|
import language from "./language.js";
|
||||||
@@ -65,10 +66,10 @@ export default {
|
|||||||
addons,
|
addons,
|
||||||
messages,
|
messages,
|
||||||
vorlagen,
|
vorlagen,
|
||||||
addons,
|
|
||||||
studiengang,
|
studiengang,
|
||||||
menu,
|
menu,
|
||||||
authinfo,
|
authinfo,
|
||||||
|
permission,
|
||||||
vertraege,
|
vertraege,
|
||||||
studium,
|
studium,
|
||||||
language
|
language
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
export default {
|
||||||
|
isBerechtigt: function(berechtigung_kurzbz, art, oe_kurzbz, kostenstelle_id) {
|
||||||
|
var url = FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router
|
||||||
|
+ '/api/frontend/v1/Permission/isBerechtigt';
|
||||||
|
var payload = {
|
||||||
|
"berechtigung_kurzbz": berechtigung_kurzbz,
|
||||||
|
"art": art,
|
||||||
|
"oe_kurzbz": oe_kurzbz,
|
||||||
|
"kostenstelle_id": kostenstelle_id
|
||||||
|
};
|
||||||
|
return axios.post(url, payload, {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2017 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: Harald Bamberger <[email protected]>,
|
||||||
|
*
|
||||||
|
* Beschreibung:
|
||||||
|
* Permissions f. DV erstellen und bearbeiten bzw. korrigieren, Gehaelter
|
||||||
|
*/
|
||||||
|
if (! defined('DB_NAME')) exit('No direct script access allowed');
|
||||||
|
|
||||||
|
// Add permission: basis/gehaelter
|
||||||
|
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'basis/gehaelter';"))
|
||||||
|
{
|
||||||
|
if($db->db_num_rows($result) == 0)
|
||||||
|
{
|
||||||
|
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('basis/gehaelter', 'Zugriff auf gehaelter');";
|
||||||
|
|
||||||
|
if(!$db->db_query($qry))
|
||||||
|
{
|
||||||
|
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo 'system.tbl_berechtigung: Added permission "basis/gehaelter"<br>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -27580,6 +27580,26 @@ array(
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
array(
|
||||||
|
'app' => 'personalverwaltung',
|
||||||
|
'category' => 'person',
|
||||||
|
'phrase' => 'weiterbildung',
|
||||||
|
'insertvon' => 'system',
|
||||||
|
'phrases' => array(
|
||||||
|
array(
|
||||||
|
'sprache' => 'German',
|
||||||
|
'text' => 'Weiterbildung',
|
||||||
|
'description' => '',
|
||||||
|
'insertvon' => 'system'
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'sprache' => 'English',
|
||||||
|
'text' => 'Training',
|
||||||
|
'description' => '',
|
||||||
|
'insertvon' => 'system'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
array(
|
array(
|
||||||
'app' => 'personalverwaltung',
|
'app' => 'personalverwaltung',
|
||||||
'category' => 'person',
|
'category' => 'person',
|
||||||
|
|||||||
Reference in New Issue
Block a user