Our client is a builder and they need a way for their contractors to login and upload/download documents about each build (plans, building consents, information etc). They (the builder) also need a way to share build information with their clients whose homes they're building (plans, progress, photos etc.).


  • contractors would be able to log in and we'd present them with a front-end page listing their projects, view the projects' files and maybe allow them to upload files? We want to be able to restrict the contractors only to builds that they're working on. If absolutely necessary it might be ok if the contractors needed to upload files through the CP rather than the front-end.
  • clients would be able to log in to a front-end page and see their build(s) and any files that the contractors/builder had uploaded and made visible to them. they shouldn't be able to view other clients' builds' information.

Is it possible to do this with vanilla Craft, or would we have to write a plugin to enable us to do this?

How easy is it to associate a user/users/groups with entries/asset sources?

1 Answer 1


Welcome to the community Adam.

Yes. Completely possible with vanilla Craft.

There's always more than one way to achieve things but here's a first round.

Start by creating two User Groups; Contractors and Clients. This will allow you to define permissions as needed.

Your 'Property Projects' Section could contain fields like.

  1. Title
  2. Description
  3. Images
  4. Related Contractors (user)
  5. Related Client (user)
  6. Etc as needed

Craft has a custom field type called 'User' which will allow you to relate all of the relevant contractors to the project and also define who the client is, all within the 'project' Entry.

Because the client also has a user profile and is able to log in to Craft (front end only), you can present their project information to them in the 'client area' of the site.

If you actually want the client to edit their project Entry, then you could also consider making them the Author of their Entry. (Just an idea)

Have a look at Craft's relatedTo documentation

  • 1
    You should also consider if there’s the need to not only restrict the listing of these private assets, but to also restict theactual access to the files via the URLs. If this is a requirement, have a look at the Digital Download plugin.
    – carlcs
    Commented Jul 6, 2016 at 8:47
  • Nice one, Carl! - Added that one to my toolbox :)
    – Matt P
    Commented Jul 6, 2016 at 16:02

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.