@@ -84,12 +84,18 @@ public function getItem($pk = null)
8484 {
8585 // Load the server
8686 $ id = $ this ->getState ('server.id ' );
87+ Log::add ('ServerModel getItem() called with server.id: ' . $ id , Log::INFO , 'externallogin ' );
88+
8789 $ item = $ this ->getTable ();
90+ Log::add ('ServerModel got table: ' . get_class ($ item ), Log::INFO , 'externallogin ' );
8891
8992 if (!$ item ->load ($ id ) || $ item ->published != 1 ) {
93+ Log::add ('ServerModel: server not found or not published (id: ' . $ id . ') ' , Log::ERROR , 'externallogin ' );
9094 throw new Exception (Text::_ ('COM_EXTERNALLOGIN_ERROR_SERVER_UNPUBLISHED ' ));
9195 }
9296
97+ Log::add ('ServerModel: loaded server # ' . $ id . ' (plugin: ' . $ item ->plugin . ') ' , Log::INFO , 'externallogin ' );
98+
9399 /** @var CMSApplication */
94100 $ app = Factory::getApplication ();
95101 $ menu = $ app ->getMenu ()->getActive ();
@@ -131,10 +137,18 @@ public function getItem($pk = null)
131137 // Return the service/URL
132138 $ user = $ this ->getCurrentUser ();
133139 if (!$ user ->guest ) {
140+ Log::add ('User is already logged in, return ' . (string )$ uri . '. ' , Log::INFO , 'externallogin ' );
134141 return $ uri ;
135142 }
143+
144+ Log::add ('ServerModel: User is guest, preparing login URL ' , Log::INFO , 'externallogin ' );
145+
136146 $ app ->setUserState ('com_externallogin.server ' , $ item ->id );
147+ Log::add ('ServerModel: Set user state com_externallogin.server = ' . $ item ->id , Log::INFO , 'externallogin ' );
148+
137149 $ dispatcher = Factory::getContainer ()->get (DispatcherInterface::class);
150+ Log::add ('ServerModel: Got dispatcher: ' . get_class ($ dispatcher ), Log::INFO , 'externallogin ' );
151+
138152 $ event = new ContentPrepareEvent (
139153 'onGetLoginUrl ' ,
140154 [
@@ -143,12 +157,21 @@ public function getItem($pk = null)
143157 ]
144158 );
145159 $ event ->setArgument ('service ' , $ uri );
160+ Log::add ('ServerModel: Created event, dispatching onGetLoginUrl for server plugin: ' . $ item ->plugin , Log::INFO , 'externallogin ' );
161+
146162 $ dispatcher ->dispatch ('onGetLoginUrl ' , $ event );
163+ Log::add ('ServerModel: Event dispatched ' , Log::INFO , 'externallogin ' );
164+
147165 $ results = $ event ->getArgument ('result ' , []);
148166
167+ // Debug logging
168+ Log::add ('onGetLoginUrl service: ' . (string )$ uri . ', results: ' . json_encode ($ results ) . ' (type: ' . gettype ($ results ) . ') ' , Log::INFO , 'externallogin ' );
169+
149170 if (empty ($ results )) {
171+ Log::add ('ServerModel: No results from onGetLoginUrl event handlers! ' , Log::ERROR , 'externallogin ' );
150172 throw new Exception (Text::_ ('COM_EXTERNALLOGIN_ERROR_OCCURS ' ));
151173 }
174+ Log::add ('ServerModel: Returning redirect URL: ' . (is_array ($ results ) ? $ results [0 ] : $ results ), Log::INFO , 'externallogin ' );
152175 return $ results [0 ];
153176 }
154177}
0 commit comments