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 */
}