Commit e994a9b2 authored by sagesolutions's avatar sagesolutions Committed by Artem Sylchuk
Browse files

Issue #3051300 by sagesolutions, artem_sylchuk: Delete a message in the conversation

parent 19f7dc87
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
private_message.delete:
  route_name: entity.private_message.delete
  title: 'Delete'
  group: private_message
+12 −0
Original line number Diff line number Diff line
@@ -7,3 +7,15 @@ private_message.private_message_thread_settings_tab:
  route_name: private_message.private_message_thread_settings
  title: Settings
  base_route: private_message.private_message_thread_settings

private_message.view:
  route_name: entity.private_message.canonical
  title: 'View'
  base_route: entity.private_message.canonical
  class: '\Drupal\private_message\Plugin\Menu\PrivateMessageTab'

private_message.delete:
  route_name: entity.private_message.delete
  title: 'Delete'
  base_route: entity.private_message.canonical
  class: '\Drupal\private_message\Plugin\Menu\PrivateMessageTab'
+9 −0
Original line number Diff line number Diff line
@@ -11,6 +11,15 @@ administer private messages:
  description: 'Allows administrators to administer private messages'
  restrict access: true

delete any private message:
  title: 'Delete any private message'
  description: 'Allows administrators to delete private messages'
  restrict access: TRUE

delete own private message:
  title: 'Delete own private message'
  description: 'Allows users to delete their sent private messages'

administer private message module:
  title: 'Administer private message module'
  description: 'Allows administrators to manage all parts of the One Page Private Message module'
+12 −3
Original line number Diff line number Diff line
@@ -57,6 +57,15 @@ entity.private_message.canonical:
    _entity_access: 'private_message.view'
    _permission: 'use private messaging system,access user profiles'

entity.private_message.delete:
  path: '/private-message/{private_message}/delete'
  defaults:
    _entity_form: 'private_message.delete'
    _title: 'Delete Private Message'
  requirements:
    private_message: \d+
    _entity_access: 'private_message.delete'

private_message.admin_structure:
  path: '/admin/structure/private-message'
  defaults:
+10 −6
Original line number Diff line number Diff line
@@ -74,19 +74,23 @@ class PrivateMessageAccessControlHandler extends EntityAccessControlHandler impl
            return AccessResult::allowed();
          }

          if ($account->hasPermission('administer private messages')) {
            return AccessResult::allowed();
          }

          break;

        case 'delete':
          if ($entity->getOwnerId() == $account->id()) {
            return AccessResult::allowed();
            return AccessResult::allowedIfHasPermissions($account,
              [
                'delete own private message',
                'delete any private message',
              ], 'OR');
          }

          $private_message_thread = $this->privateMessageService->getThreadFromMessage($entity);
          if ($private_message_thread->isMember($account->id())) {
            return AccessResult::allowed();
          }
          return AccessResult::allowedIfHasPermission($account, 'delete any private message');

          break;
      }
    }

Loading