1

I work in a company that I decided to share more than 1300 files for more than 22 groups in SharePoint. In any groups we have 1 or 10 users. In this case, file sharing has his rules: 1- For example: One file can be used by 3 groups. Another can be used by 10 groups and maybe one file can be used by all groups and so on. 2- One file can be assigned to many groups. I have this question: What is the best way to do the following task? Meanwhile the files are not constant and may be changed. Files can be added and also can be deleted. Also files permission may be changed. I think if the amount of these files were little (e.g. 20 files), we could manage the permission by SharePoint default features, but since the amount of files are more than 1300 files, really the usage of SharePoint existing techniques are not possible and it is needed spending a lot of time and energy by admin. The following picture can be useful: File distribution


Thank you very much for your comment. I have thought about your comment. I planned a road map. As you mentioned I put all files in a library. Then I created a list which each item in this list is referred to the unique file of that library item. (For example a link with "a" file name in list is referred to a.docx file in library). Then I created 22 columns in my list (for 22 groups) and I use asterisk symbol for indicate which file is belongs to each groups. (For example "a" file link in list is belongs to 2nd, 4th and 16th groups). So now I have a list which 1st columns is file’s name link and then 22 columns that show which file link is belongs to each group. In the other words I simulate a cross sheet like excel sheet). After that I will create 22 views for each group and I will set permission for each views. I have found and implemented this. It is very simply. Now I have decided to create a workflow by SharePoint designer. I continue to study to create workflow by SharePoint designer and Visio. This workflow must act on each item in list. The steps: 1- Workflow must go to first item. 2- I will set “if condition” in workflow. In the “if condition”, the workflow decides which item is belongs to each group. This “if condition” is repeated for 22 times. 3- If the item is belongs to 1st group, it change the permission of the item to 1st group. Than go to 2sd group. If there is asterisk sign, the permission is given to 2nd group and so on. 4- Then the workflow must act for 2nd item. The action will be done like step 2. Until all items (1300 file) are finished. I study for the above road map. Without writing any code with any programming software (like c# or …). I know that there are many ways to do this job. But unfortunately I don’t have deep knowledge in writing codes out of SharePoint.

2 Answers 2

2

You could construct some kind of item level permission system with SharePoint's views.

  1. Create a Document Library containing all 1300 files with whatever metadata is relevant as visible columns.

  2. Add 22 system columns titled using the Boolean type titled something like is visible to group #1-22

  3. Create views for each group which filter on the table you've shown above to only show files which have all their required Boolean columns marked true.

  4. spend a long boring afternoon filling out file metadata or get an intern to do it for you.

3
  • Thanks. but there is a problem. If someone go to download any file, he can easily find the liberary address. Then he copy and paste this library address in the browser and he can access the whole files.
    – edward
    Commented Jul 14, 2017 at 19:38
  • I think there is no way unless I spend a lot of time to define permission for each file or create 22 libraries for each group. Both of these ways will take a plenty time from me, especially when I want to update files, delete files or add files to 22 libraries.
    – edward
    Commented Jul 14, 2017 at 19:43
  • I think between two ways, the second way is better. Only I have to write a program to copy files from main library to 22 libraries. The program will decide which file must be copied in proper folders. Which file must be deleted and which file must be updated from the folders. But I am not a programmer. I can not write any code to do this task.
    – edward
    Commented Jul 15, 2017 at 4:47
2

I have done something like this, but it isn't pretty!

First, take your file, and encode it into a standard SharePoint list.

Now, put all your files into a document library. You must have a unique reference for each document, and have that reference included in your SharePoint list. Break inheritance on this library.

Set up security groups for each of your Groups.

Now, you need a workflow to run against every item in your document library. This workflow gets all the information from the security list (to do this I used features in the Plumsail Workflow Action pack, however you may be able to do this with REST). You can then check which columns have a star in them, and grant the appropriate rights to the file (Read/Contribute/Whatever). If there is no star, you can remove the group's permissions.

When I was doing this, the workflow had to run on document change, so I included ways to bypass the permission setting.

There may be better ways to do this, but it works for me. Unfortunately I can't share the full solution, but these pointers may help.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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