Anyone out there know of a way to allow an access type to add and remove group members. But prevent contact creation and deactivation ?
Hi Stuart, for something like this you would control it with a Role as opposed to an access type. Being that you do want them to be able to add and remove group members, you would have to ensure that the function access on that role is set to "modify" for contacts. Then for the prevention of creation, or deactivation, you have a couple of choices. You can try it via a data partition constraint, not allowing the creation of contacts, and another not allowing the update when del=1 or active=0 (depending on the object), which would not allow the user to save a contact or group record (since contacts and groups are in the same table) if it were set to inactive. The other option would be to edit the contact detail form to remove the active/inactive field, and edit the contact list form to remove the "Create New" button. Then you would save these forms to a specific form group which you would then give to that role which you are using to allow the updating of contacts/groups, but preventing the creation and deactivation for. Your best bet is to do some testing of this on a test system and see what works best for you.
Hope this helps,
Continue on Jon's comment...
As roles are assigned to a access type so if you want to do it for
certain access type you would need to make sure every role in that
access type have the privilege/DP that enables move/add members togroups but can't create/deactivate contacts.
I'm going with the first option, just working out the correct data partition constraints against the ca_contact table.
These settings seem to suit my requirements. Prevents contact creation, activation & deactivation, but allows group membership to be modified.
Function Access On Role
Function = Contact Access Level = Modify
Function = Group Access Level = Modify
Data Partitions On Role
Type=Create Table = ca_contact Constraint = id = U'00'
Type=Update Table = ca_contact Constraint = delete_flag <> 1
Type=Pre-Update Table = ca_contact Constraint = delete_flag <> 1
Retrieving data ...