Open Journal Systems  3.3.0
ProfileHandler.inc.php
1 <?php
2 
17 import('pages.user.UserHandler');
18 
19 class ProfileHandler extends UserHandler {
20 
22  var $_isBackendPage = true;
23 
24  //
25  // Implement template methods from PKPHandler
26  //
30  function authorize($request, &$args, $roleAssignments) {
31  $operations = array(
32  'profile',
33  );
34 
35  // Site access policy
36  import('lib.pkp.classes.security.authorization.PKPSiteAccessPolicy');
37  $this->addPolicy(new PKPSiteAccessPolicy($request, $operations, SITE_ACCESS_ALL_ROLES));
38 
39  // User must be logged in
40  import('lib.pkp.classes.security.authorization.UserRequiredPolicy');
41  $this->addPolicy(new UserRequiredPolicy($request));
42 
43  return parent::authorize($request, $args, $roleAssignments);
44  }
45 
51  function profile($args, $request) {
52  $context = $request->getContext();
53  if (!$context) {
54  $user = $request->getUser();
55  $contextDao = Application::getContextDAO();
56  $workingContexts = $contextDao->getAvailable($user?$user->getId():null);
57  if ($workingContexts && $workingContexts->getCount() == 1) {
58  $workingContext = $workingContexts->next();
59  $contextPath = $workingContext->getPath();
60  $request->redirect($contextPath, 'user', 'profile', null, $args);
61  }
62  }
63 
64  if ($anchor = array_shift($args)) {
65  // Some requests will try to specify a tab name in the args. Redirect
66  // to use this as an anchor name instead.
67  $request->redirect(null, null, null, null, null, $anchor);
68  }
69 
70  $this->setupTemplate($request);
71 
72  $templateMgr = TemplateManager::getManager($request);
73  $templateMgr->assign([
74  'pageTitle' => __('user.profile'),
75  ]);
76  $templateMgr->display('user/profile.tpl');
77  }
78 }
79 
80 
UserRequiredPolicy
Policy to deny access if a context cannot be found in the request.
Definition: UserRequiredPolicy.inc.php:17
Application\getContextDAO
static getContextDAO()
Definition: Application.inc.php:137
ProfileHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: ProfileHandler.inc.php:30
UserHandler\setupTemplate
setupTemplate($request=null)
Definition: pages/user/UserHandler.inc.php:89
UserHandler
Handle API requests for user operations.
Definition: api/v1/users/UserHandler.inc.php:19
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
ProfileHandler\profile
profile($args, $request)
Definition: ProfileHandler.inc.php:51
ProfileHandler\$_isBackendPage
$_isBackendPage
Definition: ProfileHandler.inc.php:22
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
PKPSiteAccessPolicy
Class to that makes sure that a user is logged in.
Definition: PKPSiteAccessPolicy.inc.php:20
ProfileHandler
Handle requests for modifying user profiles.
Definition: ProfileHandler.inc.php:19