diff --git a/field_permissions.admin.inc b/field_permissions.admin.inc old mode 100644 new mode 100755 index fde3730..912149a --- a/field_permissions.admin.inc +++ b/field_permissions.admin.inc @@ -53,29 +53,22 @@ function field_permissions_list($field_label = '') { * An array of permission information, suitable for use in hook_permission(). */ function field_permissions_list_field_permissions($field, $label = NULL) { - $description = ''; - - // If there is no preferred label, construct one from all the instance - // labels. if (!isset($label)) { - $labels = array(); - foreach ($field['bundles'] as $entity_type => $bundles) { - foreach ($bundles as $bundle_name) { - $instance = field_info_instance($entity_type, $field['field_name'], $bundle_name); - $labels[] = $instance['label']; - } - } - // If all the instances have the same label, just use that. Otherwise, use - // the field name (with the full list of instance labels as the permission - // description). - $labels = array_unique($labels); - if (count($labels) == 1) { - $label = array_shift($labels); - } - else { - $label = $field['field_name']; - $description = t('This field appears as: %instances', array('%instances' => implode(', ', $labels))); + $label = $field['field_name']; + } + $instances = array(); + foreach ($field['bundles'] as $entity_type => $bundles) { + foreach ($bundles as $bundle_name) { + $instance = field_info_instance($entity_type, $field['field_name'], $bundle_name); + $entity = entity_get_info($entity_type); + $instance_desc_tokens = array( + $entity['label'], + $entity['bundles'][$bundle_name]['label'], + $instance['label'], + ); + $instances[] = '"' . implode(':', $instance_desc_tokens) . '"'; } + $description = t('This field appears as: %instances.', array('%instances' => implode(', ', $instances))); } $permissions = array(); diff --git a/field_permissions.test b/field_permissions.test old mode 100644 new mode 100755 index 201fa46..9cee9fb --- a/field_permissions.test +++ b/field_permissions.test @@ -162,11 +162,11 @@ class FieldPermissionsTestCase extends DrupalWebTestCase { // See if we have that exposed on the permissions UI as well now. $this->drupalGet('admin/people/permissions'); $this->assertText(t('Field Permissions')); - $this->assertRaw(t('Create own value for field %field', array('%field' => $field_info['name']))); - $this->assertRaw(t('Edit own value for field %field', array('%field' => $field_info['name']))); - $this->assertRaw(t("Edit anyone's value for field %field", array('%field' => $field_info['name']))); - $this->assertRaw(t('View own value for field %field', array('%field' => $field_info['name']))); - $this->assertRaw(t("View anyone's value for field %field", array('%field' => $field_info['name']))); + $this->assertRaw(t('Create own value for field %field', array('%field' => $field_info['machine_name']))); + $this->assertRaw(t('Edit own value for field %field', array('%field' => $field_info['machine_name']))); + $this->assertRaw(t("Edit anyone's value for field %field", array('%field' => $field_info['machine_name']))); + $this->assertRaw(t('View own value for field %field', array('%field' => $field_info['machine_name']))); + $this->assertRaw(t("View anyone's value for field %field", array('%field' => $field_info['machine_name']))); // == CREATE ===============================================================