- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开始使用 SonataAdminBundle在 Symfony2.1 应用。我开发的所有Admin
类,现在我希望添加角色以防止对此类用户组(例如非管理员用户)进行查看、列出和编辑操作。
请注意,我没有使用 SonataUserBundle(派生自 FOSUserBundle),我想使用 sonata.admin.security.handler.role
Sonata 提供的安全处理程序:ACL 对于我的小项目来说太强大了(并提供了很多开销)。
我自己的 UserBundle 提供了 User 类和 Group 类(最后用来指定每个用户的角色)。角色层次结构在我的 security.yml 文件中提供,例如:
security:
role_hierarchy:
ROLE_POST_AUTHOR: ROLE_USER
ROLE_ADMIN: [ ROLE_USER, ROLE_POST_AUTHOR]
ROLE_SUPER_ADMIN: [ ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]
sonata_admin:
security:
handler: sonata.admin.security.handler.role
最佳答案
尝试使用 ROLE_<service.name>_<RIGHT>
创建角色在哪里
<service.name>
是您的奏鸣曲管理服务名称的大写字母和点替换的下划线版本 <RIGHT>
是 ( reference ) 之一:CREATE
DELETE
EDIT
LIST
VIEW
EXPORT
OPERATOR
MASTER
role_hierarchy:
ROLE_MANAGER:
- ROLE_USER
- ROLE_SONATA_STUFF # have no effect on the UI
- ROLE_SONATA_ADMIN # with this role you have a nice navbar with search box
# user
- ROLE_SONATA_ADMIN_USER_LIST
- ROLE_SONATA_ADMIN_USER_VIEW
# product
- ROLE_SONATA_ADMIN_PRODUCT_LIST
- ROLE_SONATA_ADMIN_PRODUCT_VIEW
- ROLE_SONATA_ADMIN_PRODUCT_EDIT
# product category
- ROLE_SONATA_ADMIN_PRODUCT_CATEGORY_LIST
- ROLE_SONATA_ADMIN_PRODUCT_CATEGORY_VIEW
ROLE_ADMIN:
- ROLE_SONATA_ADMIN # with this role you have a nice navbar with search box
# user
- ROLE_SONATA_ADMIN_USER_CREATE
- ROLE_SONATA_ADMIN_USER_DELETE
- ROLE_SONATA_ADMIN_USER_EDIT
- ROLE_SONATA_ADMIN_USER_LIST
- ROLE_SONATA_ADMIN_USER_VIEW
- ROLE_SONATA_ADMIN_USER_EXPORT
- ROLE_SONATA_ADMIN_USER_OPERATOR
- ROLE_SONATA_ADMIN_USER_MASTER
# product
- ROLE_SONATA_ADMIN_PRODUCT_CREATE
- ROLE_SONATA_ADMIN_PRODUCT_DELETE
- ROLE_SONATA_ADMIN_PRODUCT_EDIT
- ROLE_SONATA_ADMIN_PRODUCT_LIST
- ROLE_SONATA_ADMIN_PRODUCT_VIEW
- ROLE_SONATA_ADMIN_PRODUCT_EXPORT
- ROLE_SONATA_ADMIN_PRODUCT_OPERATOR
- ROLE_SONATA_ADMIN_PRODUCT_MASTER
# product category
- ROLE_SONATA_ADMIN_PRODUCT_CATEGORY_CREATE
- ROLE_SONATA_ADMIN_PRODUCT_CATEGORY_DELETE
- ROLE_SONATA_ADMIN_PRODUCT_CATEGORY_EDIT
- ROLE_SONATA_ADMIN_PRODUCT_CATEGORY_LIST
- ROLE_SONATA_ADMIN_PRODUCT_CATEGORY_VIEW
- ROLE_SONATA_ADMIN_PRODUCT_CATEGORY_EXPORT
- ROLE_SONATA_ADMIN_PRODUCT_CATEGORY_OPERATOR
- ROLE_SONATA_ADMIN_PRODUCT_CATEGORY_MASTER
# purchase
- ROLE_SONATA_ADMIN_PURCHASE_CREATE
- ROLE_SONATA_ADMIN_PURCHASE_DELETE
- ROLE_SONATA_ADMIN_PURCHASE_EDIT
- ROLE_SONATA_ADMIN_PURCHASE_LIST
- ROLE_SONATA_ADMIN_PURCHASE_VIEW
- ROLE_SONATA_ADMIN_PURCHASE_EXPORT
- ROLE_SONATA_ADMIN_PURCHASE_OPERATOR
- ROLE_SONATA_ADMIN_PURCHASE_MASTER
# payment
- ROLE_SONATA_ADMIN_PAYMENT_CREATE
- ROLE_SONATA_ADMIN_PAYMENT_DELETE
- ROLE_SONATA_ADMIN_PAYMENT_EDIT
- ROLE_SONATA_ADMIN_PAYMENT_LIST
- ROLE_SONATA_ADMIN_PAYMENT_VIEW
- ROLE_SONATA_ADMIN_PAYMENT_EXPORT
- ROLE_SONATA_ADMIN_PAYMENT_OPERATOR
- ROLE_SONATA_ADMIN_PAYMENT_MASTER
# notification: email template
- ROLE_SONATA_ADMIN_NOTIFICATION_EMAIL_TEMPLATE_CREATE
- ROLE_SONATA_ADMIN_NOTIFICATION_EMAIL_TEMPLATE_DELETE
- ROLE_SONATA_ADMIN_NOTIFICATION_EMAIL_TEMPLATE_EDIT
- ROLE_SONATA_ADMIN_NOTIFICATION_EMAIL_TEMPLATE_LIST
- ROLE_SONATA_ADMIN_NOTIFICATION_EMAIL_TEMPLATE_VIEW
- ROLE_SONATA_ADMIN_NOTIFICATION_EMAIL_TEMPLATE_EXPORT
- ROLE_SONATA_ADMIN_NOTIFICATION_EMAIL_TEMPLATE_OPERATOR
- ROLE_SONATA_ADMIN_NOTIFICATION_EMAIL_TEMPLATE_MASTER
ROLE_SUPER_ADMIN:
- ROLE_ADMIN
- ROLE_ALLOWED_TO_SWITCH
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_SONATA_ADMIN }
sonata.admin.user:
class: Acme\AdminBundle\Admin\UserAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "User", label: "User" }
arguments:
- ~
- Acme\UserBundle\Entity\User
- ~
calls:
- [ setTranslationDomain, [AcmeAdminBundle]]
sonata.admin.product:
class: Acme\AdminBundle\Admin\ProductAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Store", label: "Product" }
arguments:
- ~
- Acme\StoreBundle\Entity\Product
- ~
calls:
- [ setTranslationDomain, [AcmeAdminBundle]]
sonata.admin.product_category:
class: Acme\AdminBundle\Admin\ProductCategoryAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Store", label: "Category" }
arguments:
- ~
- Acme\StoreBundle\Entity\ProductCategory
- ~
calls:
- [ setTranslationDomain, [AcmeAdminBundle]]
sonata.admin.purchase:
class: Acme\AdminBundle\Admin\PurchaseAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Store", label: "Purchase" }
arguments:
- ~
- Acme\StoreBundle\Entity\Purchase
- ~
calls:
- [ setTranslationDomain, [AcmeAdminBundle]]
sonata.admin.payment:
class: Acme\AdminBundle\Admin\PaymentAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Payment", label: "Payment" }
arguments:
- ~
- Acme\PaymentBundle\Entity\Payment
- ~
calls:
- [ setTranslationDomain, [AcmeAdminBundle]]
sonata.admin.notification.email_template:
class: Acme\AdminBundle\Admin\Notification\EmailTemplateAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Notification", label: "Email Template" }
arguments:
- ~
- Acme\NotificationBundle\Entity\EmailTemplate
- ~
calls:
- [ setTranslationDomain, [AcmeAdminBundle]]
关于symfony - 如何在 SonataAdminBundle 中使用角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14154505/
我无法通过 Sonataadmin 仪表板更新用户密码。 我使用 symfony2 FosUserBundle2.0 SonataAdminBundle(但 不是 使用 SonataUserBundl
我遇到了关于 SonataAdminBundle 的继承问题 我有 2 个相互关联的实体:AbstractPerson 和 Vehicle以及继承 AbstractPerson 的 2 个实体:Per
我正在使用 symfony2 和 SonataAdminBundle。我有一个名为 Post 的简单实体,其中的内容字段基本上是 html 文本(来自 ckeditor 进行记录)。我需要在帖子列表中
我正在使用 SonataAdminBundle 为我的页面实体生成 CRUD。 使用下面的 yaml 文件,菜单将显示在侧栏中。 我想更改群组默认图标“fa fa-folder”。 但我找不到执行此操
当前 2.3 版本中的 Symfony2。我已经在 dev-master 版本中安装了 sonataAdminBundle 。我在 dev-master 中也有 fosUserBundle 。问题是我
在此page我找到了如何为我的自定义操作添加路由。 protected function configureRoutes(RouteCollection $collection) { $col
我们在 Symfony2 应用程序中使用 SonataAdminBundle。编辑实体时,我想将自己的操作添加到位于右上角的下拉菜单中,但我不知道这是如何工作的。 我知道我可以通过 configure
我们如何覆盖单个 Admin 类的奏鸣曲包布局 就像我创建了 3 个管理类 userAdmin、productAdmin、ticketAdmin 现在我想覆盖 ticketAdmin 编辑操作和编辑模
当我想从后端编辑现有用户时遇到问题(使用 SonataAdminBundle 和 FOSUserBundle)。在我的 UserAdmin 类的 configureFormFields 方法中,密码字
我开始使用 SonataAdminBundle在 Symfony2.1 应用。我开发的所有Admin类,现在我希望添加角色以防止对此类用户组(例如非管理员用户)进行查看、列出和编辑操作。 请注意,我没
我有 FOSUserBundle 来管理我的用户,SonataAdminBundle 来管理我的网站...我有一个问题,每当我尝试更改/添加任何用户的密码时,密码都不会编码到 sha512,但当用户在
我将 SonataAdminBundle 与 Symfony 2.2 一起使用,并希望根据登录的用户显示仪表板 block 。 例如 拥有群组 super 管理员权限的用户将看到“用户管理”和“消息”
我想在每个管理员/实体的基础上覆盖 CRUD 列表模板。 假设我有一个名为 MyAdminClass 的管理类。我想通过将模板添加到 app/Resources/SonataAdminBundle/V
安装后Symfony2 cmf ,当我尝试查看管理/仪表板时,出现以下错误: The function "is_granted" does not exist in SonataAdminBundle
我有这样的领域 /** * @ORM\ManyToOne(targetEntity="Town") **/ protected $town; 以及具有此类方法的管理类
我正在使用 FOSUserBundle 1.3 和扩展它的 SonataUserBundle。我有自己的包,它扩展了 SonataUserBundle,并在其中保留了我的用户管理类以及用户和用户组实体
没有任何文件谈论这一点。请帮我。谢谢 最佳答案 管理顶部菜单是根据管理服务定义中的组项自动创建的。所有管理服务都可以分组并显示在顶部菜单中。 Example (请参阅 group="sonata_pa
我想实现一些自定义删除处理。我们有一些类型的实体只在数据库中被标记为已删除。真正从数据库中删除是由一个预定的过程完成的。 现在可以很容易地替换 Admin 类中的 delete 方法,但是我在批处理操
在 Symfony3 项目中,我有一个像这样的 SonataAdminBundle 表单: protected function configureFormFields(FormMapper $f
我刚刚安装了 SonataAdminBundle,我发现 SonataAdminBundle 已经在 public 文件夹中安装了 fontawesome 和另一个 css/js Assets ,我的
我是一名优秀的程序员,十分优秀!