Allow default app to be overwritten by user config
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
parent
7e2ded5a79
commit
db86bea18c
|
@ -68,6 +68,7 @@ use OCP\IConfig;
|
||||||
use OCP\IGroupManager;
|
use OCP\IGroupManager;
|
||||||
use OCP\ILogger;
|
use OCP\ILogger;
|
||||||
use OCP\IUser;
|
use OCP\IUser;
|
||||||
|
use OCP\IUserSession;
|
||||||
|
|
||||||
class OC_Util {
|
class OC_Util {
|
||||||
public static $scripts = [];
|
public static $scripts = [];
|
||||||
|
@ -1088,6 +1089,8 @@ class OC_Util {
|
||||||
* @suppress PhanDeprecatedFunction
|
* @suppress PhanDeprecatedFunction
|
||||||
*/
|
*/
|
||||||
public static function getDefaultPageUrl() {
|
public static function getDefaultPageUrl() {
|
||||||
|
/** @var IConfig $config */
|
||||||
|
$config = \OC::$server->get(IConfig::class);
|
||||||
$urlGenerator = \OC::$server->getURLGenerator();
|
$urlGenerator = \OC::$server->getURLGenerator();
|
||||||
// Deny the redirect if the URL contains a @
|
// Deny the redirect if the URL contains a @
|
||||||
// This prevents unvalidated redirects like ?redirect_url=:user@domain.com
|
// This prevents unvalidated redirects like ?redirect_url=:user@domain.com
|
||||||
|
@ -1098,9 +1101,18 @@ class OC_Util {
|
||||||
if ($defaultPage) {
|
if ($defaultPage) {
|
||||||
$location = $urlGenerator->getAbsoluteURL($defaultPage);
|
$location = $urlGenerator->getAbsoluteURL($defaultPage);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
$appId = 'files';
|
$appId = 'files';
|
||||||
$config = \OC::$server->getConfig();
|
$defaultApps = explode(',', $config->getSystemValue('defaultapp', 'dashboard,files'));
|
||||||
$defaultApps = explode(',', $config->getSystemValue('defaultapp', 'dashboard'));
|
|
||||||
|
/** @var IUserSession $userSession */
|
||||||
|
$userSession = \OC::$server->get(IUserSession::class);
|
||||||
|
$user = $userSession->getUser();
|
||||||
|
if ($user) {
|
||||||
|
$userDefaultApps = explode(',', $config->getUserValue($user->getUID(), 'core', 'defaultapp'));
|
||||||
|
$defaultApps = array_filter(array_merge($userDefaultApps, $defaultApps));
|
||||||
|
}
|
||||||
|
|
||||||
// find the first app that is enabled for the current user
|
// find the first app that is enabled for the current user
|
||||||
foreach ($defaultApps as $defaultApp) {
|
foreach ($defaultApps as $defaultApp) {
|
||||||
$defaultApp = OC_App::cleanAppId(strip_tags($defaultApp));
|
$defaultApp = OC_App::cleanAppId(strip_tags($defaultApp));
|
||||||
|
|
Loading…
Reference in New Issue