Open Journal Systems  3.3.0
UserForm.inc.php
1 <?php
2 
16 import('lib.pkp.classes.form.Form');
17 
18 class UserForm extends Form {
19 
21  var $userId;
22 
29  function __construct($template, $userId = null) {
30  parent::__construct($template);
31 
32  $this->userId = isset($userId) ? (int) $userId : null;
33 
34  if (!is_null($userId)) {
35  $this->addCheck(new FormValidator($this, 'userGroupIds', 'required', 'manager.users.roleRequired'));
36  }
37  }
38 
42  public function initData() {
43 
44  $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); /* @var $userGroupDao UserGroupDAO */
45  $userGroups = $userGroupDao->getByUserId($this->userId);
46  $userGroupIds = array();
47  while ($userGroup = $userGroups->next()) {
48  $userGroupIds[] = $userGroup->getId();
49  }
50  $this->setData('userGroupIds', $userGroupIds);
51 
52  parent::initData();
53  }
54 
58  public function readInputData() {
59  $this->readUserVars(array('userGroupIds'));
60  parent::readInputData();
61  }
62 
66  public function display($request = null, $template = null) {
67  $context = $request->getContext();
68  $contextId = $context ? $context->getId() : CONTEXT_ID_NONE;
69  $templateMgr = TemplateManager::getManager($request);
70 
71  $allUserGroups = [];
72  $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); /* @var $userGroupDao UserGroupDAO */
73  $userGroups = $userGroupDao->getByContextId($contextId);
74  while ($userGroup = $userGroups->next()) {
75  $allUserGroups[(int) $userGroup->getId()] = $userGroup->getLocalizedName();
76  }
77 
78  $templateMgr->assign([
79  'allUserGroups' => $allUserGroups,
80  'assignedUserGroups' => array_map('intval', $this->getData('userGroupIds')),
81  ]);
82 
83  return $this->fetch($request);
84  }
85 
89  function execute(...$functionArgs) {
90  if (isset($this->userId)) {
91  import('lib.pkp.classes.security.UserGroupAssignmentDAO');
92  $userGroupAssignmentDao = DAORegistry::getDAO('UserGroupAssignmentDAO'); /* @var $userGroupAssignmentDao UserGroupAssignmentDAO */
93  $userGroupAssignmentDao->deleteAssignmentsByContextId(Application::get()->getRequest()->getContext()->getId(), $this->userId);
94  if ($this->getData('userGroupIds')) {
95  $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); /* @var $userGroupDao UserGroupDAO */
96  foreach ($this->getData('userGroupIds') as $userGroupId) {
97  $userGroupDao->assignUserToGroup($this->userId, $userGroupId);
98  }
99  }
100  }
101 
102  parent::execute(...$functionArgs);
103  }
104 
105 }
UserForm\readInputData
readInputData()
Definition: UserForm.inc.php:61
UserForm\__construct
__construct($template, $userId=null)
Definition: UserForm.inc.php:32
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
UserForm\$userId
$userId
Definition: UserForm.inc.php:24
Form\setData
setData($key, $value=null)
Definition: Form.inc.php:229
Form\readUserVars
readUserVars($vars)
Definition: Form.inc.php:378
Form\getData
getData($key)
Definition: Form.inc.php:220
UserForm\display
display($request=null, $template=null)
Definition: UserForm.inc.php:69
UserForm
Base class for user forms.
Definition: UserForm.inc.php:18
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
FormValidator
Class to represent a form validation check.
Definition: FormValidator.inc.php:23
UserForm\execute
execute(... $functionArgs)
Definition: UserForm.inc.php:92
Form\addCheck
addCheck($formValidator)
Definition: Form.inc.php:395
Form
Class defining basic operations for handling HTML forms.
Definition: Form.inc.php:47
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
UserForm\initData
initData()
Definition: UserForm.inc.php:45
Form\fetch
fetch($request, $template=null, $display=false)
Definition: Form.inc.php:171