From 16996e1775bca41df29911f968c8cf47fc0802bf Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Tue, 23 Apr 2019 15:56:08 +0200 Subject: [PATCH] security update for entity module_filter genpass --- .../contrib/admin/module_filter/CHANGELOG.txt | 37 ++++--- .../contrib/admin/module_filter/README.txt | 4 +- .../admin/module_filter/css/module_filter.css | 6 ++ .../module_filter/css/module_filter_tab.css | 3 - .../admin/module_filter/css/modules.css | 10 +- .../admin/module_filter/images/collapsed.png | Bin 0 -> 105 bytes .../admin/module_filter/images/expanded.png | Bin 0 -> 106 bytes .../admin/module_filter/js/module_filter.js | 3 + .../module_filter/js/module_filter_tab.js | 21 ++-- .../contrib/admin/module_filter/js/modules.js | 9 +- .../module_filter/module_filter.admin.inc | 26 +++-- .../admin/module_filter/module_filter.info | 8 +- .../admin/module_filter/module_filter.install | 2 + .../admin/module_filter/module_filter.module | 84 ++++++++++----- .../module_filter/module_filter.pages.inc | 17 ++- .../module_filter/module_filter.theme.inc | 54 ++++++---- .../modules/contrib/dev/entity/entity.info | 6 +- .../modules/contrib/dev/entity/entity.module | 7 +- .../contrib/dev/entity/entity_token.info | 6 +- .../dev/entity/includes/entity.wrapper.inc | 6 +- .../contrib/dev/entity/modules/callbacks.inc | 2 +- .../dev/entity/tests/entity_feature.info | 6 +- .../contrib/dev/entity/tests/entity_test.info | 6 +- .../dev/entity/tests/entity_test_i18n.info | 6 +- .../entity_views_handler_area_entity.inc | 32 +++++- .../modules/contrib/users/genpass/LICENSE.txt | 0 .../modules/contrib/users/genpass/genpass.css | 3 - .../contrib/users/genpass/genpass.info | 7 +- .../contrib/users/genpass/genpass.install | 0 .../contrib/users/genpass/genpass.module | 101 +++++++++--------- 30 files changed, 300 insertions(+), 172 deletions(-) create mode 100644 sites/all/modules/contrib/admin/module_filter/images/collapsed.png create mode 100644 sites/all/modules/contrib/admin/module_filter/images/expanded.png mode change 100755 => 100644 sites/all/modules/contrib/users/genpass/LICENSE.txt delete mode 100755 sites/all/modules/contrib/users/genpass/genpass.css mode change 100755 => 100644 sites/all/modules/contrib/users/genpass/genpass.info mode change 100755 => 100644 sites/all/modules/contrib/users/genpass/genpass.install mode change 100755 => 100644 sites/all/modules/contrib/users/genpass/genpass.module diff --git a/sites/all/modules/contrib/admin/module_filter/CHANGELOG.txt b/sites/all/modules/contrib/admin/module_filter/CHANGELOG.txt index c5c66703..5513831c 100644 --- a/sites/all/modules/contrib/admin/module_filter/CHANGELOG.txt +++ b/sites/all/modules/contrib/admin/module_filter/CHANGELOG.txt @@ -1,27 +1,38 @@ -Module Filter 7.x-2.x, 2015-02-20 +Module Filter 7.x-2.1, 2017-06-09 +--------------------------------- +Issue #2437439 by mikhail.krainiuk, greenSkin, jayhawkfan75: Module Filter does + not care about anchors in permission links. +Issue #2866236 by Munavijayalakshmi, dhruveshdtripathi: Typo error in + README.TXT file. +Issue #2452067 by Madis: Option to show description expanded as default + not working. +Issue #2580791 by makbul_khan8: Coding standards and few function without + help comments. +Issue #2153697 by annya: Disabling option "Number of enabled modules" breaks + tabs functionality. +Issue #1710230 by willvincent: On | Off buttons does not change state with + jquery_update module active. +Added option to show description as expanded by default. +Improved description field so when it is open, interacting with it's contents + does not make it collapse. +Placed collapsed/expanded images inside of module for easier, more reliable + access. +Added option to place version in own column. +Issue #2113191 by joelpittet: Category tabs not working. + + +Module Filter 7.x-2.0, 2015-02-22 --------------------------------- Simplifying the table rows by hiding version and requirements until a particular description is clicked. - - -Module Filter 7.x-2.x, 2014-09-01 ---------------------------------- #2235553 by greenSkin: Fixed latest jquery_update breaks module filter. #2304687 by mpdonadio: Fixed Remove hardcoded operations. #2293029 by topsitemakers: Fixed Take header offset into account when selecting a tab. #2290213 by topsitemakers: Minor typo in description - "has no affect" -> "has no effect". - - -Module Filter 7.x-2.0-alpha2, 2013-12-06 ----------------------------------------- #2141743, #2141743 by greenSkin: Fixed issues related to the new dynamically positioned tabs and using the dynamically positioned save button. - - -Module Filter 7.x-2.0-alpha1, 2013-11-18 ----------------------------------------- by greenSkin: Tabs now should always be visible while scrolling large lists of modules. #1854348 by alexweber, greenSkin: Make filter textfield wider on modules page diff --git a/sites/all/modules/contrib/admin/module_filter/README.txt b/sites/all/modules/contrib/admin/module_filter/README.txt index 0bc967ab..b03d9702 100644 --- a/sites/all/modules/contrib/admin/module_filter/README.txt +++ b/sites/all/modules/contrib/admin/module_filter/README.txt @@ -17,8 +17,8 @@ visibility of modules that are disabled and depend on module(s) that are missing. The update status report filter also contains four checkboxes: Up-to-Date, -Update availabe, Security update, and Unknown. These directly affect the -visibilty of each project; whether it is up-to-date, there is an update +Update available, Security update, and Unknown. These directly affect the +visibility of each project; whether it is up-to-date, there is an update available, a security update is available, or the status is unknown. Installation diff --git a/sites/all/modules/contrib/admin/module_filter/css/module_filter.css b/sites/all/modules/contrib/admin/module_filter/css/module_filter.css index 19d113fb..b03bbb75 100644 --- a/sites/all/modules/contrib/admin/module_filter/css/module_filter.css +++ b/sites/all/modules/contrib/admin/module_filter/css/module_filter.css @@ -18,3 +18,9 @@ text-transform: uppercase; color: #888; } +#module-filter-modules { + position: relative; +} +#module-filter-modules table { + position: absolute; +} diff --git a/sites/all/modules/contrib/admin/module_filter/css/module_filter_tab.css b/sites/all/modules/contrib/admin/module_filter/css/module_filter_tab.css index 2607a617..fd7d0f0c 100644 --- a/sites/all/modules/contrib/admin/module_filter/css/module_filter_tab.css +++ b/sites/all/modules/contrib/admin/module_filter/css/module_filter_tab.css @@ -167,9 +167,6 @@ html.js #module-filter-modules table td { .admin-version { white-space: nowrap; } -.admin-operations { - float: right; -} .admin-operations a.module-link { display: inline; } diff --git a/sites/all/modules/contrib/admin/module_filter/css/modules.css b/sites/all/modules/contrib/admin/module_filter/css/modules.css index 91fa7418..06598257 100644 --- a/sites/all/modules/contrib/admin/module_filter/css/modules.css +++ b/sites/all/modules/contrib/admin/module_filter/css/modules.css @@ -7,6 +7,9 @@ #system-modules th.name { width: 25%; } +#system-modules th.version { + width: 10%; +} #system-modules th.links { width: 15%; } @@ -14,12 +17,12 @@ vertical-align: top; } #system-modules .expand.inner { - background: transparent url(/misc/menu-collapsed.png) left 0.6em no-repeat; + background: transparent url(../images/collapsed.png) left 0.6em no-repeat; margin-left: -12px; padding-left: 12px; } #system-modules .expanded.expand.inner { - background: transparent url(/misc/menu-expanded.png) left 0.6em no-repeat; + background: transparent url(../images/expanded.png) left 0.6em no-repeat; } #system-modules .description { cursor: pointer; @@ -29,6 +32,9 @@ text-overflow: ellipsis; white-space: nowrap; } +#system-modules .description .inner.expanded > * { + cursor: auto; +} #system-modules .description .requirements, #system-modules .description .links { display: none; diff --git a/sites/all/modules/contrib/admin/module_filter/images/collapsed.png b/sites/all/modules/contrib/admin/module_filter/images/collapsed.png new file mode 100644 index 0000000000000000000000000000000000000000..91f3fd40ede024798b6de5ea2675bb692a3cfa95 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j@3?%=}IXVGIu?6^qxc>kDAIJlF_r}R y1v5B2yO9Ru2zt6WhH%Ixhb6Q*Xr>9K@iDN~Fr3*g^XWQJlEKr}&t;ucLK6T5e;aZD literal 0 HcmV?d00001 diff --git a/sites/all/modules/contrib/admin/module_filter/images/expanded.png b/sites/all/modules/contrib/admin/module_filter/images/expanded.png new file mode 100644 index 0000000000000000000000000000000000000000..46f39ecb351cff65243fa9a614a69d039e1302a5 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j@3?%=}IXVGIu?6^qxc>kDAIJlF_r}R z1v5B2yO9Ru2zk0VhE&W+{&76uaKb@_0}N~oA{!VF-#vS9IZ&3t)78&qol`;+0EMF; ATL1t6 literal 0 HcmV?d00001 diff --git a/sites/all/modules/contrib/admin/module_filter/js/module_filter.js b/sites/all/modules/contrib/admin/module_filter/js/module_filter.js index d5f53287..4fcf6e65 100644 --- a/sites/all/modules/contrib/admin/module_filter/js/module_filter.js +++ b/sites/all/modules/contrib/admin/module_filter/js/module_filter.js @@ -265,6 +265,9 @@ $.fn.moduleFilter = function(selector, options) { if (Drupal.settings.moduleFilter.setFocus) { filterInput.focus(); } + if (Drupal.settings.moduleFilter.expandedDescription) { + $('#system-modules td.description .inner.expand').addClass('expanded'); + } filterInput.data('moduleFilter', new Drupal.ModuleFilter.Filter(this, selector, options)); }; diff --git a/sites/all/modules/contrib/admin/module_filter/js/module_filter_tab.js b/sites/all/modules/contrib/admin/module_filter/js/module_filter_tab.js index aa54b983..c62b9ef6 100644 --- a/sites/all/modules/contrib/admin/module_filter/js/module_filter_tab.js +++ b/sites/all/modules/contrib/admin/module_filter/js/module_filter_tab.js @@ -57,7 +57,7 @@ Drupal.behaviors.moduleFilterTabs = { // Build tabs from package title rows. var tabs = '
    '; for (var i in Drupal.settings.moduleFilter.packageIDs) { - var id = Drupal.settings.moduleFilter.packageIDs[i]; + var id = Drupal.checkPlain(Drupal.settings.moduleFilter.packageIDs[i]); var name = id; var tabClass = 'project-tab'; @@ -84,9 +84,9 @@ Drupal.behaviors.moduleFilterTabs = { summary += '' + Drupal.t('No modules were enabled or disabled within the last week.') + ''; } break; - default: - var $row = $('#' + id + '-package'); - name = $.trim($row.text()); + default: + var $row = $('#' + id + '-package', this); + name = Drupal.checkPlain($.trim($row.text())); $row.remove(); break; } @@ -233,8 +233,8 @@ Drupal.behaviors.moduleFilterTabs = { } if (Drupal.settings.moduleFilter.useSwitch) { - $('td.checkbox div.form-item').hide(); - $('td.checkbox').each(function(i) { + $('td.checkbox div.form-item', table).hide(); + $('td.checkbox', table).each(function(i) { var $cell = $(this); var $checkbox = $(':checkbox', $cell); var $switch = $('.toggle-enable', $cell); @@ -242,17 +242,14 @@ Drupal.behaviors.moduleFilterTabs = { if (!$(this).hasClass('disabled')) { if (Drupal.ModuleFilter.jQueryIsNewer()) { $checkbox.click(); + $switch.toggleClass('off'); } else { $checkbox.click().change(); + $switch.toggleClass('off'); } } }); - $checkbox.click(function() { - if (!$switch.hasClass('disabled')) { - $switch.toggleClass('off'); - } - }); }); } @@ -520,7 +517,7 @@ Drupal.ModuleFilter.updateVisualAid = function(type, $row) { } var tab = Drupal.ModuleFilter.tabs[id]; - var name = $('td:nth(1) strong', $row).text(); + var name = Drupal.checkPlain($('td:nth(1) strong', $row).text()); switch (type) { case 'enable': if (Drupal.ModuleFilter.disabling[id + name] != undefined) { diff --git a/sites/all/modules/contrib/admin/module_filter/js/modules.js b/sites/all/modules/contrib/admin/module_filter/js/modules.js index 7df5f87f..b0b49391 100644 --- a/sites/all/modules/contrib/admin/module_filter/js/modules.js +++ b/sites/all/modules/contrib/admin/module_filter/js/modules.js @@ -3,8 +3,13 @@ Drupal.behaviors.moduleFilter = { attach: function(context) { $('#system-modules td.description').once('description', function() { - $('.inner.expand', $(this)).click(function() { - $(this).toggleClass('expanded'); + $(this).click(function() { + $('.inner.expand', $(this)).toggleClass('expanded'); + }); + $('.inner.expand', $(this)).children().click(function(e) { + if ($(this).parent().hasClass('expanded')) { + e.stopPropagation(); + } }); }); diff --git a/sites/all/modules/contrib/admin/module_filter/module_filter.admin.inc b/sites/all/modules/contrib/admin/module_filter/module_filter.admin.inc index 2345d8de..cdb3f49f 100644 --- a/sites/all/modules/contrib/admin/module_filter/module_filter.admin.inc +++ b/sites/all/modules/contrib/admin/module_filter/module_filter.admin.inc @@ -25,44 +25,44 @@ function module_filter_settings() { '#type' => 'checkbox', '#title' => t('Enhance the modules page with tabs'), '#description' => t('Alternate tabbed theme that restructures packages into tabs.'), - '#default_value' => variable_get('module_filter_tabs', 1) + '#default_value' => variable_get('module_filter_tabs', 1), ); $form['tabs'] = array( '#type' => 'fieldset', '#title' => t('Tabs'), '#description' => t('Settings used with the tabs view of the modules page.'), '#collapsible' => TRUE, - '#collapsed' => FALSE + '#collapsed' => FALSE, ); $form['tabs']['module_filter_count_enabled'] = array( '#type' => 'checkbox', '#title' => t('Number of enabled modules'), '#description' => t('Display the number of enabled modules in the active tab along with the total number of modules.'), - '#default_value' => variable_get('module_filter_count_enabled', 1) + '#default_value' => variable_get('module_filter_count_enabled', 1), ); $form['tabs']['module_filter_visual_aid'] = array( '#type' => 'checkbox', '#title' => t('Visual aids'), '#description' => t('When enabling/disabling modules, the module name will display in the tab summary.
    When filtering, a count of results for each tab will be presented.'), - '#default_value' => variable_get('module_filter_visual_aid', 1) + '#default_value' => variable_get('module_filter_visual_aid', 1), ); $form['tabs']['module_filter_hide_empty_tabs'] = array( '#type' => 'checkbox', '#title' => t('Hide tabs with no results'), '#description' => t('When a filter returns no results for a tab, the tab is hidden. This is dependent on visual aids being enabled.'), - '#default_value' => variable_get('module_filter_hide_empty_tabs', 0) + '#default_value' => variable_get('module_filter_hide_empty_tabs', 0), ); $form['tabs']['module_filter_dynamic_save_position'] = array( '#type' => 'checkbox', '#title' => t('Dynamically position Save button'), '#description' => t("For sites with lots of tabs, enable to help keep the 'Save configuration' button more accessible."), - '#default_value' => variable_get('module_filter_dynamic_save_position', 1) + '#default_value' => variable_get('module_filter_dynamic_save_position', 1), ); $form['tabs']['module_filter_use_url_fragment'] = array( '#type' => 'checkbox', '#title' => t('Use URL fragment'), '#description' => t('Use URL fragment when navigating between tabs. This lets you use the browsers back/forward buttons to navigate through the tabs you selected.') . '
    ' . t('When the Overlay module is enabled this functionality will not be used since overlay relies on the URL fragment.'), - '#default_value' => variable_get('module_filter_use_url_fragment', 1) + '#default_value' => variable_get('module_filter_use_url_fragment', 1), ); $form['tabs']['module_filter_use_switch'] = array( '#type' => 'checkbox', @@ -82,6 +82,18 @@ function module_filter_settings() { '#description' => t('When enabled, the active tab will be remembered.'), '#default_value' => variable_get('module_filter_remember_active_tab', 1), ); + $form['tabs']['module_filter_version_column'] = array( + '#type' => 'checkbox', + '#title' => t('Place version in own column'), + '#description' => t("Moves the version out of the description and into it's own column"), + '#default_value' => variable_get('module_filter_version_column', 0), + ); + $form['tabs']['module_filter_expanded_description'] = array( + '#type' => 'checkbox', + '#title' => t('Expand description by default'), + '#description' => t('When enabled, the description will be expanded by default.'), + '#default_value' => variable_get('module_filter_expanded_description', 0), + ); $form['update'] = array( '#type' => 'fieldset', diff --git a/sites/all/modules/contrib/admin/module_filter/module_filter.info b/sites/all/modules/contrib/admin/module_filter/module_filter.info index a48b58f3..e21267d6 100644 --- a/sites/all/modules/contrib/admin/module_filter/module_filter.info +++ b/sites/all/modules/contrib/admin/module_filter/module_filter.info @@ -4,7 +4,6 @@ core = 7.x package = Administration files[] = module_filter.install -files[] = module_filter.js files[] = module_filter.module files[] = module_filter.admin.inc files[] = module_filter.theme.inc @@ -17,9 +16,8 @@ files[] = js/module_filter_tab.js configure = admin/config/user-interface/modulefilter -; Information added by Drupal.org packaging script on 2015-02-22 -version = "7.x-2.0" +; Information added by Drupal.org packaging script on 2019-03-27 +version = "7.x-2.2" core = "7.x" project = "module_filter" -datestamp = "1424631189" - +datestamp = "1553698385" diff --git a/sites/all/modules/contrib/admin/module_filter/module_filter.install b/sites/all/modules/contrib/admin/module_filter/module_filter.install index c39b3d12..529d8360 100644 --- a/sites/all/modules/contrib/admin/module_filter/module_filter.install +++ b/sites/all/modules/contrib/admin/module_filter/module_filter.install @@ -19,6 +19,8 @@ function module_filter_uninstall() { variable_del('module_filter_track_recent_modules'); variable_del('module_filter_remember_active_tab'); variable_del('module_filter_remember_update_state'); + variable_del('module_filter_version_column'); + variable_del('module_filter_expanded_description'); } /** diff --git a/sites/all/modules/contrib/admin/module_filter/module_filter.module b/sites/all/modules/contrib/admin/module_filter/module_filter.module index 42b39135..17059ece 100644 --- a/sites/all/modules/contrib/admin/module_filter/module_filter.module +++ b/sites/all/modules/contrib/admin/module_filter/module_filter.module @@ -18,8 +18,8 @@ function module_filter_permission() { return array( 'administer module filter' => array( 'title' => t('Administer Module Filter'), - 'description' => t('Configure how Module Filter performs.') - ) + 'description' => t('Configure how Module Filter performs.'), + ), ); } @@ -33,7 +33,7 @@ function module_filter_menu() { 'access arguments' => array('administer module filter'), 'page callback' => 'drupal_get_form', 'page arguments' => array('module_filter_settings'), - 'file' => 'module_filter.admin.inc' + 'file' => 'module_filter.admin.inc', ); return $items; } @@ -63,32 +63,32 @@ function module_filter_form_system_modules_alter(&$form, &$form_state, $form_id) '#type' => 'module_filter', '#attached' => array( 'js' => array( - drupal_get_path('module', 'module_filter') . '/js/modules.js' - ) - ) + drupal_get_path('module', 'module_filter') . '/js/modules.js' => array('weight' => 1), + ), + ), ); $checkbox_defaults = array( ((isset($_GET['enabled'])) ? $_GET['enabled'] : 1) ? 'enabled' : '', ((isset($_GET['disabled'])) ? $_GET['disabled'] : 1) ? 'disabled' : '', ((isset($_GET['required'])) ? $_GET['required'] : 1) ? 'required' : '', - ((isset($_GET['unavailable'])) ? $_GET['unavailable'] : 1) ? 'unavailable' : '' + ((isset($_GET['unavailable'])) ? $_GET['unavailable'] : 1) ? 'unavailable' : '', ); $form['module_filter']['show'] = array( '#type' => 'checkboxes', '#default_value' => array_filter($checkbox_defaults), '#options' => array('enabled' => t('Enabled'), 'disabled' => t('Disabled'), 'required' => t('Required'), 'unavailable' => t('Unavailable')), '#prefix' => '
    ', - '#suffix' => '
    ' + '#suffix' => '', ); if (variable_get('module_filter_tabs', 1)) { - $form['module_filter']['#attached']['css'][] = drupal_get_path('module', 'module_filter') .'/css/module_filter_tab.css'; + $form['module_filter']['#attached']['css'][] = drupal_get_path('module', 'module_filter') . '/css/module_filter_tab.css'; $form['module_filter']['#attached']['library'][] = array('system', 'jquery.bbq'); - $form['module_filter']['#attached']['js'][] = drupal_get_path('module', 'module_filter') .'/js/module_filter_tab.js'; + $form['module_filter']['#attached']['js'][drupal_get_path('module', 'module_filter') . '/js/module_filter_tab.js'] = array('weight' => 2); if (!module_exists('page_actions') && variable_get('module_filter_dynamic_save_position', 1)) { - $form['module_filter']['#attached']['css'][] = drupal_get_path('module', 'module_filter') .'/css/dynamic_position.css'; - $form['module_filter']['#attached']['js'][] = drupal_get_path('module', 'module_filter') .'/js/dynamic_position.js'; + $form['module_filter']['#attached']['css'][] = drupal_get_path('module', 'module_filter') . '/css/dynamic_position.css'; + $form['module_filter']['#attached']['js'][drupal_get_path('module', 'module_filter') . '/js/dynamic_position.js'] = array('weight' => 3); } $form['#attached']['css'][] = drupal_get_path('module', 'module_filter') . '/css/modules.css'; @@ -128,7 +128,7 @@ function module_filter_element_info() { '#process' => array('form_process_module_filter', 'ajax_process_form'), '#weight' => -1, '#tree' => TRUE, - '#theme' => 'module_filter' + '#theme' => 'module_filter', ); return $types; } @@ -153,6 +153,18 @@ function module_filter_theme() { ); } +/** + * Create and add new textfield element. + * + * @param $element + * An associative array containing the properties and children of the + * form actions container. + * @param $form_state + * The $form_state array for the form this element belongs to. + * + * @return + * The processed element. + */ function form_process_module_filter($element, &$form_state) { $element['name'] = array( '#type' => 'textfield', @@ -163,7 +175,7 @@ function form_process_module_filter($element, &$form_state) { '#attributes' => ((isset($element['#attributes'])) ? $element['#attributes'] : array()) + array('autocomplete' => 'off'), '#attached' => array( 'css' => array( - drupal_get_path('module', 'module_filter') . '/css/module_filter.css' + drupal_get_path('module', 'module_filter') . '/css/module_filter.css', ), 'js' => array( 'misc/jquery.cookie.js', @@ -182,12 +194,13 @@ function form_process_module_filter($element, &$form_state) { 'trackRecent' => variable_get('module_filter_track_recent_modules', 1), 'rememberActiveTab' => variable_get('module_filter_remember_active_tab', 1), 'rememberUpdateState' => variable_get('module_filter_remember_update_state', 0), - ) + 'expandedDescription' => variable_get('module_filter_expanded_description', 0), + ), ), - 'type' => 'setting' - ) - ) - ) + 'type' => 'setting', + ), + ), + ), ); if (isset($element['#description'])) { $element['name']['#description'] = $element['#description']; @@ -195,15 +208,18 @@ function form_process_module_filter($element, &$form_state) { return $element; } +/** + * Form submission handler to filters module list. + */ function module_filter_system_modules_submit_redirect($form, &$form_state) { $query = array(); if (!empty($form_state['values']['module_filter']['name'])) { $query['filter'] = $form_state['values']['module_filter']['name']; } - $query['enabled'] = (int)(!empty($form_state['values']['module_filter']['show']['enabled'])); - $query['disabled'] = (int)(!empty($form_state['values']['module_filter']['show']['disabled'])); - $query['required'] = (int)(!empty($form_state['values']['module_filter']['show']['required'])); - $query['unavailable'] = (int)(!empty($form_state['values']['module_filter']['show']['unavailable'])); + $query['enabled'] = (int) (!empty($form_state['values']['module_filter']['show']['enabled'])); + $query['disabled'] = (int) (!empty($form_state['values']['module_filter']['show']['disabled'])); + $query['required'] = (int) (!empty($form_state['values']['module_filter']['show']['required'])); + $query['unavailable'] = (int) (!empty($form_state['values']['module_filter']['show']['unavailable'])); $form_state['redirect'] = array( 'admin/modules', @@ -211,6 +227,9 @@ function module_filter_system_modules_submit_redirect($form, &$form_state) { ); } +/** + * Form submission handler to track recently enabled/disabled modules + */ function module_filter_system_modules_submit_recent($form, &$form_state) { $recent_modules = variable_get('module_filter_recent_modules', array()); @@ -225,6 +244,11 @@ function module_filter_system_modules_submit_recent($form, &$form_state) { variable_set('module_filter_recent_modules', $recent_modules); } +/** + * Create list of newly added modules (within a week) + * @return + * An array of newly added modules. + */ function module_filter_new_modules() { // Get current list of modules. $files = system_rebuild_module_data(); @@ -249,12 +273,24 @@ function module_filter_new_modules() { return $new_modules; } +/** + * Function to replace special characters with hyphen. + * @param string $text + * @return + * String + */ function module_filter_get_id($text) { $id = strtolower($text); $id = preg_replace('/([^a-z0-9]+)/', '-', $id); return trim($id, '-'); } +/** + * Function to return true/false depending on module changed time and a week timestamp + * @param integer $var + * @return + * Boolean indicating + */ function module_filter_recent_filter($var) { - return (!($var < REQUEST_TIME - 60*60*24*7)); + return (!($var < REQUEST_TIME - 60 * 60 * 24 * 7)); } diff --git a/sites/all/modules/contrib/admin/module_filter/module_filter.pages.inc b/sites/all/modules/contrib/admin/module_filter/module_filter.pages.inc index a4c23495..a18fbc5f 100644 --- a/sites/all/modules/contrib/admin/module_filter/module_filter.pages.inc +++ b/sites/all/modules/contrib/admin/module_filter/module_filter.pages.inc @@ -1,5 +1,9 @@ drupal_get_form('module_filter_update_status_form'), 'update_report' => array( - '#markup' => $update_report - ) + '#markup' => $update_report, + ), ); } +/** + * Form builder for the module filter form. + */ function module_filter_update_status_form($form, &$form_state) { $form['module_filter'] = array( '#type' => 'module_filter', '#attached' => array( 'css' => array( - drupal_get_path('module', 'module_filter') . '/css/update_status.css' + drupal_get_path('module', 'module_filter') . '/css/update_status.css', ), 'js' => array( - drupal_get_path('module', 'module_filter') . '/js/update_status.js' + drupal_get_path('module', 'module_filter') . '/js/update_status.js', ), ), ); @@ -34,7 +41,7 @@ function module_filter_update_status_form($form, &$form_state) { '#default_value' => (isset($_GET['show']) && in_array($_GET['show'], array('all', 'updates', 'security', 'unknown'))) ? $_GET['show'] : 'all', '#options' => array('all' => t('All'), 'updates' => t('Update available'), 'security' => t('Security update'), 'unknown' => t('Unknown')), '#prefix' => '
    ', - '#suffix' => '
    ' + '#suffix' => '', ); if (module_exists('update_advanced')) { $options = $form['module_filter']['show']['#options']; diff --git a/sites/all/modules/contrib/admin/module_filter/module_filter.theme.inc b/sites/all/modules/contrib/admin/module_filter/module_filter.theme.inc index b199bedf..2d00ab78 100644 --- a/sites/all/modules/contrib/admin/module_filter/module_filter.theme.inc +++ b/sites/all/modules/contrib/admin/module_filter/module_filter.theme.inc @@ -37,6 +37,9 @@ function theme_module_filter_system_modules_tabs($variables) { array('data' => t('Description'), 'class' => array('description')), array('data' => t('Links'), 'class' => array('links')), ); + if (variable_get('module_filter_version_column', 0)) { + array_splice($header, 2, 0, array(array('data' => t('Version'), 'class' => array('version')))); + } $package_ids = array('all'); $enabled['all'] = array(); @@ -101,11 +104,18 @@ function theme_module_filter_system_modules_tabs($variables) { } $row[] = array('class' => array('name'), 'data' => $label . '>' . drupal_render($module['name']) . ' (' . $key . ')'); + if (variable_get('module_filter_version_column', 0) && $version) { + $row[] = array('class' => array('version'), 'data' => drupal_render($module['version'])); + } + // Add the description, along with any modules it requires. + if (empty($module['description']['#markup'])) { + $module['description']['#markup'] = '' . t('No description available.') . ''; + } $description = '' . drupal_render($module['description']) . ''; - if ($version || $requires || $required_by) { + if ($requires || $required_by || (!variable_get('module_filter_version_column', 0) && $version)) { $description .= '
    '; - if ($version) { + if (!variable_get('module_filter_version_column', 0) && $version) { $description .= '
    ' . t('Version: !module-version', array('!module-version' => drupal_render($module['version']))) . '
    '; } if ($requires) { @@ -136,21 +146,20 @@ function theme_module_filter_system_modules_tabs($variables) { $form['modules'][$package]['#printed'] = TRUE; } - if (variable_get('module_filter_count_enabled', 1)) { - $enabled_counts = array(); - foreach ($enabled as $package_id => $value) { - $enabled_counts[$package_id] = array( - 'enabled' => count(array_filter($value)), - 'total' => count($value), - ); - } - drupal_add_js(array( - 'moduleFilter' => array( - 'packageIDs' => $package_ids, - 'enabledCounts' => $enabled_counts, - ) - ), 'setting'); + //Get packages and count number of modules + $enabled_counts = array(); + foreach ($enabled as $package_id => $value) { + $enabled_counts[$package_id] = array( + 'enabled' => count(array_filter($value)), + 'total' => count($value), + ); } + drupal_add_js(array( + 'moduleFilter' => array( + 'packageIDs' => $package_ids, + 'enabledCounts' => $enabled_counts, + ) + ), 'setting'); // Add first and last class to rows. $rows[0]['class'][] = 'first'; @@ -165,6 +174,12 @@ function theme_module_filter_system_modules_tabs($variables) { return $output; } +/** + * Theme function for module filter operations. + * @param $variables + * @return + * HTML for admin status operations. + */ function theme_module_filter_operations(&$vars) { $links = &$vars['links']; $dropbutton = $vars['dropbutton']; @@ -174,16 +189,19 @@ function theme_module_filter_operations(&$vars) { if ($dropbutton) { hide($links[$key]); if (!empty($links[$key]['#href'])) { - $operations[] = array( + $operations[$key] = array( 'title' => $links[$key]['#title'], 'href' => $links[$key]['#href'], ); + if (isset($links[$key]['#options'])) { + $operations[$key] += $links[$key]['#options']; + } } } else { $data = drupal_render($links[$key]); if (!empty($data)) { - $operations[] = array('data' => $data); + $operations[$key] = array('data' => $data); } } } diff --git a/sites/all/modules/contrib/dev/entity/entity.info b/sites/all/modules/contrib/dev/entity/entity.info index 787db138..0b865a04 100644 --- a/sites/all/modules/contrib/dev/entity/entity.info +++ b/sites/all/modules/contrib/dev/entity/entity.info @@ -25,9 +25,9 @@ files[] = views/handlers/entity_views_handler_field_uri.inc files[] = views/handlers/entity_views_handler_relationship_by_bundle.inc files[] = views/handlers/entity_views_handler_relationship.inc files[] = views/plugins/entity_views_plugin_row_entity_view.inc -; Information added by Drupal.org packaging script on 2016-09-22 -version = "7.x-1.8" +; Information added by Drupal.org packaging script on 2018-02-14 +version = "7.x-1.9" core = "7.x" project = "entity" -datestamp = "1474546503" +datestamp = "1518620551" diff --git a/sites/all/modules/contrib/dev/entity/entity.module b/sites/all/modules/contrib/dev/entity/entity.module index d00afa46..da0acf69 100644 --- a/sites/all/modules/contrib/dev/entity/entity.module +++ b/sites/all/modules/contrib/dev/entity/entity.module @@ -1088,9 +1088,10 @@ function entity_flush_caches() { // Care about entitycache tables. if (module_exists('entitycache')) { $tables = array(); - foreach (entity_crud_get_info() as $entity_type => $entity_info) { - if (isset($entity_info['module']) && !empty($entity_info['entity cache'])) { - $tables[] = 'cache_entity_' . $entity_type; + $tables_created = variable_get('entity_cache_tables_created'); + if (is_array($tables_created)) { + foreach ($tables_created as $module => $entity_cache_tables) { + $tables = array_merge($tables, $entity_cache_tables); } } return $tables; diff --git a/sites/all/modules/contrib/dev/entity/entity_token.info b/sites/all/modules/contrib/dev/entity/entity_token.info index cc732945..c59c6502 100644 --- a/sites/all/modules/contrib/dev/entity/entity_token.info +++ b/sites/all/modules/contrib/dev/entity/entity_token.info @@ -5,9 +5,9 @@ files[] = entity_token.tokens.inc files[] = entity_token.module dependencies[] = entity -; Information added by Drupal.org packaging script on 2016-09-22 -version = "7.x-1.8" +; Information added by Drupal.org packaging script on 2018-02-14 +version = "7.x-1.9" core = "7.x" project = "entity" -datestamp = "1474546503" +datestamp = "1518620551" diff --git a/sites/all/modules/contrib/dev/entity/includes/entity.wrapper.inc b/sites/all/modules/contrib/dev/entity/includes/entity.wrapper.inc index 6c262e69..860d2c33 100644 --- a/sites/all/modules/contrib/dev/entity/includes/entity.wrapper.inc +++ b/sites/all/modules/contrib/dev/entity/includes/entity.wrapper.inc @@ -121,7 +121,7 @@ abstract class EntityMetadataWrapper { if (!$this->validate($value)) { throw new EntityMetadataWrapperException(t('Invalid data value given. Be sure it matches the required data type and format. Value at !location: !value.', array( // An exception's message is output through check_plain(). - '!value' => is_array($value) || is_object($value) ? var_export($value) : $value, + '!value' => is_array($value) || is_object($value) ? var_export($value, TRUE) : $value, '!location' => $this->debugIdentifierLocation(), ))); } @@ -755,7 +755,7 @@ class EntityDrupalWrapper extends EntityStructureWrapper { if (!$this->validate($value)) { throw new EntityMetadataWrapperException(t('Invalid data value given. Be sure it matches the required data type and format. Value at !location: !value.', array( // An exception's message is output through check_plain(). - '!value' => is_array($value) || is_object($value) ? var_export($value) : $value, + '!value' => is_array($value) || is_object($value) ? var_export($value, TRUE) : $value, '!location' => $this->debugIdentifierLocation(), ))); } @@ -1116,7 +1116,7 @@ class EntityListWrapper extends EntityMetadataWrapper implements IteratorAggrega */ public function getIterator() { // In case there is no data available, just iterate over the first item. - return new EntityMetadataWrapperIterator($this, $this->dataAvailable() ? array_keys(parent::value()) : array(0)); + return new EntityMetadataWrapperIterator($this, ($this->dataAvailable() && is_array(parent::value())) ? array_keys(parent::value()) : array(0)); } /** diff --git a/sites/all/modules/contrib/dev/entity/modules/callbacks.inc b/sites/all/modules/contrib/dev/entity/modules/callbacks.inc index 0c5c8eef..ee156ab3 100644 --- a/sites/all/modules/contrib/dev/entity/modules/callbacks.inc +++ b/sites/all/modules/contrib/dev/entity/modules/callbacks.inc @@ -673,7 +673,7 @@ function entity_metadata_no_hook_node_access($op, $node = NULL, $account = NULL) if (empty($node->vid) && in_array($op, array('create', 'update'))) { // This is a new node or the original node. if (isset($node->type)) { - $op = !empty($node->is_new) && $node->is_new ? 'create' : 'update'; + $op = empty($node->nid) || !empty($node->is_new) ? 'create' : 'update'; return node_access($op, $op == 'create' ? $node->type : $node, $account); } else { diff --git a/sites/all/modules/contrib/dev/entity/tests/entity_feature.info b/sites/all/modules/contrib/dev/entity/tests/entity_feature.info index 3e398961..524fdfaf 100644 --- a/sites/all/modules/contrib/dev/entity/tests/entity_feature.info +++ b/sites/all/modules/contrib/dev/entity/tests/entity_feature.info @@ -6,9 +6,9 @@ files[] = entity_feature.module dependencies[] = entity_test hidden = TRUE -; Information added by Drupal.org packaging script on 2016-09-22 -version = "7.x-1.8" +; Information added by Drupal.org packaging script on 2018-02-14 +version = "7.x-1.9" core = "7.x" project = "entity" -datestamp = "1474546503" +datestamp = "1518620551" diff --git a/sites/all/modules/contrib/dev/entity/tests/entity_test.info b/sites/all/modules/contrib/dev/entity/tests/entity_test.info index f1562ac6..b7cceabf 100644 --- a/sites/all/modules/contrib/dev/entity/tests/entity_test.info +++ b/sites/all/modules/contrib/dev/entity/tests/entity_test.info @@ -7,9 +7,9 @@ files[] = entity_test.install dependencies[] = entity hidden = TRUE -; Information added by Drupal.org packaging script on 2016-09-22 -version = "7.x-1.8" +; Information added by Drupal.org packaging script on 2018-02-14 +version = "7.x-1.9" core = "7.x" project = "entity" -datestamp = "1474546503" +datestamp = "1518620551" diff --git a/sites/all/modules/contrib/dev/entity/tests/entity_test_i18n.info b/sites/all/modules/contrib/dev/entity/tests/entity_test_i18n.info index db1eb56a..4ca048af 100644 --- a/sites/all/modules/contrib/dev/entity/tests/entity_test_i18n.info +++ b/sites/all/modules/contrib/dev/entity/tests/entity_test_i18n.info @@ -5,9 +5,9 @@ dependencies[] = i18n_string package = Multilingual - Internationalization core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2016-09-22 -version = "7.x-1.8" +; Information added by Drupal.org packaging script on 2018-02-14 +version = "7.x-1.9" core = "7.x" project = "entity" -datestamp = "1474546503" +datestamp = "1518620551" diff --git a/sites/all/modules/contrib/dev/entity/views/handlers/entity_views_handler_area_entity.inc b/sites/all/modules/contrib/dev/entity/views/handlers/entity_views_handler_area_entity.inc index f3746942..0c5b7143 100644 --- a/sites/all/modules/contrib/dev/entity/views/handlers/entity_views_handler_area_entity.inc +++ b/sites/all/modules/contrib/dev/entity/views/handlers/entity_views_handler_area_entity.inc @@ -40,7 +40,7 @@ class entity_views_handler_area_entity extends views_handler_area { $form['entity_id'] = array( '#type' => 'textfield', '#title' => t('Entity id'), - '#description' => t('Choose the entity you want to display in the area.'), + '#description' => t('Choose the entity you want to display in the area. To render an entity given by a contextual filter use "%1" for the first argument, "%2" for the second, etc.'), '#default_value' => $this->options['entity_id'], ); @@ -105,6 +105,9 @@ class entity_views_handler_area_entity extends views_handler_area { * Render an entity using the view mode. */ public function render_entity($entity_type, $entity_id, $view_mode) { + $tokens = $this->get_render_tokens(); + // Replace argument tokens in entity id. + $entity_id = strtr($entity_id, $tokens); if (!empty($entity_type) && !empty($entity_id) && !empty($view_mode)) { $entity = entity_load_single($entity_type, $entity_id); if (!empty($this->options['bypass_access']) || entity_access('view', $entity_type, $entity)) { @@ -117,4 +120,31 @@ class entity_views_handler_area_entity extends views_handler_area { return ''; } } + + /** + * Get the 'render' tokens to use for advanced rendering. + * + * This runs through all of the fields and arguments that + * are available and gets their values. This will then be + * used in one giant str_replace(). + */ + function get_render_tokens() { + $tokens = array(); + if (!empty($this->view->build_info['substitutions'])) { + $tokens = $this->view->build_info['substitutions']; + } + $count = 0; + foreach ($this->view->display_handler->get_handlers('argument') as $arg => $handler) { + $token = '%' . ++$count; + if (!isset($tokens[$token])) { + $tokens[$token] = ''; + } + // Use strip tags as there should never be HTML in the path. + // However, we need to preserve special characters like " that + // were removed by check_plain(). + $tokens['%' . $count] = $handler->argument; + } + + return $tokens; + } } diff --git a/sites/all/modules/contrib/users/genpass/LICENSE.txt b/sites/all/modules/contrib/users/genpass/LICENSE.txt old mode 100755 new mode 100644 diff --git a/sites/all/modules/contrib/users/genpass/genpass.css b/sites/all/modules/contrib/users/genpass/genpass.css deleted file mode 100755 index fc10c690..00000000 --- a/sites/all/modules/contrib/users/genpass/genpass.css +++ /dev/null @@ -1,3 +0,0 @@ -.genpass-password { - white-space: nowrap; -} diff --git a/sites/all/modules/contrib/users/genpass/genpass.info b/sites/all/modules/contrib/users/genpass/genpass.info old mode 100755 new mode 100644 index be0d3e34..62895820 --- a/sites/all/modules/contrib/users/genpass/genpass.info +++ b/sites/all/modules/contrib/users/genpass/genpass.info @@ -3,9 +3,8 @@ description = Generate a password when adding a new user. core = 7.x configure = admin/config/people/accounts -; Information added by drupal.org packaging script on 2012-02-20 -version = "7.x-1.0" +; Information added by Drupal.org packaging script on 2018-06-26 +version = "7.x-1.1" core = "7.x" project = "genpass" -datestamp = "1329772844" - +datestamp = "1530031732" diff --git a/sites/all/modules/contrib/users/genpass/genpass.install b/sites/all/modules/contrib/users/genpass/genpass.install old mode 100755 new mode 100644 diff --git a/sites/all/modules/contrib/users/genpass/genpass.module b/sites/all/modules/contrib/users/genpass/genpass.module old mode 100755 new mode 100644 index 4629453f..c9145652 --- a/sites/all/modules/contrib/users/genpass/genpass.module +++ b/sites/all/modules/contrib/users/genpass/genpass.module @@ -9,13 +9,6 @@ define('GENPASS_DISPLAY_ADMIN', 1); define('GENPASS_DISPLAY_USER', 2); define('GENPASS_DISPLAY_BOTH', 3); -/** - * Implements of hook_init(). - */ -function genpass_init() { - drupal_add_css(drupal_get_path('module', 'genpass') . '/genpass.css'); -} - /** * Defines default characters allowed for passwords. */ @@ -33,27 +26,31 @@ function genpass_generate() { } /** - * Generate a new password using genpass's internal password generation - * algorithm. - * Based on the original D6 user_password function (with more characters) + * Generates random password. * - * @return a fresh password according to the settings made in /admin/user/settings + * @see user_password() * - * @see genpass_form_alter() + * @return string + * The random string. */ function genpass_password() { $pass = ''; - $length = variable_get('genpass_length', 8); + $length = variable_get('genpass_length', 12); $allowable_characters = variable_get('genpass_entropy', _GENPASS_REQUIRED_entropy()); // Zero-based count of characters in the allowable list: $len = strlen($allowable_characters) - 1; - + // Loop the number of times specified by $length. for ($i = 0; $i < $length; $i++) { + do { + // Find a secure random number within the range needed. + $index = ord(drupal_random_bytes(1)); + } while ($index > $len); + // Each iteration, pick a random character from the // allowable string and append it to the password: - $pass .= $allowable_characters[mt_rand(0, $len)]; + $pass .= $allowable_characters[$index]; } return $pass; @@ -63,7 +60,7 @@ function genpass_password() { /** * Helper function to find a item in the user form, since its position * within the form-array depends on the profile module (account-category). - */ + */ function &_genpass_get_form_item(&$form, $field) { if (isset($form['account'][$field])) { return $form['account'][$field]; @@ -97,7 +94,7 @@ function genpass_form_alter(&$form, $form_state, $form_id) { $form['registration_cancellation']['genpass_length'] = array( '#type' => 'textfield', '#title' => t('Generated password length'), - '#default_value' => variable_get('genpass_length', 8), + '#default_value' => variable_get('genpass_length', 12), '#size' => 2, '#maxlength' => 2, '#description' => t('Set the length of generated passwords here. Allowed range: 5 to 32.'), @@ -118,7 +115,7 @@ function genpass_form_alter(&$form, $form_state, $form_id) { '#default_value' => genpass_algorithm_module(), '#options' => genpass_add_samples(genpass_algorithm_modules()), '#description' => t('If third party modules define a password generation algorithm, you can select which one to use. Note that algorithms other than genpass will ignore the preferred entropy and password length. The currently selected algorithm produced the password @pw.', array('@pw' => genpass_generate())), - ); + ); $form['registration_cancellation']['genpass_display'] = array( '#type' => 'radios', '#title' => t('Generated password display'), @@ -139,25 +136,25 @@ function genpass_form_alter(&$form, $form_state, $form_id) { // User registration form at admin/people/create case 'user_register_form': $mode = variable_get('genpass_mode', GENPASS_REQUIRED); - + // Add validation function, where password may get set $form['#validate'][] = 'genpass_register_validate'; - + // Administrator is creating the user - if ($_GET['q'] == 'admin/user/user/create') { + if ($_GET['q'] == 'admin/people/create') { // Switch to optional mode $mode = GENPASS_OPTIONAL; // Help avoid obvious consequence of password being optional $notify_item =& _genpass_get_form_item($form, 'notify'); $notify_item['#description'] = t('This is recommended when auto-generating the password; otherwise, neither you nor the new user will know the password.'); } - + // Pass mode to validation function $form['genpass_mode'] = array( '#type' => 'value', '#value' => $mode, ); - + $pass_item =& _genpass_get_form_item($form, 'pass'); switch ($mode) { // If password is optional, don't require it, and give the user an @@ -174,7 +171,7 @@ function genpass_form_alter(&$form, $form_state, $form_id) { } break; } - + } /** @@ -200,38 +197,44 @@ function genpass_user_admin_settings_validate($form, &$form_state) { * User registration validation. */ function genpass_register_validate($form, &$form_state) { - if (empty($form_state['values']['pass']) && !form_get_errors()) { - - // Generate and set password + if (empty($form_state['values']['pass'])) { + // Generate and set password. $pass = genpass_generate(); $pass_item =& _genpass_get_form_item($form, 'pass'); form_set_value($pass_item, $pass, $form_state); - $display = variable_get('genpass_display', GENPASS_DISPLAY_BOTH); + if (!form_get_errors()) { + $display = variable_get('genpass_display', GENPASS_DISPLAY_BOTH); - // Administrator created the user. - if ($_GET['q'] == 'admin/people/create') { - $message = t('Since you did not provide a password, it was generated automatically for this account.'); - if (in_array($display, array(GENPASS_DISPLAY_ADMIN, GENPASS_DISPLAY_BOTH))) { - $message .= ' ' . t('The password is: !password', array('!password' => $pass)); - } - } - // Optional - User did not provide password, so it was generated - elseif ($form_state['values']['genpass_mode'] == GENPASS_OPTIONAL) { - $message = t('Since you did not provide a password, it was generated for you.'); - if (in_array($display, array(GENPASS_DISPLAY_USER, GENPASS_DISPLAY_BOTH))) { - $message .= ' ' . t('Your password is: !password', array('!password' => $pass)); - } - } - // Restricted - User was forced to receive a generated password - elseif ($form_state['values']['genpass_mode'] == GENPASS_RESTRICTED && in_array($display, array(GENPASS_DISPLAY_USER, GENPASS_DISPLAY_BOTH))) { - $message = t('The following password was generated for you: !password', array('!password' => $pass)); - } + // Administrator created the user. + if ($_GET['q'] == 'admin/people/create') { + $message = t('Since you did not provide a password, it was generated automatically for this account.'); - if (!empty($message)) { - drupal_set_message($message); + if (in_array($display, array(GENPASS_DISPLAY_ADMIN, GENPASS_DISPLAY_BOTH))) { + $message .= ' ' . t('The password is: @password', array('@password' => $pass)); + } + } + + // Optional - User did not provide password, so it was generated + elseif ($form_state['values']['genpass_mode'] == GENPASS_OPTIONAL) { + $message = t('Since you did not provide a password, it was generated for you.'); + + if (in_array($display, array(GENPASS_DISPLAY_USER, GENPASS_DISPLAY_BOTH))) { + $message .= ' ' . t('Your password is: @password', array('@password' => $pass)); + } + } + + // Restricted - User was forced to receive a generated password + elseif ($form_state['values']['genpass_mode'] == GENPASS_RESTRICTED && in_array($display, array(GENPASS_DISPLAY_USER, GENPASS_DISPLAY_BOTH))) { + $message = t('The following password was generated for you: @password', array('@password' => $pass)); + } + + if (!empty($message)) { + drupal_set_message($message); + } } } + return $form; } @@ -261,7 +264,7 @@ function genpass_algorithm_modules() { function genpass_algorithm_module() { $modules = genpass_algorithm_modules(); $module = variable_get('genpass_algorithm', 'genpass'); - + if (in_array($module, array_keys($modules))) { return $module; }