/** * Append a 'disabled' CSS class to GridField rows whose WorkflowInstance records are not viewable/editable * by the current user. * * This is used to visually "grey out" records and it's leveraged in some overriding JavaScript, to maintain an ability * to click the target object's hyperlink. * * @param GridField $gridField * @param DataObject $record * @param string $columnName * @return array */ public function getColumnAttributes($gridField, $record, $columnName) { $defaultAtts = array('class' => 'col-buttons'); if ($record instanceof WorkflowInstance) { $isAdmin = Permission::check('ADMIN'); $isAssigned = $record->getAssignedMembers()->find('ID', Member::currentUserID()); if (!$isAdmin && !$isAssigned) { $atts['class'] = $defaultAtts['class'] . ' disabled'; return $atts; } return $defaultAtts; } return $defaultAtts; }