public function setRoleDefaults()
{
if (!$this->importExists('Role', 'RoleID')) {
return;
}
$Data = $this->SQL->get('zRole')->resultArray();
$RoleDefaults = array('Garden.Registration.ConfirmEmail' => false);
$RoleTypes = array();
foreach ($Data as $Row) {
if ($this->importExists('Role', '_Default')) {
$Name = $Row['_Default'];
} else {
$Name = val('Name', $Row);
}
$RoleID = $Row['RoleID'];
if (preg_match('`anonymous`', $Name)) {
$Name = 'guest';
} elseif (preg_match('`admin`', $Name)) {
$Name = 'administrator';
}
switch (strtolower($Name)) {
case 'email':
case 'confirm email':
case 'users awaiting email confirmation':
case 'pending':
$RoleTypes[$RoleID] = RoleModel::TYPE_UNCONFIRMED;
$RoleDefaults['Garden.Registration.ConfirmEmail'] = true;
break;
case 'member':
case 'members':
case 'registered':
case 'registered users':
$RoleTypes[$RoleID] = RoleModel::TYPE_MEMBER;
break;
case 'guest':
case 'guests':
case 'unauthenticated':
case 'unregistered':
case 'unregistered / not logged in':
$RoleTypes[$RoleID] = RoleModel::TYPE_GUEST;
break;
case 'applicant':
case 'applicants':
$RoleTypes[$RoleID] = RoleModel::TYPE_APPLICANT;
break;
}
}
saveToConfig($RoleDefaults);
$roleModel = new RoleModel();
foreach ($RoleTypes as $RoleID => $Type) {
$roleModel->setField($RoleID, 'Type', $Type);
}
}