Open Journal Systems  3.3.0
ProfileTabHandler.inc.php
1 <?php
2 
21 import('classes.handler.Handler');
22 import('lib.pkp.classes.core.JSONMessage');
23 
24 class ProfileTabHandler extends Handler {
25 
26  //
27  // Implement template methods from PKPHandler
28  //
32  function authorize($request, &$args, $roleAssignments) {
33  // User must be logged in
34  import('lib.pkp.classes.security.authorization.UserRequiredPolicy');
35  $this->addPolicy(new UserRequiredPolicy($request));
36 
37  return parent::authorize($request, $args, $roleAssignments);
38  }
39 
46  function identity($args, $request) {
47  $this->setupTemplate($request);
48  import('lib.pkp.classes.user.form.IdentityForm');
49  $identityForm = new IdentityForm($request->getUser());
50  $identityForm->initData();
51  return new JSONMessage(true, $identityForm->fetch($request));
52  }
53 
60  function saveIdentity($args, $request) {
61  $this->setupTemplate($request);
62 
63  import('lib.pkp.classes.user.form.IdentityForm');
64  $identityForm = new IdentityForm($request->getUser());
65  $identityForm->readInputData();
66  if ($identityForm->validate()) {
67  $identityForm->execute();
68  $notificationMgr = new NotificationManager();
69  $notificationMgr->createTrivialNotification($request->getUser()->getId());
70  return new JSONMessage(true);
71  }
72  return new JSONMessage(true, $identityForm->fetch($request));
73  }
74 
81  function contact($args, $request) {
82  $this->setupTemplate($request);
83  import('lib.pkp.classes.user.form.ContactForm');
84  $contactForm = new ContactForm($request->getUser());
85  $contactForm->initData();
86  return new JSONMessage(true, $contactForm->fetch($request));
87  }
88 
95  function saveContact($args, $request) {
96  $this->setupTemplate($request);
97 
98  import('lib.pkp.classes.user.form.ContactForm');
99  $contactForm = new ContactForm($request->getUser());
100  $contactForm->readInputData();
101  if ($contactForm->validate()) {
102  $contactForm->execute();
103  $notificationMgr = new NotificationManager();
104  $notificationMgr->createTrivialNotification($request->getUser()->getId());
105  return new JSONMessage(true);
106  }
107  return new JSONMessage(true, $contactForm->fetch($request));
108  }
109 
116  function roles($args, $request) {
117  $this->setupTemplate($request);
118  import('lib.pkp.classes.user.form.RolesForm');
119  $rolesForm = new RolesForm($request->getUser());
120  $rolesForm->initData();
121  return new JSONMessage(true, $rolesForm->fetch($request));
122  }
123 
130  function saveRoles($args, $request) {
131  $this->setupTemplate($request);
132 
133  import('lib.pkp.classes.user.form.RolesForm');
134  $rolesForm = new RolesForm($request->getUser());
135  $rolesForm->readInputData();
136  if ($rolesForm->validate()) {
137  $rolesForm->execute();
138  $notificationMgr = new NotificationManager();
139  $notificationMgr->createTrivialNotification($request->getUser()->getId());
140  return new JSONMessage(true);
141  }
142  return new JSONMessage(false, $rolesForm->fetch($request));
143  }
144 
151  function publicProfile($args, $request) {
152  $this->setupTemplate($request);
153  import('lib.pkp.classes.user.form.PublicProfileForm');
154  $publicProfileForm = new PublicProfileForm($request->getUser());
155  $publicProfileForm->initData();
156  return new JSONMessage(true, $publicProfileForm->fetch($request));
157  }
158 
165  function uploadProfileImage($args, $request) {
166  import('lib.pkp.classes.user.form.PublicProfileForm');
167  $publicProfileForm = new PublicProfileForm($request->getUser());
168  $result = $publicProfileForm->uploadProfileImage();
169  if ($result) {
170  return $request->redirectUrlJson($request->getDispatcher()->url($request, ROUTE_PAGE, null, 'user', 'profile', null, array('uniq' => uniqid()), 'publicProfile'));
171  } else {
172  return new JSONMessage(false, __('common.uploadFailed'));
173  }
174  }
175 
181  function deleteProfileImage($args, $request) {
182  import('lib.pkp.classes.user.form.PublicProfileForm');
183  $publicProfileForm = new PublicProfileForm($request->getUser());
184  $publicProfileForm->deleteProfileImage();
185  $request->redirectUrl($request->getDispatcher()->url($request, ROUTE_PAGE, null, 'user', 'profile', null, array('uniq' => uniqid()), 'publicProfile'));
186  }
187 
194  function savePublicProfile($args, $request) {
195  $this->setupTemplate($request);
196 
197  import('lib.pkp.classes.user.form.PublicProfileForm');
198  $publicProfileForm = new PublicProfileForm($request->getUser());
199  $publicProfileForm->readInputData();
200  if ($publicProfileForm->validate()) {
201  $publicProfileForm->execute();
202  $notificationMgr = new NotificationManager();
203  $notificationMgr->createTrivialNotification($request->getUser()->getId());
204  return new JSONMessage(true);
205  }
206  return new JSONMessage(true, $publicProfileForm->fetch($request));
207  }
208 
215  function apiProfile($args, $request) {
216  $this->setupTemplate($request);
217  import('lib.pkp.classes.user.form.APIProfileForm');
218  $apiProfileForm = new APIProfileForm($request->getUser());
219  $apiProfileForm->initData();
220  return new JSONMessage(true, $apiProfileForm->fetch($request));
221  }
222 
229  function saveAPIProfile($args, $request) {
230  $this->setupTemplate($request);
231 
232  import('lib.pkp.classes.user.form.APIProfileForm');
233  $apiProfileForm = new APIProfileForm($request->getUser());
234  $apiProfileForm->readInputData();
235  if ($apiProfileForm->validate()) {
236  $apiProfileForm->execute();
237  $notificationMgr = new NotificationManager();
238  $notificationMgr->createTrivialNotification($request->getUser()->getId());
239  return new JSONMessage(true, $apiProfileForm->fetch($request));
240  }
241  return new JSONMessage(true, $apiProfileForm->fetch($request));
242  }
243 
250  function changePassword($args, $request) {
251  $this->setupTemplate($request);
252  import('lib.pkp.classes.user.form.ChangePasswordForm');
253  $passwordForm = new ChangePasswordForm($request->getUser(), $request->getSite());
254  $passwordForm->initData();
255  return new JSONMessage(true, $passwordForm->fetch($request));
256  }
257 
264  function savePassword($args, $request) {
265  $this->setupTemplate($request);
266  import('lib.pkp.classes.user.form.ChangePasswordForm');
267  $passwordForm = new ChangePasswordForm($request->getUser(), $request->getSite());
268  $passwordForm->readInputData();
269 
270  if ($passwordForm->validate()) {
271  $passwordForm->execute();
272  $notificationMgr = new NotificationManager();
273  $notificationMgr->createTrivialNotification($request->getUser()->getId());
274  return new JSONMessage(true);
275 
276  }
277  return new JSONMessage(true, $passwordForm->fetch($request));
278  }
279 
286  function notificationSettings($args, $request) {
287  $this->setupTemplate($request);
288 
289  $user = $request->getUser();
290  import('classes.notification.form.NotificationSettingsForm');
291  $notificationSettingsForm = new NotificationSettingsForm();
292  return new JSONMessage(true, $notificationSettingsForm->fetch($request));
293  }
294 
301  function saveNotificationSettings($args, $request) {
302  $this->setupTemplate($request);
303 
304  import('classes.notification.form.NotificationSettingsForm');
305 
306  $notificationSettingsForm = new NotificationSettingsForm();
307  $notificationSettingsForm->readInputData();
308 
309  $json = new JSONMessage();
310  if ($notificationSettingsForm->validate()) {
311  $notificationSettingsForm->execute();
312  $notificationMgr = new NotificationManager();
313  $notificationMgr->createTrivialNotification($request->getUser()->getId());
314  } else {
315  $json->setStatus(false);
316  }
317 
318  return $json;
319  }
320 }
321 
322 
UserRequiredPolicy
Policy to deny access if a context cannot be found in the request.
Definition: UserRequiredPolicy.inc.php:17
RolesForm
Definition: RolesForm.inc.php:18
ProfileTabHandler\roles
roles($args, $request)
Definition: ProfileTabHandler.inc.php:116
IdentityForm
Definition: IdentityForm.inc.php:18
ProfileTabHandler\contact
contact($args, $request)
Definition: ProfileTabHandler.inc.php:81
ProfileTabHandler\notificationSettings
notificationSettings($args, $request)
Definition: ProfileTabHandler.inc.php:286
ProfileTabHandler\apiProfile
apiProfile($args, $request)
Definition: ProfileTabHandler.inc.php:215
ChangePasswordForm
Form to change a user's password.
Definition: ChangePasswordForm.inc.php:19
NotificationSettingsForm
Form to edit notification settings.
Definition: NotificationSettingsForm.inc.php:19
ProfileTabHandler\changePassword
changePassword($args, $request)
Definition: ProfileTabHandler.inc.php:250
ProfileTabHandler\saveRoles
saveRoles($args, $request)
Definition: ProfileTabHandler.inc.php:130
PublicProfileForm
Form to edit user's public profile.
Definition: PublicProfileForm.inc.php:22
ProfileTabHandler\savePassword
savePassword($args, $request)
Definition: ProfileTabHandler.inc.php:264
ProfileTabHandler\uploadProfileImage
uploadProfileImage($args, $request)
Definition: ProfileTabHandler.inc.php:165
ProfileTabHandler\saveContact
saveContact($args, $request)
Definition: ProfileTabHandler.inc.php:95
JSONMessage
Class to represent a JSON (Javascript Object Notation) message.
Definition: JSONMessage.inc.php:18
ProfileTabHandler\savePublicProfile
savePublicProfile($args, $request)
Definition: ProfileTabHandler.inc.php:194
APIProfileForm
Form to edit user's API key settings.
Definition: APIProfileForm.inc.php:20
ProfileTabHandler\saveIdentity
saveIdentity($args, $request)
Definition: ProfileTabHandler.inc.php:60
ProfileTabHandler\deleteProfileImage
deleteProfileImage($args, $request)
Definition: ProfileTabHandler.inc.php:181
ProfileTabHandler\publicProfile
publicProfile($args, $request)
Definition: ProfileTabHandler.inc.php:151
PKPHandler\setupTemplate
setupTemplate($request)
Definition: PKPHandler.inc.php:466
ProfileTabHandler\identity
identity($args, $request)
Definition: ProfileTabHandler.inc.php:46
ProfileTabHandler\saveNotificationSettings
saveNotificationSettings($args, $request)
Definition: ProfileTabHandler.inc.php:301
ContactForm
Form to edit user's contact information.
Definition: ContactForm.inc.php:18
NotificationManager
Definition: NotificationManager.inc.php:19
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
Handler
Base request handler application class.
Definition: Handler.inc.php:18
ProfileTabHandler\saveAPIProfile
saveAPIProfile($args, $request)
Definition: ProfileTabHandler.inc.php:229
ProfileTabHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: ProfileTabHandler.inc.php:32
ProfileTabHandler
Handle requests for profile tab operations.
Definition: ProfileTabHandler.inc.php:24