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