/** * If any role has no permission records, set Member-like permissions on it. * * @return array */ public function fixPermissions() { $Roles = RoleModel::roles(); $RoleModel = new RoleModel(); $PermissionModel = new PermissionModel(); // Find roles missing permission records foreach ($Roles as $RoleID => $Role) { $Permissions = $this->SQL->select('*')->from('Permission p')->where('p.RoleID', $RoleID)->get()->resultArray(); if (!count($Permissions)) { // Set basic permission record $DefaultRecord = array('RoleID' => $RoleID, 'JunctionTable' => null, 'JunctionColumn' => null, 'JunctionID' => null, 'Garden.Email.View' => 1, 'Garden.SignIn.Allow' => 1, 'Garden.Activity.View' => 1, 'Garden.Profiles.View' => 1, 'Garden.Profiles.Edit' => 1, 'Conversations.Conversations.Add' => 1); $PermissionModel->save($DefaultRecord); // Set default category permission $DefaultCategory = array('RoleID' => $RoleID, 'JunctionTable' => 'Category', 'JunctionColumn' => 'PermissionCategoryID', 'JunctionID' => -1, 'Vanilla.Discussions.View' => 1, 'Vanilla.Discussions.Add' => 1, 'Vanilla.Comments.Add' => 1); $PermissionModel->save($DefaultCategory); } } return array('Complete' => true); }