Console running... Attempting to install package with signature: sitelogin-1.0 Package found...now preparing to install. Grabbing package workspace... PHP notice: Undefined offset: 2 Workspace environment initiated, now installing package...
<?php /** * Resolver for flightschool extra * * Copyright 2017 by Björn Kaiser [email protected] * Created on 01-20-2017 * * @package flightschool * @subpackage build */ /* @var $object xPDOObject */ /* @var $modx modX */ /* @var array $options */ $new_user_groups = array( 'Member Group 1', 'Member Group 2); if ($object->xpdo) { $modx =& $object->xpdo; switch ($options[xPDOTransport::PACKAGE_ACTION]) { case xPDOTransport::ACTION_INSTALL: foreach ($new_user_groups as $new_user_group) { // create new user group $response = $modx->runProcessor('security/group/create', array('name' => $new_user_group)); // add super user to the new user group if (!$response->isError()) { $group = $response->getObject(); $modx->runProcessor('security/group/adduser', array('user_group' => $group['id'], 'member' => 1)); // change super user role to 'Super User' role $user_group = $modx->getObject('modUserGroup', array('name' => $new_user_group)); $user_group_id = $user_group->get('id'); $user_group_member = $modx->getObject('modUserGroupMember', array('user_group' => $user_group_id, 'member' => 1, 'role' => 1)); $user_group_member->set('role', 2); $user_group_member->save(); } } break; case xPDOTransport::ACTION_UPGRADE: /* [[+code]] */ break; case xPDOTransport::ACTION_UNINSTALL: // remove created user group foreach ($new_user_groups as $new_user_group) { $user_group = $modx->getObject('modUserGroup', array('name' => $new_user_group)); $response = $modx->runProcessor('security/group/remove', array('id' => $user_group->get('id'))); } break; } } return true;
This question has been answered by BobRay. See the first response.
$new_user_groups = array( 'Member Group 1', 'Member Group 2');
/* In case group already exists */ $user_group = $modx->getObject('modUserGroup', array('name' => $name)); if (! user_group) { $user_group = $modx->newObject('modUserGroup'); } $user_group->set('name', $name); $user_group->set('parent', $parent); $user_group->save(); }
$role = 2; $rank = ??; $userId = ??; $group = $modx->getObject('modUserGroup', array('name' => $name)); if ($group) { $groupId = $group->get('id'); /* In case the UGM already exists */ $ugm = $modx->getObject('modUserGroupMember', array('user_group' => $groupId, 'member' => $userId)); if (!$ugm) { $ugm = $modx->newObject('modUserGroupMember'); } $ugm->set('user_group', $groupId); $ugm->set('member', $userId); $ugm->set('role', $role); $ugm->set('rank', $rank); $ugm->save(); } else { /* report error */ }
$user_group = $modx->getObject('modUserGroup', array('name' => $new_user_group)); if ($user_group) { $user_group->remove(); } else { /* report error */ }