12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- From 1f82c4ef9b474a12d160813f767128d645f524cc Mon Sep 17 00:00:00 2001
- From: Bachir Soussi Chiadmi <bachir@g-u-i.me>
- Date: Sun, 19 Apr 2015 21:04:36 +0200
- Subject: [PATCH] repatched entityrefeerence module
- ---
- ...ityReference_SelectionHandler_Generic.class.php | 43 +++++++++++++++++++---
- 1 file changed, 38 insertions(+), 5 deletions(-)
- diff --git a/sites/all/modules/contrib/fields/entityreference/plugins/selection/EntityReference_SelectionHandler_Generic.class.php b/sites/all/modules/contrib/fields/entityreference/plugins/selection/EntityReference_SelectionHandler_Generic.class.php
- index 444a74c..660fe3d 100644
- --- a/sites/all/modules/contrib/fields/entityreference/plugins/selection/EntityReference_SelectionHandler_Generic.class.php
- +++ b/sites/all/modules/contrib/fields/entityreference/plugins/selection/EntityReference_SelectionHandler_Generic.class.php
- @@ -370,6 +370,28 @@ class EntityReference_SelectionHandler_Generic_node extends EntityReference_Sele
- * This only exists to workaround core bugs.
- */
- class EntityReference_SelectionHandler_Generic_user extends EntityReference_SelectionHandler_Generic {
- +
- + /**
- + * Implements EntityReferenceHandler::settingsForm().
- + */
- + public static function settingsForm($field, $instance) {
- + $settings = $field['settings']['handler_settings'];
- + $form = parent::settingsForm($field, $instance);
- + $form['referenceable_roles'] = array(
- + '#type' => 'checkboxes',
- + '#title' => t('User roles that can be referenced'),
- + '#default_value' => isset($settings['referenceable_roles']) ? array_filter($settings['referenceable_roles']) : array(),
- + '#options' => user_roles(TRUE),
- + );
- + $form['referenceable_status'] = array(
- + '#type' => 'checkboxes',
- + '#title' => t('User status that can be referenced'),
- + '#default_value' => isset($settings['referenceable_status']) ? array_filter($settings['referenceable_status']) : array('active' => 'active'),
- + '#options' => array('active' => t('Active'), 'blocked' => t('Blocked')),
- + );
- + return $form;
- + }
- +
- public function buildEntityFieldQuery($match = NULL, $match_operator = 'CONTAINS') {
- $query = parent::buildEntityFieldQuery($match, $match_operator);
-
- @@ -378,11 +400,22 @@ class EntityReference_SelectionHandler_Generic_user extends EntityReference_Sele
- $query->propertyCondition('name', $match, $match_operator);
- }
-
- - // Adding the 'user_access' tag is sadly insufficient for users: core
- - // requires us to also know about the concept of 'blocked' and
- - // 'active'.
- - if (!user_access('administer users')) {
- - $query->propertyCondition('status', 1);
- + $field = $this->field;
- + $settings = $field['settings']['handler_settings'];
- + $referenceable_roles = isset($settings['referenceable_roles']) ? array_filter($settings['referenceable_roles']) : array();
- + $referenceable_status = isset($settings['referenceable_status']) ? array_filter($settings['referenceable_status']) : array('active' => 'active');
- +
- + // If this filter is not filled, use the users access permissions.
- + if (empty($referenceable_status)) {
- + // Adding the 'user_access' tag is sadly insufficient for users: core
- + // requires us to also know about the concept of 'blocked' and 'active'.
- + if (!user_access('administer users')) {
- + $query->propertyCondition('status', 1);
- + }
- + }
- + elseif (count($referenceable_status) == 1) {
- + $values = array('active' => 1, 'blocked' => 0);
- + $query->propertyCondition('status', $values[key($referenceable_status)]);
- }
- return $query;
- }
- --
- 2.3.5
|