I am building an informational site with a community component. One of the components is a directory of service providers. We want it to work like this:
We compile a list of service providers and enter them into the database. A service provider may request an account, at which time they are permitted to edit their record in the database. They should not be able to edit any other content but the specific record that belongs to them.
This is how I set it up: I created a cck type for the record. Each service provider has an account on the system, to which they can request access. Then I used nodeprofile, pageroute, and registration account types to set up the permissions and the workflow. On the whole, everything seems to function as expected. When someone registers for an account, they are passed along to their account, where they have a link allowing them to create their profile. If their profile already was created for them, then they can edit it.
The problem is, I want users in an 'editor' role to be able to create these profiles and assign them to users. But I don't want "Create your..." links to show up in their account. That is to say, I have to give the editor create and edit permission on the profile type, but I don't want the editor to be able to create a node of this type for themselves. I'd be content just to have the link removed from their account page, but I don't see a way to do that -per role-. As it is, everyone with create permission on that type gets it listed in their account page.
Is there some other way I should have gone about this?