• Main Page
  • Modules
  • Classes
  • Files
  • File List

pages/user/ProfileHandler.inc.php

00001 <?php
00002 
00016 import('pages.user.UserHandler');
00017 
00018 class ProfileHandler extends UserHandler {
00022    function ProfileHandler() {
00023       parent::UserHandler();
00024    }
00025 
00026    //
00027    // Implement template methods from PKPHandler
00028    //
00035    function authorize(&$request, $args, $roleAssignments) {
00036       $operations = array('profile', 'saveProfile', 'changePassword', 'savePassword');
00037 
00038       // Site access policy
00039       import('lib.pkp.classes.security.authorization.PKPSiteAccessPolicy');
00040       $this->addPolicy(new PKPSiteAccessPolicy($request, $operations, SITE_ACCESS_ALL_ROLES));
00041 
00042       // User must be logged in
00043       import('lib.pkp.classes.security.authorization.UserRequiredPolicy');
00044       $this->addPolicy(new UserRequiredPolicy($request));
00045 
00046       return parent::authorize($request, $args, $roleAssignments);
00047    }
00048 
00052    function profile($args, &$request) {
00053       $this->setupTemplate(true);
00054 
00055       $user =& $request->getUser();
00056       import('classes.user.form.ProfileForm');
00057       $profileForm = new ProfileForm($user);
00058       if ($profileForm->isLocaleResubmit()) {
00059          $profileForm->readInputData();
00060       } else {
00061          $profileForm->initData($args, $request);
00062       }
00063       $profileForm->display($args, $request);
00064    }
00065 
00069    function saveProfile($args, &$request) {
00070       $this->setupTemplate($request);
00071       $dataModified = false;
00072       $user =& $request->getUser();
00073 
00074       import('classes.user.form.ProfileForm');
00075       $profileForm = new ProfileForm($user);
00076       $profileForm->readInputData();
00077 
00078       if ($request->getUserVar('uploadProfileImage')) {
00079          if (!$profileForm->uploadProfileImage()) {
00080             $profileForm->addError('profileImage', __('user.profile.form.profileImageInvalid'));
00081          }
00082          $dataModified = true;
00083       } else if ($request->getUserVar('deleteProfileImage')) {
00084          $profileForm->deleteProfileImage();
00085          $dataModified = true;
00086       }
00087 
00088       if (!$dataModified && $profileForm->validate()) {
00089          $profileForm->execute($request);
00090          $request->redirect(null, $request->getRequestedPage());
00091       } else {
00092          $profileForm->display($args, $request);
00093       }
00094    }
00095 
00099    function changePassword($args, &$request) {
00100       $this->setupTemplate(true);
00101 
00102       $user =& $request->getUser();
00103       $site =& $request->getSite();
00104 
00105       import('classes.user.form.ChangePasswordForm');
00106       $passwordForm = new ChangePasswordForm($user, $site);
00107       $passwordForm->initData($args, $request);
00108       $passwordForm->display($args, $request);
00109    }
00110 
00114    function savePassword($args, &$request) {
00115       $this->setupTemplate(true);
00116 
00117       $user =& $request->getUser();
00118       $site =& $request->getSite();
00119 
00120       import('classes.user.form.ChangePasswordForm');
00121       $passwordForm = new ChangePasswordForm($user, $site);
00122       $passwordForm->readInputData();
00123 
00124       $this->setupTemplate(true);
00125       if ($passwordForm->validate()) {
00126          $passwordForm->execute($request);
00127          $request->redirect(null, $request->getRequestedPage());
00128 
00129       } else {
00130          $passwordForm->display($args, $request);
00131       }
00132    }
00133 }
00134 
00135 ?>

Generated on Mon Sep 17 2012 13:58:56 for Open Monograph Press by  doxygen 1.7.1