1313use PKP \linkAction \LinkAction ;
1414use PKP \linkAction \request \AjaxModal ;
1515use PKP \core \JSONMessage ;
16- use PKP \security \Role ;
16+ use PKP \security \Validation ;
17+ use PKP \plugins \PluginRegistry ;
1718use APP \plugins \generic \deiaSurvey \classes \DataEncryption ;
1819use APP \plugins \generic \deiaSurvey \classes \migrations \SchemaMigration ;
1920use APP \plugins \generic \deiaSurvey \classes \DefaultQuestionsCreator ;
2021use APP \plugins \generic \deiaSurvey \classes \DemographicDataDAO ;
2122use APP \plugins \generic \deiaSurvey \classes \observers \listeners \MigrateResponsesOnRegistration ;
2223use APP \plugins \generic \deiaSurvey \classes \OrcidClient ;
23- use APP \plugins \generic \deiaSurvey \classes \DataCollectionEmailSender ;
2424use APP \plugins \generic \deiaSurvey \classes \DemographicDataService ;
2525use APP \plugins \generic \deiaSurvey \DeiaSurveySettingsForm ;
26- use APP \plugins \generic \deiaSurvey \classes \ facades \ Repo ;
26+ use APP \plugins \generic \deiaSurvey \report \ DeiaSurveyReportPlugin ;
2727
2828class DeiaSurveyPlugin extends GenericPlugin
2929{
@@ -45,6 +45,7 @@ public function register($category, $path, $mainContextId = null): bool
4545 $ context = Application::get ()->getRequest ()->getContext ();
4646 if (!is_null ($ context )) {
4747 $ this ->loadDispatcherClasses ();
48+ $ this ->registerReportPlugin ();
4849 }
4950 }
5051 return $ success ;
@@ -60,6 +61,14 @@ public function getDescription()
6061 return __ ('plugins.generic.deiaSurvey.description ' );
6162 }
6263
64+ public function registerReportPlugin ()
65+ {
66+ if (Validation::isSiteAdmin ()) {
67+ $ reportPlugin = new DeiaSurveyReportPlugin ();
68+ PluginRegistry::register ('reports ' , $ reportPlugin , $ this ->getPluginPath ());
69+ }
70+ }
71+
6372 private function registerHooksForCustomSchemas ()
6473 {
6574 Hook::add ('Schema::get::demographicQuestion ' , [$ this , 'addCustomSchema ' ]);
@@ -89,7 +98,6 @@ public function setEnabled($enabled)
8998 $ notificationMessage = 'plugins.generic.deiaSurvey.settings.encryptionSecretNotDefined ' ;
9099 $ notificationMgr ->createTrivialNotification ($ currentUser ->getId (), Notification::NOTIFICATION_TYPE_WARNING , ['contents ' => __ ($ notificationMessage )]);
91100 }
92-
93101 }
94102
95103 parent ::setEnabled ($ enabled );
@@ -159,9 +167,9 @@ private function getJsonSchema(string $schemaName): ?\stdClass
159167 if (!$ schema ) {
160168 throw new \Exception (
161169 'Schema failed to decode. This usually means it is invalid JSON. Requested: '
162- . $ schemaFile
163- . '. Last JSON error: '
164- . json_last_error ()
170+ . $ schemaFile
171+ . '. Last JSON error: '
172+ . json_last_error ()
165173 );
166174 }
167175 }
@@ -170,7 +178,7 @@ private function getJsonSchema(string $schemaName): ?\stdClass
170178
171179 public function setupTabHandler ($ hookName , $ params )
172180 {
173- $ component = & $ params [0 ];
181+ $ component = &$ params [0 ];
174182 if ($ component == 'plugins.generic.deiaSurvey.classes.controllers.TabHandler ' ) {
175183 return true ;
176184 }
@@ -196,7 +204,7 @@ public function redirectUserAfterLogin(string $hookName, array $params)
196204
197205 $ request = Application::get ()->getRequest ();
198206 if ($ this ->userShouldBeRedirected ($ request )) {
199- $ url = $ request ->getDispatcher ()->url ($ request , ROUTE_PAGE , null , 'user ' , 'profile ' );
207+ $ url = $ request ->getDispatcher ()->url ($ request , Application:: ROUTE_PAGE , null , 'user ' , 'profile ' );
200208 }
201209 }
202210
@@ -212,17 +220,7 @@ public function userShouldBeRedirected($request)
212220 $ demographicDataDao = new DemographicDataDAO ();
213221 $ userHasConsent = $ demographicDataDao ->userHasDemographicConsent ($ user ->getId ());
214222
215- return !$ userHasConsent && $ this ->userHasMandatoryFilling ($ user , $ context );
216- }
217-
218- private function userHasMandatoryFilling ($ user , $ context )
219- {
220- $ userRoles = $ user ->getRoles (Application::CONTEXT_SITE );
221- $ userRoles = array_map (function ($ role ) {
222- return $ role ->getRoleId ();
223- }, $ userRoles );
224-
225- return !in_array (Role::ROLE_ID_SITE_ADMIN , $ userRoles );
223+ return !$ userHasConsent && !Validation::isSiteAdmin ();
226224 }
227225
228226 public function getInstallMigration (): Migration
0 commit comments