1

I'm trying to build a simple Garage Management System to see what spot someone is assigned. So I have the following lists:

  • Garages
  • Levels
  • Spots

Spots has a lookup column to Levels, Levels has a lookup column to Garages. Therefore, Each spot has a specified Garage.

Now I have been asked to assign a Garage Manager to each Garage. That Garage manager should be able to manage everything about that Garage, but not any other garage.

What would be the easiest way to filter all the list to a specific garage?

1

If you have a small amount of garages, this may be a useful solution for you.

Create a list for each garage
Example List Names:
   Garage01
   Garage02

Create a column for Assigned To (or just rename Title field)
Create a column for Spot (either choice or lookup to your list)
Create a column for Level (either choice or lookup to your list)

Create a sharepoint group for each garage
Example Group Name:
   Garage01Managers   -    Corresponds to Garage01 list
   Garage02Managers   -    Corresponds to Garage02 list

Create a sharepoint group that will have read-only for all garages
Example Group Name: GarageReaders

Break inheritence on each garage list and specify the rights for the following groups
   Example for List Garage01
      Make Garage01Managers Contribute
      Make GarageReaders Read
Remove all other Garage Manager groups from the list

Now you can just add/remove managers for corresponding lists through SharePoint groups. If you need someone to have read-only view of all garages, just add them to the GarageReaders sharepoint group.

Then just have a page that has a link to each Garage.

  • Glen, your solution is similar to the solution used. I will be marking your solution as answer. Here is final solution. 3 lists. Garages (with broken inheritance at the item level, and permissions assigned to a garage manager group (GarageManagers1 and GarageManagers2). 1 list for each garage representing the levels and spots in that garage. Inheritance broken, with each group having only permissions to the necessary list. The separate list for levels was removed, as levels have no metadata that doesn't exist in another context. – S. Walker Aug 18 '17 at 2:28
3
  1. As OOTB solution, I suggest doing the following:

    • Create a view for each Garage (Filtered by Garage ID/Name)
    • Create a Promoted Links list.
      • Garage Name, Graghe View URL
    • In Promoted Links list, add a new item for each Garage and its related Garage view URL.
    • In prompted list item, set the permission for each item (Garage) to its Garge Manger.
    • Now every Garage Manager should see only his garage block.

enter image description here

Alternative solution is to use Query String Filter Web Part but it will require setting each query string with its corresponding Garage name plus the Promoted links list or custom list to manage permission based on each manager.

  1. Use 3rd party tool like Infowise to can manage permission based on views.

  2. Using code, try to develop a custom web part that checks on the current user and shows its related items based on garage name.

  • I've thought about the 3rd solution. 3rd party tool is not an option. I will consider solutions 1 and 3 if I find nothing better. Neither of the solutions actually restrict the user from managing the other garage, just hides it. – S. Walker Aug 15 '17 at 22:32
  • I agree with u, but I prefer any solution without code if the requirements are not complex. so based on your requirement select the preferred solution with less time and effort. – Mohamed El-Qassas MVP Aug 16 '17 at 6:58

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.