mirror of
https://gitnet.fr/deblan/side_menu.git
synced 2025-12-18 05:10:50 +01:00
"Refactor Side Menu JsController to Use IAvatarManager via Dependency Injection for Nextcloud 32 Com
🔧 Problem: The Side Menu app was calling OC\Server::getAvatarManager(), which no longer exists in Nextcloud 32. ✅ Fix: Injected IAvatarManager using Nextcloud’s public API instead of accessing it via OC::$server. Updated the constructor to accept IAvatarManager, IUserSession, INavigationManager, and IURLGenerator. Replaced all direct calls to OC::$server->getAvatarManager() and similar with the injected services. This makes the app compatible with Nextcloud 32 and avoids deprecated internal method calls. Signed-off-by: AndyXheli <andyxheli@gmail.com>
This commit is contained in:
parent
d9051304c8
commit
58cfbc24af
1 changed files with 16 additions and 19 deletions
|
|
@ -20,7 +20,6 @@
|
|||
namespace OCA\SideMenu\Controller;
|
||||
|
||||
use OC\User\User;
|
||||
use OCA\SideMenu\AppInfo\Application;
|
||||
use OCA\SideMenu\Service\ConfigProxy;
|
||||
use OCA\Theming\ThemingDefaults;
|
||||
use OCP\AppFramework\Controller;
|
||||
|
|
@ -29,10 +28,12 @@ use OCP\AppFramework\Http\Attribute\NoAdminRequired;
|
|||
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
|
||||
use OCP\AppFramework\Http\Attribute\PublicPage;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\IRequest;
|
||||
use OCP\IUserSession;
|
||||
use OCP\L10N\IFactory;
|
||||
use OCP\IAvatarManager;
|
||||
use OCP\INavigationManager;
|
||||
use OCP\IURLGenerator;
|
||||
|
||||
class JsController extends Controller
|
||||
{
|
||||
|
|
@ -44,14 +45,13 @@ class JsController extends Controller
|
|||
protected ConfigProxy $config,
|
||||
protected ThemingDefaults $themingDefaults,
|
||||
protected IFactory $l10nFactory,
|
||||
protected IAvatarManager $avatarManager,
|
||||
protected IUserSession $userSession,
|
||||
protected INavigationManager $navigationManager,
|
||||
protected IURLGenerator $urlGenerator,
|
||||
) {
|
||||
parent::__construct($appName, $request);
|
||||
|
||||
$this->themingDefaults = $themingDefaults;
|
||||
|
||||
$this->user = \OC::$server[IUserSession::class]->getUser();
|
||||
$this->config = $config;
|
||||
$this->l10nFactory = $l10nFactory;
|
||||
$this->user = $this->userSession->getUser();
|
||||
}
|
||||
|
||||
#[NoCSRFRequired]
|
||||
|
|
@ -99,25 +99,25 @@ class JsController extends Controller
|
|||
$targetBlankApps = $userTargetBlankApps;
|
||||
}
|
||||
|
||||
$isAvatarSet = \OC::$server->getAvatarManager()->getAvatar($this->user->getUid())->exists();
|
||||
$isAvatarSet = $this->avatarManager->getAvatar($this->user->getUID())->exists();
|
||||
|
||||
if ($useAvatar && $isAvatarSet) {
|
||||
$avatar = \OC::$server->getURLGenerator()->linkToRoute('core.avatar.getAvatar', [
|
||||
'userId' => $this->user->getUid(),
|
||||
$avatar = $this->urlGenerator->linkToRoute('core.avatar.getAvatar', [
|
||||
'userId' => $this->user->getUID(),
|
||||
'size' => 128,
|
||||
'v' => $this->config->getUserValueInt($this->user, 'avatar', 'version', 0),
|
||||
]);
|
||||
}
|
||||
|
||||
if ($this->config->getAppValueBool('show-settings', '0')) {
|
||||
$settingsNav = \OC::$server->getNavigationManager()->getAll('settings');
|
||||
$settingsNav = $this->navigationManager->getAll('settings');
|
||||
|
||||
if (isset($settingsNav['settings'])) {
|
||||
$settings = [
|
||||
'href' => $settingsNav['settings']['href'],
|
||||
'name' => $settingsNav['settings']['name'],
|
||||
'avatar' => \OC::$server->getURLGenerator()->linkToRoute('core.avatar.getAvatar', [
|
||||
'userId' => $this->user->getUid(),
|
||||
'avatar' => $this->urlGenerator->linkToRoute('core.avatar.getAvatar', [
|
||||
'userId' => $this->user->getUID(),
|
||||
'size' => 32,
|
||||
'v' => $this->config->getUserValueInt($this->user, 'avatar', 'version', 0),
|
||||
]),
|
||||
|
|
@ -126,7 +126,7 @@ class JsController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
$indexUrl = \OC::$server->getURLGenerator()->linkTo('', 'index.php');
|
||||
$indexUrl = $this->urlGenerator->linkTo('', 'index.php');
|
||||
|
||||
return [
|
||||
'opener-position' => $this->config->getAppValue('opener-position', 'before'),
|
||||
|
|
@ -145,10 +145,7 @@ class JsController extends Controller
|
|||
'avatar' => $avatar,
|
||||
'top-menu-apps' => $topMenuApps,
|
||||
'top-side-menu-apps' => $topSideMenuApps,
|
||||
'top-menu-mouse-over-hidden-label' => $this->config->getAppValueInt(
|
||||
'top-menu-mouse-over-hidden-label',
|
||||
'0'
|
||||
),
|
||||
'top-menu-mouse-over-hidden-label' => $this->config->getAppValueInt('top-menu-mouse-over-hidden-label', '0'),
|
||||
'target-blank-apps' => $targetBlankApps,
|
||||
'settings' => $settings,
|
||||
'logo' => $this->themingDefaults->getLogo(),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue