function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
cunninjacunninja 

Record Type Security by Profile

Hi,

 

I have a couple of user profiles that I don't want to be able to see certain record types on the case object. I thought removing these record types from their profiles would do this. Turns out, removing those record types only means those profiles can't create those types of cases. Ideally I do not want these profiles to see these record types at all i.e. when they search for cases etc. Is there any way to accomplish this with profiles or do I need to go about this differently? Thanks.

 

Jack

BrendanOCBrendanOC

At the Profile level, you can specify CRUD access ( Create Read Update Delete) for each Standard Object, as well as Custom Objects.

 

If you don't want Profile A to see ANY cases, you can remove the CRUD access to the Case object.  Users with that profile will not be able to see ANY cases once you remove Read access. 

 

If you want Profile A only to see SOME cases, but not all cases, they will need at least Read access to the Case object.  You will then need to use Sharing Rules to define which users, profiles, and groups can see which cases.

 

For more information, go to Setup > Administration Setup > Security Controls > Sharing Settings.

 

Once you are on the Sharing Settings page, click the link in the top right that says "Help For This Page."  Salesforce.com has very helpful information for each page.

 

Hope that helps!  Let us know if you fix your problem, or if you're still having trouble.

 

 

cunninjacunninja

Thanks for your response Brendan. I've looked at the sharing rules and I just don't see quite what I need. I have 7 record types on the case object and about 15 profiles that I need to define access for each record type. Each profile should only be able to access a certain few of the 7 record types. The major issue i  think is that  ALL cases are owned and can only be created by one of 2 roles. Each of the other roles has automated workflow tasks based on whatever record type it is and shouldn't be able to see the other record types. Am I missing something? I just don't see how i could define that with the options on the sharing rules? Thanks for your help.

cunninjacunninja

Actually, I was just looking on the idea exchange and exactly what I just described and need is an idea that is under consideration. In the comments from one of the salesforce people, he mentions criteria based sharing rules and that Record type was added as a criterion to the pilot of summer '10? Seems if it was in pilot of summer '10 i could get it in winter '11? Thanks.

BrendanOCBrendanOC

Criteria Based Sharing is currently not released for General Availability to the best of my knowledge.

 

If using assignment rules and Public Groups doesn't work for you, you may be able to solve this with a custom Visualforce page and an Apex class that extends the standard Case Apex controller.

 

For example, let's say you have 5 groups: East Coast and West Coast, and Tier 1, 2 and 3.  If you want to break up sharing by both Region and Tier, you may be able to do this with a couple of custom fields.

 

If you add a custom field called Region and a field called Tier, you could have Apex retrieve only records that meet that criteria.

 

Pseudo Code:

 

List<Case> c = [SELECT Id from Case where region__c = :userRegion and tier__c = :userTier Limit 10];

 

 

I don't know if that's a feasible solution for you or not.  Alternatively, you could write an Apex class that performs a similar query based on criteria that already exists in the records.

 

Can you provide some additional detail on your intended use case?  Are the different categories of records mutually exclusive, or do certain groups of users need to see certain records across multiple categories?