Closed starnetwork closed 3 weeks ago
you see the alert but then when you click there's the "no records"? really weird
@kiatng what do you think?
btw this is the original PR https://github.com/OpenMage/magento-lts/pull/3647
confirmed.
@kiatng true, it happens only right after login, if you refresh the alert disappears
@fballiano true, refresh and the alert disappears but it's back every time any admin do login again and again
I know, but it was important to tell that to the original author of the PR for debug
I did a test on the latest next branch:
adminhtml.xml, add a Test resource:
<config>
<acl>
<resources>
<admin>
<children>
<celera_crib translate="label" module="crib">
<title>Celera Modules</title>
<children>
<crib translate="title">
<title>Crib Services</title>
<sort_order>1000</sort_order>
</crib>
<test translate="title">
<title>Test</title>
<sort_order>1100</sort_order>
</test>
</children>
</celera_crib>
Then in backend > System > Roles > select a role and toggle the checkbox of the resource > Save
Logout from backend.
Changed resource now to Test2 in adminhtml.xml
<test2 translate="title">
<title>Test2</title>
<sort_order>1100</sort_order>
</test2>
Login to backend, notice of orphaned resource Test:
Click on the link, the orphaned resource is listed:
I do not know why the grid can be empty. I will think about it.
Check the exception log file, maybe something is in there.
it happens for a customer of mine:
but then clicking on the link:
and in the table those resources are there:
@fballiano Could it be cache? Can you try refresh it?
@kiatng no it's been reset many times
@fballiano Need your help: what is the output array of Mage::getModel('admin/roles')->getResourcesList2D();
? Do you see orphaned resources such as admin/storepickup/holidays/action
listed in the array?
yes there are:
Just wanted to confirm the problem as well. After requesting a delete of ~30 orphaned roles, a message came up saying it deleted ~150. That's always scary. Logged out, back in and the message came back, but the table is empty now.
Just wanted to confirm the problem as well. After requesting a delete of ~30 orphaned roles, a message came up saying it deleted ~150. That's always scary. Logged out, back in and the message came back, but the table is empty now.
That's because an orphaned resource may have several entries in the table admin_rule
, for example if user1 to user5 are not allowed a resource, it'll have 5 entries in the table for the resource. That's why it reported deletion of 150.
Because I cannot replicate the annoying message and empty grid, I am stumped why this happen to some people. I am still working on it trying to pin point the source. @fballiano is helping me on this.
I welcome any lead or theory.
With @fballiano help, I finally managed to replicate the bug. Please allow a few days to find the cause.
The bug is that the notice about orphaned resources is wrong. However, I think the empty grid is correct, so there is no danger of wrongly deleting resources.
The cause is actually an additional <action>
node in the adminhtml.xml
file:
<config>
<!-- ... -->
<acl> <!-- UNDER THIS ACL NODE -->
<resources>
<admin>
<children>
<storepickup module="storepickup" translate="title">
<title>Store Pickup</title>
<sort_order>70</sort_order>
<children>
<stores module="storepickup" translate="title">
<title>Manage Stores</title>
<sort_order>0</sort_order>
<action>storepickup/adminhtml_store</action> <!-- REMOVE THIS LINE -->
</stores>
The <action>
node is for assigning a menu item to a controller action. It should not be in the ACL.
~@fballiano Please test by removing all <action>
nodes under <acl>
, refresh the cache, and see if the orphaned resource notice is rendered.~
It's a bit more complicated than I thought. The <action>
is added to the table admin_rule
by mistake. It's a mistake because the node is not part of the ACL.
In admin > System > Permissions > Roles > edit a role, the resources are correctly listed without the <action>
.
Preconditions (*)
Steps to reproduce (*)
Expected result (*)
Actual result (*)