mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-14 21:42:16 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e43887678e | |||
| fbc88bf768 | |||
| 8735242e0f | |||
| 7c397df829 |
@@ -64,7 +64,7 @@ class AuthLib
|
||||
{
|
||||
// - The uid must be NOT an empty string
|
||||
// - The current user should NOT be already logged as the given uid
|
||||
if (!isEmptyString($uid) && $this->getAuthObj()->username != $uid)
|
||||
if (!isEmptyString($uid) && $this->getAuthObj()->{self::AO_USERNAME} != $uid)
|
||||
{
|
||||
$this->_ci->load->library('PermissionLib'); // Loads permissions library
|
||||
|
||||
@@ -75,8 +75,28 @@ class AuthLib
|
||||
$loginAS = $this->_createAuthObjByPerson(array('uid' => $uid));
|
||||
if (isSuccess($loginAS))
|
||||
{
|
||||
$authObj = getData($loginAS); // get the authenticate object
|
||||
|
||||
// Store the new authentication object in authentication session
|
||||
setSessionElement(self::SESSION_NAME, self::SESSION_AUTH_OBJ, getData($loginAS));
|
||||
setSessionElement(self::SESSION_NAME, self::SESSION_AUTH_OBJ, $authObj);
|
||||
|
||||
$authObjOrigin = getSessionElement(self::SESSION_NAME, self::SESSION_AUTH_OBJ_ORIGIN);
|
||||
|
||||
// Load the LogLib
|
||||
$this->_ci->load->library('LogLib');
|
||||
// Setup the LogLib
|
||||
$this->_ci->loglib->setConfigs(
|
||||
array(
|
||||
'dbLogType' => 'API', // required
|
||||
'dbExecuteUser' => $authObjOrigin->{self::AO_USERNAME}, // current logged user
|
||||
'requestId' => 'API'
|
||||
)
|
||||
);
|
||||
// Log into the database
|
||||
$this->_ci->loglib->logInfoDB(
|
||||
'The user "'.$authObjOrigin->{self::AO_USERNAME}.'" has changed identity with the user "'.$authObj->{self::AO_USERNAME}.
|
||||
'" and person id '.$authObj->{self::AO_PERSON_ID}
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -105,7 +125,7 @@ class AuthLib
|
||||
{
|
||||
// - The person id must be a number
|
||||
// - The current user should NOT be already logged as the given person id
|
||||
if (is_numeric($person_id) && $this->getAuthObj()->person_id != $person_id)
|
||||
if (is_numeric($person_id) && $this->getAuthObj()->{self::AO_PERSON_ID} != $person_id)
|
||||
{
|
||||
$this->_ci->load->library('PermissionLib'); // Loads permissions library
|
||||
|
||||
@@ -124,6 +144,24 @@ class AuthLib
|
||||
{
|
||||
// Store the new authentication object in authentication session
|
||||
setSessionElement(self::SESSION_NAME, self::SESSION_AUTH_OBJ, $authObj);
|
||||
|
||||
$authObjOrigin = getSessionElement(self::SESSION_NAME, self::SESSION_AUTH_OBJ_ORIGIN);
|
||||
|
||||
// Load the LogLib
|
||||
$this->_ci->load->library('LogLib');
|
||||
// Setup the LogLib
|
||||
$this->_ci->loglib->setConfigs(
|
||||
array(
|
||||
'dbLogType' => 'API', // required
|
||||
'dbExecuteUser' => $authObjOrigin->{self::AO_USERNAME}, // current logged user
|
||||
'requestId' => 'API'
|
||||
)
|
||||
);
|
||||
// Log into the database
|
||||
$this->_ci->loglib->logInfoDB(
|
||||
'The user "'.$authObjOrigin->{self::AO_USERNAME}.'" has changed identity with the user "'.$authObj->{self::AO_USERNAME}.
|
||||
'" and person id '.$authObj->{self::AO_PERSON_ID}
|
||||
);
|
||||
}
|
||||
else // if does NOT have permissions
|
||||
{
|
||||
@@ -172,6 +210,22 @@ class AuthLib
|
||||
// The LoginAs account is logged out
|
||||
// The user is again connected with its real account
|
||||
setSessionElement(self::SESSION_NAME, self::SESSION_AUTH_OBJ, $authObjOrigin);
|
||||
|
||||
// Load the LogLib
|
||||
$this->_ci->load->library('LogLib');
|
||||
// Setup the LogLib
|
||||
$this->_ci->loglib->setConfigs(
|
||||
array(
|
||||
'dbLogType' => 'API', // required
|
||||
'dbExecuteUser' => $authObjOrigin->{self::AO_USERNAME}, // current logged user
|
||||
'requestId' => 'API'
|
||||
)
|
||||
);
|
||||
// Log into the database
|
||||
$this->_ci->loglib->logInfoDB(
|
||||
'The user "'.$authObjOrigin->{self::AO_USERNAME}.'" has logout from the user "'.$authObj->{self::AO_USERNAME}.
|
||||
'" and person id '.$authObj->{self::AO_PERSON_ID}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -608,3 +662,4 @@ class AuthLib
|
||||
return $finalUserBasicDataByUID;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -122,47 +122,6 @@ class Studiensemester_model extends DB_Model
|
||||
return $this->execQuery($query, array($studiensemester_kurzbz, $limit));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the current study semester and the previous semesters of the same type (SS/WS).
|
||||
*
|
||||
* Example:
|
||||
* - SS2026, limit 3: SS2026, SS2025, SS2024
|
||||
* - WS2025, limit 2: WS2025, WS2024
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @param $limit
|
||||
*/
|
||||
public function getPreviousSameSemesterFrom($studiensemester_kurzbz, $limit = 1)
|
||||
{
|
||||
$qry = '
|
||||
SELECT
|
||||
studiensemester_kurzbz,
|
||||
start,
|
||||
ende
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
SUBSTRING(studiensemester_kurzbz FROM 1 FOR 2) = SUBSTRING(? FROM 1 FOR 2)
|
||||
AND start <= (
|
||||
SELECT start
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = ?
|
||||
)
|
||||
ORDER BY
|
||||
start DESC
|
||||
LIMIT ?
|
||||
';
|
||||
|
||||
return $this->execQuery($qry,
|
||||
[
|
||||
$studiensemester_kurzbz,
|
||||
$studiensemester_kurzbz,
|
||||
$limit
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* getNearest
|
||||
*/
|
||||
|
||||
@@ -260,6 +260,7 @@ class Benutzerfunktion_model extends DB_Model
|
||||
return $this->execQuery($query, $parameters_array);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get active Kompetenzfeldleitung bei UID.
|
||||
*
|
||||
@@ -295,6 +296,7 @@ class Benutzerfunktion_model extends DB_Model
|
||||
return $this->execQuery($query, $parameters_array);
|
||||
}
|
||||
|
||||
|
||||
public function insertBenutzerfunktion($Json)
|
||||
{
|
||||
unset($Json['benutzerfunktion_id']);
|
||||
|
||||
@@ -433,7 +433,6 @@ export default {
|
||||
:label="$p.t('wawi/ausgegebenam')"
|
||||
name="ausgegebenam"
|
||||
v-model="formData.ausgegebenam"
|
||||
model-type="yyyy-MM-dd"
|
||||
auto-apply
|
||||
:enable-time-picker="false"
|
||||
text-input
|
||||
@@ -450,7 +449,6 @@ export default {
|
||||
:label="$p.t('wawi/retouram')"
|
||||
name="retouram"
|
||||
v-model="formData.retouram"
|
||||
model-type="yyyy-MM-dd"
|
||||
auto-apply
|
||||
:enable-time-picker="false"
|
||||
text-input
|
||||
|
||||
@@ -551,7 +551,6 @@ export default {
|
||||
container-class="mb-3 col-3"
|
||||
type="DatePicker"
|
||||
v-model="formData.datum_von"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="datum_von"
|
||||
:label="$p.t('ui/from') + ' *'"
|
||||
auto-apply
|
||||
@@ -567,7 +566,6 @@ export default {
|
||||
container-class="mb-3 col-3"
|
||||
type="DatePicker"
|
||||
v-model="formData.datum_bis"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="datum_bis"
|
||||
:label="$p.t('global/bis')"
|
||||
auto-apply
|
||||
|
||||
-1
@@ -470,7 +470,6 @@ export default {
|
||||
:label="$p.t('admission', 'anmeldundRtAm')"
|
||||
type="DatePicker"
|
||||
v-model="formData.anmeldedatum"
|
||||
model-type="yyyy-MM-dd"
|
||||
auto-apply
|
||||
:enable-time-picker="false"
|
||||
text-input
|
||||
|
||||
@@ -293,7 +293,6 @@ export default {
|
||||
:label="$p.t('person', 'geburtsdatum')"
|
||||
type="DatePicker"
|
||||
v-model="data.gebdatum"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="gebdatum"
|
||||
:clearable="false"
|
||||
no-today
|
||||
|
||||
@@ -103,7 +103,6 @@ export default {
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
v-model="formData.nachgereicht_am"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="nachgereicht_am"
|
||||
:label="$p.t('dokumente/nachreichungAm')"
|
||||
auto-apply
|
||||
|
||||
@@ -27,7 +27,7 @@ export default {
|
||||
return {
|
||||
filter: false,
|
||||
studiengang_kz: false,
|
||||
counterdate: luxon.DateTime.now().setZone(FHC_JS_DATA_STORAGE_OBJECT.timezone).toISODate()
|
||||
counterdate: new Date()
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -259,7 +259,6 @@ export default {
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
v-model="counterdate"
|
||||
model-type="yyyy-MM-dd"
|
||||
input-group
|
||||
:enable-time-picker="false"
|
||||
text-input
|
||||
|
||||
@@ -79,7 +79,6 @@ export default {
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
v-model="data.buchungsdatum"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="buchungsdatum"
|
||||
:label="$p.t('konto/buchungsdatum')"
|
||||
:enable-time-picker="false"
|
||||
|
||||
@@ -88,7 +88,7 @@ export default {
|
||||
this.data = {
|
||||
buchungstyp_kurzbz: '',
|
||||
betrag: '-0.00',
|
||||
buchungsdatum: luxon.DateTime.now().setZone(FHC_JS_DATA_STORAGE_OBJECT.timezone).toISODate(),
|
||||
buchungsdatum: new Date(),
|
||||
buchungstext: '',
|
||||
mahnspanne: 30,
|
||||
studiensemester_kurzbz: this.currentSemester,
|
||||
@@ -154,7 +154,6 @@ export default {
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
v-model="data.buchungsdatum"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="buchungsdatum"
|
||||
:label="$p.t('konto/buchungsdatum')"
|
||||
:enable-time-picker="false"
|
||||
|
||||
@@ -467,7 +467,6 @@ export default {
|
||||
:label="$p.t('ui', 'von')"
|
||||
type="DatePicker"
|
||||
v-model="formData.von"
|
||||
model-type="yyyy-MM-dd"
|
||||
auto-apply
|
||||
:enable-time-picker="false"
|
||||
text-input
|
||||
@@ -502,7 +501,6 @@ export default {
|
||||
:label="$p.t('global', 'bis')"
|
||||
type="DatePicker"
|
||||
v-model="formData.bis"
|
||||
model-type="yyyy-MM-dd"
|
||||
auto-apply
|
||||
:enable-time-picker="false"
|
||||
text-input
|
||||
|
||||
@@ -325,7 +325,6 @@ export default {
|
||||
:label="$p.t('infocenter', 'zgvDatum')"
|
||||
type="DatePicker"
|
||||
v-model="data.zgvdatum"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="zgvdatum"
|
||||
no-today
|
||||
auto-apply
|
||||
@@ -390,7 +389,6 @@ export default {
|
||||
:label="$p.t('lehre', 'zgvMasterDatum')"
|
||||
type="DatePicker"
|
||||
v-model="data.zgvmadatum"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="zgvmadatum"
|
||||
no-today
|
||||
auto-apply
|
||||
@@ -456,7 +454,6 @@ export default {
|
||||
:label="$p.t('lehre', 'zgvDoktorDatum')"
|
||||
type="DatePicker"
|
||||
v-model="data.zgvdoktordatum"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="zgvdoktordatum"
|
||||
no-today
|
||||
auto-apply
|
||||
|
||||
@@ -135,11 +135,6 @@ export default{
|
||||
.then(result => {
|
||||
this.statusNew = false;
|
||||
this.formData = result.data;
|
||||
//to show Date in correct format in the modal (is timestamp in database)
|
||||
if (this.formData.bewerbung_abgeschicktamum) {
|
||||
this.formData.bewerbung_abgeschicktamum =
|
||||
this.formData.bewerbung_abgeschicktamum.substring(0, 10);
|
||||
}
|
||||
this.originalDatum = new Date(result.data.datum);
|
||||
return prestudent;
|
||||
})
|
||||
@@ -281,7 +276,6 @@ export default{
|
||||
container-class="mb-3"
|
||||
type="DatePicker"
|
||||
v-model="formData.datum"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="datum"
|
||||
:label="$p.t('global/datum')"
|
||||
auto-apply
|
||||
@@ -297,7 +291,6 @@ export default{
|
||||
container-class="mb-3"
|
||||
type="DatePicker"
|
||||
v-model="formData.bestaetigtam"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="bestaetigtam"
|
||||
:label="$p.t('lehre/bestaetigt_am')"
|
||||
auto-apply
|
||||
@@ -313,7 +306,6 @@ export default{
|
||||
container-class="mb-3"
|
||||
type="DatePicker"
|
||||
v-model="formData.bewerbung_abgeschicktamum"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="bewerbung_abgeschicktamum"
|
||||
:label="$p.t('lehre/bewerbung_abgeschickt_am')"
|
||||
auto-apply
|
||||
|
||||
@@ -285,7 +285,6 @@ export default {
|
||||
uid="stv-list-new-gebdatum"
|
||||
name="gebdatum"
|
||||
v-model="formDataPerson['gebdatum']"
|
||||
model-type="yyyy-MM-dd"
|
||||
:disabled="!!person"
|
||||
@update:model-value="loadSuggestions"
|
||||
text-input
|
||||
|
||||
@@ -218,23 +218,15 @@ export const CoreFilterCmpt = {
|
||||
},
|
||||
columnsForFilter() {
|
||||
if (!this.filteredColumns || !this.datasetMetadata) return [];
|
||||
|
||||
const localizedColumnTitles = this.tabulator.getLang().columns;
|
||||
const isTabulatorLocalized = !!this.$props.tabulatorOptions.locale;
|
||||
|
||||
let filterTitles;
|
||||
if (isTabulatorLocalized) {
|
||||
const localizedColumnTitles = this.tabulator.getLang().columns;
|
||||
filterTitles = this.filteredColumns.reduce((a, c) => {
|
||||
a[c.field] = localizedColumnTitles[c.field];
|
||||
return a;
|
||||
}, {});
|
||||
} else {
|
||||
filterTitles = this.filteredColumns.reduce((a, c) => {
|
||||
a[c.field] = c.title;
|
||||
return a;
|
||||
}, {});
|
||||
}
|
||||
|
||||
const filterTitles = this.filteredColumns.reduce((a, c) => {
|
||||
a[c.field] =
|
||||
isTabulatorLocalized && localizedColumnTitles[c.field]
|
||||
? localizedColumnTitles[c.field]
|
||||
: c.title;
|
||||
return a;
|
||||
}, {});
|
||||
return this.datasetMetadata.map((el) => ({
|
||||
...el,
|
||||
...{ title: filterTitles[el.name] },
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 48 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 79 KiB |
Reference in New Issue
Block a user