32 $contexts = $contextDao->getAll(
true)->toArray();
33 $contextsWithUserRegistration = array();
34 foreach ($contexts as $context) {
35 if (!$context->getData(
'disableUserReg')) {
36 $contextsWithUserRegistration[] = $context;
39 $templateMgr->assign(array(
40 'contexts' => $contexts,
41 'showOtherContexts' => !$request->getContext() || count($contextsWithUserRegistration)>1,
45 $authorUserGroups = $reviewerUserGroups = $readerUserGroups = array();
47 foreach ($contexts as $context) {
48 if ($context->getData(
'disableUserReg'))
continue;
49 $reviewerUserGroups[$context->getId()] = $userGroupDao->getByRoleId($context->getId(), ROLE_ID_REVIEWER)->toArray();
50 $authorUserGroups[$context->getId()] = $userGroupDao->getByRoleId($context->getId(), ROLE_ID_AUTHOR)->toArray();
51 $readerUserGroups[$context->getId()] = $userGroupDao->getByRoleId($context->getId(), ROLE_ID_READER)->toArray();
53 $templateMgr->assign(array(
54 'reviewerUserGroups' => $reviewerUserGroups,
55 'authorUserGroups' => $authorUserGroups,
56 'readerUserGroups' => $readerUserGroups,
68 $contexts = $contextDao->getAll(
true);
69 while ($context = $contexts->next()) {
70 if ($context->getData(
'disableUserReg'))
continue;
74 'roleId' => ROLE_ID_REVIEWER,
75 'formElement' =>
'reviewerGroup'
78 'roleId' => ROLE_ID_AUTHOR,
79 'formElement' =>
'authorGroup'
82 'roleId' => ROLE_ID_READER,
83 'formElement' =>
'readerGroup'
86 $groupFormData = (array) $form->getData($groupData[
'formElement']);
87 $userGroups = $userGroupDao->getByRoleId($context->getId(), $groupData[
'roleId']);
88 while ($userGroup = $userGroups->next()) {
89 if (!$userGroup->getPermitSelfRegistration())
continue;
91 $groupId = $userGroup->getId();
92 $inGroup = $userGroupDao->userInGroup($user->getId(), $groupId);
93 if (!$inGroup && array_key_exists($groupId, $groupFormData)) {
94 $userGroupDao->assignUserToGroup($user->getId(), $groupId, $context->getId());
95 } elseif ($inGroup && !array_key_exists($groupId, $groupFormData)) {
96 $userGroupDao->removeUserFromGroup($user->getId(), $groupId, $context->getId());