2727use Ibexa \Core \Base \Exceptions \UnauthorizedException as CoreUnauthorizedException ;
2828use Ibexa \Core \MVC \Symfony \Locale \UserLanguagePreferenceProviderInterface ;
2929use Symfony \Component \HttpFoundation \Request ;
30+ use Symfony \Component \HttpFoundation \Response ;
3031
31- class UserController extends Controller
32+ final class UserController extends Controller
3233{
33- private ContentTypeService $ contentTypeService ;
34-
35- private UserService $ userService ;
36-
37- private LocationService $ locationService ;
38-
39- private LanguageService $ languageService ;
40-
41- private ActionDispatcherInterface $ userActionDispatcher ;
42-
43- private PermissionResolver $ permissionResolver ;
44-
45- private UserLanguagePreferenceProviderInterface $ userLanguagePreferenceProvider ;
46-
47- private GroupedContentFormFieldsProviderInterface $ groupedContentFormFieldsProvider ;
48-
49- private ContentService $ contentService ;
50-
5134 public function __construct (
52- ContentTypeService $ contentTypeService ,
53- UserService $ userService ,
54- LocationService $ locationService ,
55- LanguageService $ languageService ,
56- ActionDispatcherInterface $ userActionDispatcher ,
57- PermissionResolver $ permissionResolver ,
58- UserLanguagePreferenceProviderInterface $ userLanguagePreferenceProvider ,
59- GroupedContentFormFieldsProviderInterface $ groupedContentFormFieldsProvider ,
60- ContentService $ contentService
35+ private readonly ContentTypeService $ contentTypeService ,
36+ private readonly UserService $ userService ,
37+ private readonly LocationService $ locationService ,
38+ private readonly LanguageService $ languageService ,
39+ private readonly ActionDispatcherInterface $ userActionDispatcher ,
40+ private readonly PermissionResolver $ permissionResolver ,
41+ private readonly UserLanguagePreferenceProviderInterface $ userLanguagePreferenceProvider ,
42+ private readonly GroupedContentFormFieldsProviderInterface $ groupedContentFormFieldsProvider ,
43+ private readonly ContentService $ contentService
6144 ) {
62- $ this ->contentTypeService = $ contentTypeService ;
63- $ this ->userService = $ userService ;
64- $ this ->locationService = $ locationService ;
65- $ this ->languageService = $ languageService ;
66- $ this ->userActionDispatcher = $ userActionDispatcher ;
67- $ this ->permissionResolver = $ permissionResolver ;
68- $ this ->userLanguagePreferenceProvider = $ userLanguagePreferenceProvider ;
69- $ this ->groupedContentFormFieldsProvider = $ groupedContentFormFieldsProvider ;
70- $ this ->contentService = $ contentService ;
7145 }
7246
7347 /**
74- * Displays and processes a user creation form.
75- *
76- * @param string $contentTypeIdentifier ContentType id to create
77- * @param string $language Language code to create the content in (eng-GB, ger-DE, ...))
78- * @param int $parentLocationId Location the content should be a child of
79- * @param \Symfony\Component\HttpFoundation\Request $request
80- *
81- * @return \Symfony\Component\HttpFoundation\Response|\Ibexa\ContentForms\User\View\UserCreateView
82- *
8348 * @throws \Ibexa\Core\Base\Exceptions\InvalidArgumentType
8449 * @throws \Ibexa\Core\Base\Exceptions\InvalidArgumentException
8550 * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException
@@ -96,21 +61,22 @@ public function createAction(
9661 string $ language ,
9762 int $ parentLocationId ,
9863 Request $ request
99- ) {
64+ ): Response | UserCreateView {
10065 $ contentType = $ this ->contentTypeService ->loadContentTypeByIdentifier (
10166 $ contentTypeIdentifier ,
10267 $ this ->userLanguagePreferenceProvider ->getPreferredLanguages ()
10368 );
10469 $ location = $ this ->locationService ->loadLocation ($ parentLocationId );
10570 $ language = $ this ->languageService ->loadLanguage ($ language );
106- $ parentGroup = $ this ->userService ->loadUserGroup ($ location ->contentId );
71+ $ languageCode = $ language ->getLanguageCode ();
72+ $ parentGroup = $ this ->userService ->loadUserGroup ($ location ->getContentId ());
10773
10874 $ data = (new UserCreateMapper ())->mapToFormData ($ contentType , [$ parentGroup ], [
109- 'mainLanguageCode ' => $ language -> languageCode ,
75+ 'mainLanguageCode ' => $ languageCode ,
11076 ]);
11177 $ form = $ this ->createForm (UserCreateType::class, $ data , [
112- 'languageCode ' => $ language -> languageCode ,
113- 'mainLanguageCode ' => $ language -> languageCode ,
78+ 'languageCode ' => $ languageCode ,
79+ 'mainLanguageCode ' => $ languageCode ,
11480 'struct ' => $ data ,
11581 ]);
11682 $ form ->handleRequest ($ request );
@@ -138,15 +104,6 @@ public function createAction(
138104 }
139105
140106 /**
141- * Displays a user update form that updates user data and related content item.
142- *
143- * @param int $contentId ContentType id to create
144- * @param int $versionNo Version number the version should be created from. Defaults to the currently published one.
145- * @param string $language Language code to create the version in (eng-GB, ger-DE, ...))
146- * @param \Symfony\Component\HttpFoundation\Request $request
147- *
148- * @return \Symfony\Component\HttpFoundation\Response|\Ibexa\ContentForms\User\View\UserUpdateView
149- *
150107 * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException
151108 * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException
152109 * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException
@@ -159,13 +116,13 @@ public function editAction(
159116 int $ versionNo ,
160117 string $ language ,
161118 Request $ request
162- ) {
119+ ): Response | UserUpdateView {
163120 $ user = $ this ->userService ->loadUser ($ contentId );
164121 if (!$ this ->permissionResolver ->canUser ('content ' , 'edit ' , $ user )) {
165122 throw new CoreUnauthorizedException ('content ' , 'edit ' , ['userId ' => $ contentId ]);
166123 }
167124 $ contentType = $ this ->contentTypeService ->loadContentType (
168- $ user ->contentInfo -> contentTypeId ,
125+ $ user ->getContentInfo ()-> getContentType ()-> id ,
169126 $ this ->userLanguagePreferenceProvider ->getPreferredLanguages ()
170127 );
171128
@@ -176,12 +133,12 @@ public function editAction(
176133 try {
177134 // assume main location if no location was provided
178135 $ location = $ this ->locationService ->loadLocation (
179- (int )$ user ->versionInfo -> contentInfo -> mainLocationId
136+ (int )$ user ->getVersionInfo ()-> getContentInfo ()-> getMainLocationId ()
180137 );
181138 } catch (UnauthorizedException $ e ) {
182139 // if no access to the main location assume content has multiple locations and first of them can be used
183140 $ availableLocations = $ this ->locationService ->loadLocations (
184- $ user ->versionInfo -> contentInfo
141+ $ user ->getVersionInfo ()-> getContentInfo ()
185142 );
186143 $ location = array_shift ($ availableLocations );
187144 }
@@ -193,7 +150,7 @@ public function editAction(
193150 'location ' => $ location ,
194151 'content ' => $ this ->contentService ->loadContent ($ contentId ),
195152 'languageCode ' => $ language ,
196- 'mainLanguageCode ' => $ user ->contentInfo -> mainLanguageCode ,
153+ 'mainLanguageCode ' => $ user ->getContentInfo ()-> getMainLanguageCode () ,
197154 'struct ' => $ userUpdate ,
198155 ],
199156 );
@@ -209,7 +166,8 @@ public function editAction(
209166 $ parentLocation = null ;
210167 try {
211168 $ parentLocation = $ this ->locationService ->loadLocation ($ location ->parentLocationId );
212- } catch (UnauthorizedException $ e ) {
169+ } catch (UnauthorizedException ) {
170+ //do nothing
213171 }
214172
215173 return new UserUpdateView (
0 commit comments