1

Is it possible to assign permissions to a View in document library?

Let's say I want to create a View on which only Group1 will have access. Is this possible?

3

Not really, as in SharePoint you cannot define permissions based on List Columns (Fields) just like that.

What you could do as a workaround is create multiple pages, and add List View Web Part to each of those pages, and configure it accordingly on each page (to only show ONEs or TWOs). Then assign permissions on those pages.

NOTE! People who know SharePoint can easily view all list items, so do not use this method for sensitive data - only when you understand the limitations and possibilitites. Consider this as profiling content and views to make user interface cleaner by being able to only show content that is of interest to specific users.

Or, if you need real permissions, add Event Handler to the list that modifies permissions whenever field value is set to, or changed between ONE/TWO. You'd need to break permission inheritance for the item, so beware of performance issues if your list will have more than 5000 items.

This may not be what you're looking after, but create two lists (or even folders) that have unique permissions. Then for the end user, present two links so they can select "Create ONE" or "Create TWO", which will take use to corresponding NewItem form. Downside to this is of course that if changing ONE to TWO doesn't really have the effect you're originally looking for (becoming visible for the other group only).

  • I don't want to hide any column. There is a custom field in my library called "Type". Its value can be either "ONE" or "TWO". So I want all items having "TWO" be accessible by Group1 only. I know I can assign permissions to individual items in library but what about I add a new item later? It means I will have to assign permission again? I want to avoid that. That's why I thought of creating a view where it only shows TWO items and assign that view to Group1. – Frank Martin Jun 2 '15 at 7:02
  • Best way to fulfill your requirement is that "using permission" only otherwise any user who know SharePoint can easily get information(as Jussi Palo said). So you can create one ItemAdded event receiver which set the permission to particular group according your business logic. – Kalpesh Vaghela Jun 2 '15 at 7:11
  • Extended my answer based on your clarification. – Jussi Palo Jun 2 '15 at 9:49
2

No, this is not possible using out of the box functions of SharePoint.

  • Is there any other way? There is a custom field in my library called "Type". Its value can be either "ONE" or "TWO". So I want all items having "TWO" be accessible by Group1 only. I know I can assign permissions to individual items in library but what about I add a new item later? It means I will have to assign permission again? So I want toavoid that. – Frank Martin Jun 2 '15 at 7:00
  • @Jussi answer is very good. That workaround is quite suitable. On the other hand you can write a workflow, o event receiver to manage permissions, according to column values. – ECM4D Jun 2 '15 at 7:06
  • 1
    @Jussi answer still not as much suitable because by giving permission to particular page you cannot avoid to show list items in SharePoint Search result. User can reach to those list item by search functionality of SharePoint as search is showing data according to permission only – Kalpesh Vaghela Jun 2 '15 at 7:21
  • Search is not working in this environment. – Frank Martin Jun 2 '15 at 7:34
0

Use Titus' SharePoint Security if you really want to do item-level security. It's the only practical method for managing the administration of item-level security.

0

As stated a few times here - it can't be done from a single list/library, without some 3rd party help, or customer code.

If you want to use only SharePoint you could do this by creating three lists. Your "source" which has all the data, and is locked down, and then two destination lists, which are populated from a simple workflow from the source list. You can then secure each list to the groups you need. This can get complicated if you need two-way data syncs. But if the source is where it's updated, and only certain individuals have that access, then using the "push" type method could work.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.