Comments

bald_man’s picture

Assigned: Unassigned » bald_man

I take this issue for me on CodeSprintUA/CIS

bald_man’s picture

Assigned: bald_man » Unassigned
michaelhiiva’s picture

Title: Replace user_access() calls with $account->hasPermission() in contenet translation module » Replace user_access() calls with $account->hasPermission() in content translation module
michaelhiiva’s picture

Status: Active » Needs review
StatusFileSize
new4.81 KB
andypost’s picture

Issue tags: -CodeSprintCIS

Status: Needs review » Needs work

The last submitted patch, 2061961-replace-user_access-calls-4.patch, failed testing.

internetdevels’s picture

Issue summary: View changes
StatusFileSize
new9.18 KB
new6.93 KB
internetdevels’s picture

Status: Needs work » Needs review

Status: Needs review » Needs work

The last submitted patch, 7: replace-useraccess-calls-2061961-7.patch, failed testing.

ipo4ka704’s picture

Status: Needs work » Needs review

Status: Needs review » Needs work

The last submitted patch, 7: replace-useraccess-calls-2061961-7.patch, failed testing.

internetdevels’s picture

Status: Needs work » Needs review
StatusFileSize
new5.94 KB
new961 bytes
andypost’s picture

Status: Needs review » Needs work

Patch needs re-work to not use global user - see #2047951: [META] Remove calls to deprecated global $user and $GLOBALS['user']

  1. +++ b/core/modules/content_translation/content_translation.admin.inc
    @@ -60,7 +60,8 @@ function content_translation_field_sync_widget(FieldDefinitionInterface $field)
    -  if (!user_access('administer content translation')) {
    +  $account = \Drupal::currentUser();
    +  if (!$account->hasPermission('administer content translation')) {
    
    @@ -146,7 +147,8 @@ function _content_translation_form_language_content_settings_form_alter(array &$
    -  if (!user_access('administer content translation')) {
    +  $account = \Drupal::currentUser();
    +  if (!$account->hasPermission('administer content translation')) {
    

    $account is not needed here,
    just use \Drupal::currentUser()->hasPermission()

  2. +++ b/core/modules/content_translation/content_translation.module
    @@ -308,8 +308,15 @@ function _content_translation_menu_strip_loaders($path) {
    +  global $user;
    ...
    +    $account = \Drupal::currentUser() ?: $user;
    
    @@ -324,13 +331,20 @@ function content_translation_translate_access(EntityInterface $entity) {
    +  global $user;
    ...
    +    $account = \Drupal::currentUser() ?: $user;
    
    @@ -902,7 +916,14 @@ function content_translation_enable_widget($entity_type, $bundle, array &$form,
    +  global $user;
    ...
    +    $account = \Drupal::currentUser() ?: $user;
    

    global $user is the same \Drupal:currentUser()

internetdevels’s picture

Status: Needs work » Needs review
StatusFileSize
new5.47 KB
new2.74 KB
andypost’s picture

Status: Needs review » Needs work
  1. +++ b/core/modules/content_translation/content_translation.admin.inc
    @@ -60,7 +60,8 @@ function content_translation_field_sync_widget(FieldDefinitionInterface $field)
    -  if (!user_access('administer content translation')) {
    +  $account = \Drupal::currentUser();
    +  if (!$account->hasPermission('administer content translation')) {
    
    @@ -146,7 +147,8 @@ function _content_translation_form_language_content_settings_form_alter(array &$
    -  if (!user_access('administer content translation')) {
    +  $account = \Drupal::currentUser();
    +  if (!$account->hasPermission('administer content translation')) {
    
    +++ b/core/modules/content_translation/content_translation.module
    @@ -902,7 +904,8 @@ function content_translation_enable_widget($entity_type, $bundle, array &$form,
    +    $account = \Drupal::currentUser();
    +  if (empty($element['#content_translation_skip_alter']) && $account->hasPermission('administer content translation')) {
    ...
    -  if (empty($element['#content_translation_skip_alter']) && user_access('administer content translation')) {
    

    Please do not add new variable ($account), see my previous review (1)

  2. +++ b/core/modules/content_translation/content_translation.module
    @@ -324,13 +325,14 @@ function content_translation_translate_access(EntityInterface $entity) {
     function content_translation_view_access(EntityInterface $entity, $langcode, AccountInterface $account = NULL) {
    +  $account = \Drupal::currentUser();
    

    $account = $account ?: \Drupal::currentuser();
    The passed account could be different from current user

internetdevels’s picture

Status: Needs work » Needs review
StatusFileSize
new5.76 KB
new4.92 KB
andypost’s picture

Status: Needs review » Needs work

And another round...
1) Once there's more then one \Drupal::currentUser() execution it makes sense to use variable
2) Do not add extra space before \Drupal::
3) Please check carefully the functions that have $account argument passed in

  1. +++ b/core/modules/content_translation/content_translation.module
    @@ -309,7 +309,7 @@ function _content_translation_menu_strip_loaders($path) {
    +    ( \Drupal::currentUser()->hasPermission('create content translations') ||  \Drupal::currentUser()->hasPermission('update content translations') ||  \Drupal::currentUser()->hasPermission('delete content translations'));
    ...
    -    (user_access('create content translations') || user_access('update content translations') || user_access('delete content translations'));
    
    @@ -330,7 +330,7 @@ function content_translation_view_access(EntityInterface $entity, $langcode, Acc
    -  return !empty($entity->translation[$langcode]['status']) || user_access('translate any entity', $account) || user_access($permission, $account);
    +  return !empty($entity->translation[$langcode]['status']) ||  \Drupal::currentUser()->hasPermission('translate any entity', $account) ||  \Drupal::currentUser()->hasPermission($permission, $account);
    

    In case like this better revert to $account, to minimize function calls

  2. +++ b/core/modules/content_translation/lib/Drupal/content_translation/ContentTranslationController.php
    @@ -63,10 +63,10 @@ public function getTranslationAccess(EntityInterface $entity, $op) {
    +    if (! \Drupal::currentUser()->hasPermission('translate any entity') && !empty($info['permission_granularity'])) {
    +      $translate_permission =  \Drupal::currentUser()->hasPermission($info['permission_granularity'] == 'bundle' ? "translate {$entity->bundle()} {$entity->entityType()}" : "translate {$entity->entityType()}");
    ...
    +    return $translate_permission &&  \Drupal::currentUser()->hasPermission("$op content translations");
    

    the same

internetdevels’s picture

Status: Needs work » Needs review
StatusFileSize
new4.18 KB
new5.18 KB
andypost’s picture

Status: Needs review » Reviewed & tested by the community

Now it's good to go

xjm’s picture

xjm’s picture

Status: Reviewed & tested by the community » Closed (duplicate)
xjm’s picture

Status: Closed (duplicate) » Needs review
xjm’s picture

Status: Needs review » Closed (duplicate)

Oops. :)

Status: Closed (duplicate) » Needs work

Status: Closed (duplicate) » Needs work
ipo4ka704’s picture

Status: Needs work » Needs review
andypost’s picture

Status: Needs review » Closed (duplicate)

Status: Closed (duplicate) » Needs work
herom’s picture

Status: Needs work » Closed (duplicate)

testbot fun! stop that, will you?