Permissions are used in conjunction with groups. Using the Groups feature, the admin can create different user groups. First the group must be created and then you assign that group the privileges you want it to have. Finally, you move the individuals into that group that you want to have that group's privileges.
This is one of the hardest areas of MDP for many people to understand. Changing permissions on existing (core) blocks and modules is easiest and the example below (taken from one of my sites) illustrates changes in some of the menu items. Click on it to magnify.
The order items are entered in is very important. Permissions start from the bottom and go up rather than being from the top down. In other words, you grant general permissions at the bottom and restrict or assign specific ones higher up. It will not work in reverse. Notice how the unregistered are denied access to certain main menu items on line (sequence) 5. On the next line, seq. 6, the unregistered are given general access. However, they have had other restrictions to their access imposed by then. Line 2 denied them access to the administration menu. If lines 5 and 6 were reversed, the unregistered would have access to all the items listed on line 5.
The proper way to view this however, is that the unregistered are given general access to read at the bottom. Moving upward, they are denied any access at all to specific items in the Main Menu block.
Permissions work by exact names of modules and item listings For instance, if you have permissions configured exactly as you want them for the Main Menu block and all the items within it and then change the name to Menu, your permission settings will no longer apply as Menu and Main Menu are not the same thing.
There is a syntax, which is easy enough to use and you can see it in the existing permissions. Under Instance, you list the block name, followed by a colon, and then the item if there is only one, and end it with a colon. If you have more than one item in the block to list, enclose all the items in parentheses ( ) and divide them with the piping symbol |. Be sure to end with a colon after the closing parenthesis.
1. Spelling and case must be exact. If you have permissions set for Main Menu and change the name of the block to Menu, you no longer have permissions set for it as Main Menu and Menu are two different blocks. You'll need to change the name in Permissions to whatever the block has been renamed to. Extra spaces can throw off permissions also. Names must be exact.
2. Permissions start from the bottom and go up rather than being from the top down. In other words, you grant general permissions at the bottom and restrict specific ones higher up.
3. Because of #2, where you place a line matters greatly. Your syntax could be correct but unless you have the line placed properly, you don't have permissions set properly.
4. As the admin, you will always see every item as you have admin (all) permissions. That means that you can't see the effect of the permission changes you make. The solution is to have a second browser (not just another window open in the browser you have) and be logged in as a regular member (aka user) in that browser. That way you can see the effect of the changes you make by going to the second browser and reloading (aka refreshing) after each change.
Other examples are available on the Permission Samples page under the Permissions subject of the documentation section at maxdev.com.
For more information, see the tutorial on permissions in the documentation section