aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+studip@gmail.com>2023-07-03 08:15:36 +0000
committerDavid Siegfried <david.siegfried@uni-vechta.de>2023-07-03 08:15:36 +0000
commit3d6e9f573c39cadc3af2f3eff89eee2c4af68b34 (patch)
treeaedd856e484c2d5f90fe5f1b52a2b5e2d522e22d
parent9a720a69d9052a865163054c133b916782a8c529 (diff)
fix errors and warnings, fixes #2803
Closes #2803 Merge request studip/studip!1890
-rw-r--r--app/controllers/admin/user.php9
-rw-r--r--app/controllers/course/messenger.php4
-rw-r--r--app/controllers/jsupdater.php3
-rw-r--r--app/controllers/profile.php36
-rw-r--r--app/views/admin/user/new.php6
-rw-r--r--app/views/course/ilias_interface/add_object.php2
-rw-r--r--app/views/my_ilias_accounts/add_object.php4
-rw-r--r--lib/classes/ProfileModel.php5
-rw-r--r--lib/functions.php13
-rw-r--r--lib/models/UserDomain.php10
-rw-r--r--lib/user_visible.inc.php5
11 files changed, 64 insertions, 33 deletions
diff --git a/app/controllers/admin/user.php b/app/controllers/admin/user.php
index 8932f48..33d56a5 100644
--- a/app/controllers/admin/user.php
+++ b/app/controllers/admin/user.php
@@ -891,16 +891,14 @@ class Admin_UserController extends AuthenticatedController
}
if ($GLOBALS['perm']->have_perm('root')) {
- $sql
- = "SELECT Institut_id, Name, 1 AS is_fak
+ $sql = "SELECT Institut_id, Name, 1 AS is_fak
FROM Institute
WHERE Institut_id=fakultaets_id
ORDER BY Name";
$faks = DBManager::get()->query($sql)->fetchAll(PDO::FETCH_ASSOC);
$domains = UserDomain::getUserDomains();
} else {
- $sql
- = "SELECT a.Institut_id, Name, b.Institut_id = b.fakultaets_id AS is_fak
+ $sql = "SELECT a.Institut_id, Name, b.Institut_id = b.fakultaets_id AS is_fak
FROM user_inst a
LEFT JOIN Institute b USING (Institut_id)
WHERE a.user_id = ? AND a.inst_perms = 'admin'
@@ -911,8 +909,7 @@ class Admin_UserController extends AuthenticatedController
$domains = UserDomain::getUserDomainsForUser(User::findCurrent()->id);
}
- $query
- = "SELECT Institut_id, Name
+ $query = "SELECT Institut_id, Name
FROM Institute
WHERE fakultaets_id = ? AND institut_id != fakultaets_id
ORDER BY Name";
diff --git a/app/controllers/course/messenger.php b/app/controllers/course/messenger.php
index 8acd24b..ca0ec3c 100644
--- a/app/controllers/course/messenger.php
+++ b/app/controllers/course/messenger.php
@@ -12,7 +12,9 @@ class Course_MessengerController extends AuthenticatedController
public function course_action($thread_id = null)
{
- PageLayout::setTitle(Context::get()->getFullname() . ' - ' . _('Blubber'));
+ if (Context::get()) {
+ PageLayout::setTitle(Context::get()->getFullname() . ' - ' . _('Blubber'));
+ }
if (Navigation::hasItem('/course/blubber')) {
Navigation::activateItem('/course/blubber');
diff --git a/app/controllers/jsupdater.php b/app/controllers/jsupdater.php
index d0cd721..0d657fe 100644
--- a/app/controllers/jsupdater.php
+++ b/app/controllers/jsupdater.php
@@ -262,6 +262,7 @@ class JsupdaterController extends AuthenticatedController
private function getCoursewareClipboardUpdates($pageInfo)
{
- return count(\Courseware\Clipboard::findUsersClipboards($GLOBALS["user"])) != $pageInfo['coursewareclipboard']['counter'];
+ $counter = $pageInfo['coursewareclipboard']['counter'] ?? 0;
+ return \Courseware\Clipboard::countByUser_id($GLOBALS['user']->id) != $counter;
}
}
diff --git a/app/controllers/profile.php b/app/controllers/profile.php
index 74e0b43..a177617 100644
--- a/app/controllers/profile.php
+++ b/app/controllers/profile.php
@@ -28,19 +28,41 @@ class ProfileController extends AuthenticatedController
URLHelper::addLinkParam('username', Request::username('username'));
PageLayout::setHelpKeyword('Basis.Homepage');
- $this->user = User::findCurrent(); // current logged in user
- $this->perm = $GLOBALS['perm']; // perms of current logged in user
- $this->current_user = User::findByUsername(Request::username('username', $this->user->username)); // current selected user
+ // current logged in user
+ $this->user = User::findCurrent();
+ // perms of current logged in user
+ $this->perm = $GLOBALS['perm'];
+ // current selected user
+ $this->current_user = User::findByUsername(Request::username(
+ 'username',
+ $this->user ? $this->user->username : null
+ ));
// get additional informations to selected user
- $this->profile = new ProfileModel($this->current_user->user_id, $this->user->user_id);
+ $this->profile = new ProfileModel(
+ $this->current_user ? $this->current_user->id : null,
+ $this->user ? $this->user->id : null
+ );
// set the page title depending on user selection
- if ($this->current_user['user_id'] == $this->user->id && !$this->current_user['locked']) {
+ if (
+ $this->user
+ && $this->current_user->id === $this->user->id
+ && !$this->current_user->locked
+ ) {
PageLayout::setTitle(_('Mein Profil'));
UserConfig::get($this->user->id)->store('PROFILE_LAST_VISIT', time());
- } elseif ($this->current_user['user_id'] && ($this->perm->have_perm('root') || (!$this->current_user['locked'] && get_visibility_by_id($this->current_user['user_id'])))) {
+ } elseif (
+ $this->current_user->id
+ && (
+ $this->perm->have_perm('root')
+ || (
+ !$this->current_user->locked
+ && get_visibility_by_id($this->current_user->id)
+ )
+ )
+ ) {
PageLayout::setTitle(_('Profil von') . ' ' . $this->current_user->getFullname());
- object_add_view($this->current_user->user_id);
+ object_add_view($this->current_user->id);
} else {
PageLayout::setTitle(_('Profil'));
$action = 'not_available';
diff --git a/app/views/admin/user/new.php b/app/views/admin/user/new.php
index 49fd9ed..8ceb12f 100644
--- a/app/views/admin/user/new.php
+++ b/app/views/admin/user/new.php
@@ -171,16 +171,16 @@ use Studip\Button, Studip\LinkButton;
<option value="" class="is-placeholder">
<?= _('-- Bitte Einrichtung auswählen --') ?>
</option>
- <? foreach ($faks as $fak) : ?>
+ <? foreach ($faks as $fak) : ?>
<option value="<?= $fak['Institut_id'] ?>" <?= ($user['institute'] == $fak['Institut_id']) ? 'selected' : '' ?> class="<?= $fak['is_fak'] ? 'nested-item-header' : 'nested-item'; ?>">
<?= htmlReady($fak['Name']) ?>
</option>
- <? foreach ($fak['institutes'] as $institute) : ?>
+ <? foreach ($fak['institutes'] ?? [] as $institute) : ?>
<option value="<?= $institute['Institut_id'] ?>" <?= ($user['institute'] == $institute['Institut_id']) ? 'selected' : '' ?> class="nested-item">
<?= htmlReady($institute['Name']) ?>
</option>
- <? endforeach ?>
<? endforeach ?>
+ <? endforeach ?>
</select>
</label>
diff --git a/app/views/course/ilias_interface/add_object.php b/app/views/course/ilias_interface/add_object.php
index 356a82d..8550337 100644
--- a/app/views/course/ilias_interface/add_object.php
+++ b/app/views/course/ilias_interface/add_object.php
@@ -122,7 +122,7 @@
</table>
<? endif ?>
<footer data-dialog-button>
- <? if ($ilias->isActive() && $submit_text) : ?>
+ <? if ($ilias && $ilias->isActive() && $submit_text) : ?>
<?= Studip\Button::create($submit_text, 'submit', ($dialog && $keep_dialog) ? ['data-dialog' => 'size=auto;reload-on-close'] : []) ?>
<? endif ?>
<?= Studip\Button::createCancel(_('Schließen'), 'cancel', $dialog ? ['data-dialog' => 'close'] : []) ?>
diff --git a/app/views/my_ilias_accounts/add_object.php b/app/views/my_ilias_accounts/add_object.php
index e90beea..2154040 100644
--- a/app/views/my_ilias_accounts/add_object.php
+++ b/app/views/my_ilias_accounts/add_object.php
@@ -1,7 +1,7 @@
<form class="default" action="<?= $controller->url_for('my_ilias_accounts/redirect/'.$ilias_index.'/new/'.$ilias_ref_id) ?>" method="post" target="_blank">
<?= CSRFProtection::tokenTag() ?>
- <input type="hidden" name="ilias_target" value="new">
- <input type="hidden" name="ilias_ref_id" value="<?=$ilias_ref_id?>">
+ <input type="hidden" name="ilias_target" value="new">
+ <input type="hidden" name="ilias_ref_id" value="<?=$ilias_ref_id?>">
<label>
<span class="required"><?= _('Art des Lernobjekts') ?></span>
<select name="ilias_module_type" required>
diff --git a/lib/classes/ProfileModel.php b/lib/classes/ProfileModel.php
index 663d8ab..6827ba6 100644
--- a/lib/classes/ProfileModel.php
+++ b/lib/classes/ProfileModel.php
@@ -54,7 +54,10 @@ class ProfileModel
*/
public function getHomepageVisibilities()
{
- $visibilities = get_local_visibility_by_id($this->current_user->user_id, 'homepage');
+ $visibilities = get_local_visibility_by_id(
+ $this->current_user ? $this->current_user->id : null,
+ 'homepage'
+ );
if (is_array(json_decode($visibilities, true))) {
return json_decode($visibilities, true);
}
diff --git a/lib/functions.php b/lib/functions.php
index 144b6f5..20066c1 100644
--- a/lib/functions.php
+++ b/lib/functions.php
@@ -302,21 +302,22 @@ function my_substr($what, $start, $end)
*/
function get_fullname($user_id = "", $format = "full" , $htmlready = false)
{
- static $cache;
- global $user, $_fullname_sql;
+ static $cache = [];
+
+ $current_user = User::findCurrent();
if (!$user_id) {
- $user_id = $user->id;
+ $user_id = $current_user ? $current_user->id : null;
}
- if (User::findCurrent()->id === $user_id) {
- $fullname = User::findCurrent()->getFullName($format);
+ if ($current_user && $current_user->id === $user_id) {
+ $fullname = $current_user->getFullName($format);
return $htmlready ? htmlReady($fullname) : $fullname;
}
$hash = md5($user_id . $format);
if (!isset($cache[$hash])) {
- $query = "SELECT {$_fullname_sql[$format]}
+ $query = "SELECT {$GLOBALS['_fullname_sql'][$format]}
FROM auth_user_md5
LEFT JOIN user_info USING (user_id)
WHERE user_id = ?";
diff --git a/lib/models/UserDomain.php b/lib/models/UserDomain.php
index 8179082..49abbbc 100644
--- a/lib/models/UserDomain.php
+++ b/lib/models/UserDomain.php
@@ -107,10 +107,14 @@ class UserDomain extends SimpleORMap
* Get an array of all user domains for a specific user.
* Returns an array of UserDomain objects.
*/
- public static function getUserDomainsForUser ($user_id)
+ public static function getUserDomainsForUser($user_id)
{
- $domains = User::find($user_id)->domains;
- return $domains ? $domains->getArrayCopy() : [];
+ $user = User::find($user_id);
+ if (!$user) {
+ return [];
+ }
+
+ return $user->domains ? $user->domains->getArrayCopy() : [];
}
/**
diff --git a/lib/user_visible.inc.php b/lib/user_visible.inc.php
index c6b5686..fbb64c7 100644
--- a/lib/user_visible.inc.php
+++ b/lib/user_visible.inc.php
@@ -82,14 +82,15 @@ function get_visibility_by_state ($state, $user_id) {
return true;
}
+ $user = User::findCurrent();
$other_user = User::find($user_id);
- if (!$other_user) {
+ if (!$user || !$other_user) {
return false;
}
$same_domain = UserDomain::checkUserVisibility(
$other_user->domains,
- User::findCurrent()->domains
+ $user->domains
);
switch ($state) {