Total Posts: 1
got same problem today.
magento version: 184.108.40.206 (sorry not a last one, but maybe this post will help someone)
1. Users/roles were created in admin panel correctly
2. SOAP response always said: Access Denied
3. After some time spent on class Mage_Api_Model_Mysql4_Acl, it was found that:
Method loadRules expects $rulesArr array be sorted in the way, that roles appearing in the beginning of array and users in the end.
In my case, it was not the case in table api_role
so basically, two solutions may be here:
1. Using ORDER BY parent_id = 0 DESC in SELECT from api_role table.
(which, probably, proper solution is)
2. The trick i did, just because playing with magento for the first time and don’t won’t to dig into details.
Simply resort records in api_role table.
TRUNCATE TABLE api_role; # its myisam here, so don't care on foreign keys
INSERT INTO api_role VALUES
(8, 0, 1, 0, 'G', 0, 'role1'),
(17, 0, 1, 0, 'G', 0, 'role2'),
(15, 8, 1, 0, 'U', 2, 'user1'),
(19, 17, 1, 0, 'U', 3, 'user2');
So as you can see, roles are on top now.
This fixed the problem.