To my mind, there are three use cases for profile type permissions:
Case A: the site admin wants to store data about users that they don't know about.
Eg,
- whether the user has paid their membership
- comments about the user for forum moderators
Case B: the site admin wants to store data about users that they can see but can't edit.
Eg:
- some sort of ranking or badges for the user
Case C: data that is not relevant to the user unless they have a particular role.
Eg:
- committee members of an organization need extra fields for their position on the committee
- certain types of staff member need extra fields
The current system does not serve case C well at all. If I create a profile type 'committee', then an admin user who has rights to edit that profile sees that tab on all users.
Also, if the admin accidentally edits the committee profile for a user who should not have that data, then the profile is created, and shows on the user page.
I propose two things:
1. Show a message when editing a profile that summarizes who can see the data you are editing. This would be useful in lots of circumstances -- I'll spin this off into another issue.
2. Add a permission for 'Display profile TYPE'. Without this permission, the menu tab should not appear.
Comments
Comment #1
eeyorrI'm curious about this, too. As far as I can see, profile types cannot really be assigned to roles.
Comment #2
Jerome F commentedI agree with 1. and 2. in #0. This issue is interesting. I indeed edited my users profiles with the admin account and I can edit profiles that my users don't have because I have the permission to edit any profile type.
(perhaps that's an other clue to help me understand why the profile table was so messed up on my site http://drupal.org/node/1135744)
Comment #3
joachim commentedThe spin-off issue for point 1 is: #1102480: show details of viewing and editing restrictions at the top of the edit form.
Comment #4
fagoI think it already works that way - please re-open if something is left.