Score:0

ฉันจะให้สิทธิ์แก่บทบาทในการล้างแคชได้อย่างไร

ธง us

ฉันถอด จัดการการกำหนดค่าไซต์ ได้รับอนุญาตจากบทบาท แต่ฉันต้องการผู้ใช้ที่มีบทบาทนั้นเพื่อล้างแคชจาก /admin/config/development/performance

ฉันรู้ว่ามี hook_menu_alter() ใน Drupal 7 แล้ว Drupal 8 ล่ะ?

leymannx avatar
ne flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [จะให้บทบาท 'ผู้แก้ไข' สร้างใหม่/สิทธิ์ล้างแคชได้อย่างไร](https://drupal.stackexchange.com/questions/234270/how-to-give-an-editor-role-rebuild-clear-cache-permission )
Score:1
ธง us

คุณสามารถแก้ไขการอนุญาตที่ใช้เพื่อเข้าถึงเส้นทางตามที่อธิบายไว้ใน การแก้ไขเส้นทางที่มีอยู่และเพิ่มเส้นทางใหม่ตามเส้นทางแบบไดนามิก. ในกรณีเฉพาะ รหัสที่ใช้ใน alterRoutes(คอลเลคชัน RouteCollection $) จะเป็นดังต่อไปนี้

ตั้งแต่ จัดการประสิทธิภาพของไซต์ สิทธิ์เป็นสิทธิ์ที่กำหนดเอง จำเป็นต้องเพิ่มเป็นสิทธิ์ใหม่โดยโมดูลที่ใช้คลาสผู้สมัครสมาชิกเส้นทาง ตามที่อธิบายไว้ใน วิธีสร้างสิทธิ์แบบกำหนดเองบน Drupal 8 - 9.

สำหรับโมดูลที่มีชื่อเครื่อง โมดูลของฉันรหัสจะคล้ายกับรหัสต่อไปนี้

mymodule.permissions.yml

จัดการประสิทธิภาพของไซต์:
  ชื่อเรื่อง: 'จัดการประสิทธิภาพของไซต์'
  คำอธิบาย: 'เข้าสู่หน้าการตั้งค่าประสิทธิภาพของไซต์'
  จำกัดการเข้าถึง: จริง

mymodule.services.yml

บริการ:
  mymodule.route_subscriber:
    คลาส: Drupal\mymodule\Routing\RouteSubscriber
    แท็ก:
      - { ชื่อ: event_subscriber }

src/Routing/RouteSubscriber.php

เนมสเปซ Drupal\mymodule\Routing;

ใช้ Drupal\Core\Routing\RouteSubscriberBase;
ใช้ Symfony\Component\Routing\RouteCollection;

/**
 * ฟังเหตุการณ์เส้นทางแบบไดนามิก
 */
คลาส RouteSubscriber ขยาย RouteSubscriberBase {

  /**
   * {@inheritdoc}
   */
  ฟังก์ชันที่ได้รับการป้องกัน alterRoutes (RouteCollection $collection) {
    ถ้า ($route = $collection->get('system.performance_settings')) {
      $route->setRequirement('_permission', 'ดูแลประสิทธิภาพของไซต์');
    }
  }

}

หากผู้ใช้ที่มีบทบาทนั้นไม่ควรเข้าถึงการตั้งค่าในหน้านั้น (เก็บเอาไว้ และ การเพิ่มประสิทธิภาพแบนด์วิธ) แต่สามารถล้างแคชได้เท่านั้น ฉันจะใช้เส้นทางที่กำหนดเองซึ่งแสดงแบบฟอร์มการยืนยันและล้างแคช (ซึ่งหมายถึงการโทร drupal_flush_all_caches()) เมื่อผู้ใช้ยืนยันการดำเนินการ

ANDREW-LVIV avatar
us flag
ขอบคุณ! ทำงานเหมือนจับใจ
leymannx avatar
ne flag
นั่นจะเป็นคำตอบที่ยอดเยี่ยมสำหรับ https://drupal.stackexchange.com/questions/234270/how-to-give-an-editor-role-rebuild-clear-cache-permission
apaderno avatar
us flag
@leymannx ฉันควรขยายคำตอบเพื่อแสดงรหัสมากกว่าที่เป็น รวมถึงรหัสที่จะใช้ในสถานการณ์ที่สอง
ANDREW-LVIV avatar
us flag
คำแนะนำปัจจุบันคือสิ่งที่ฉันกำลังมองหา

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา