I am using FarmOS to manage several scattered small garden “Properties”. Is there a way to assign additional “People” as “Farm Manager”, “Farm Worker”, or “Farm Viewer” to a specific “Property”? If it is possible, a detailed example of a “Farm Manager” would be most helpful.
It is not currently possible to do this in farmOS, but there has been some thought/discussion around creating a concept of “multiple farms” within a single farmOS instance, with levels of access control to each. Here is the open feature request for that: https://www.drupal.org/project/farm/issues/2940211
I think it would be more appropriate (and urgent) to implement it at the “Property” level (or better yet - BOTH levels) and here is why:
Living in the decade of Covid, in a University Town in a county that also includes a Technical College in a community of Regenerative Agriculture Innovation I see the need to scramble our forces to expose learners to the Natural Resource Management (NRM) tools that will make a difference. FarmOS is one of those powerful tools. By introducing Student and Volunteer Interns, young or old, in a mentored process of Progression we early adopters can each inspire students through the real world practical computer and field experience necessary to become independent NRM FarmOS Managers on their own.
I think it would be more appropriate (and urgent) to implement it at the “Property” level
So actually, this is essentially what I had in mind for the “Multiple Farms” access control. So I think we are talking about the same thing. Ultimately, the work involved is adding another layer of access control to all records (and everywhere they are loaded) in farmOS. Not an insignificant amount of work. :-/
If you or anyone else has the resources to pursue this, please feel free! I described in the comments of that issue that the best way might be to experiment with this in a separate add-on module (without requiring changes to farmOS itself), so all of the various aspects can be thought through. I think the Organic Groups module might be worth exploring. The other big thing to keep in mind is that we are working on the upgrade to Drupal 9, so anything built in current farmOS need to have an upgrade path.
My own feeling is that whatever approach is taken, that we need is a process where one independent FarmOS account Property or Farm can break away intact into a new independent root manager as part of their independent FarmOS portfolio.
I do not have the skills myself to take this on, but I live in a California agricultura county that has both a college and a university. I think I have a good chance of being able to bring young talent to a project like this. With that consideration, Is the best approach:
- List item:
to first work on a module? or
the adding of another layer of access control to all records?
Any other suggestions for progressing?
Ah that’s an important requirement to consider. I assume you mean: allow 1 farmOS database to be split into 2 farmOS databases, with subsets of data in each. That would be a big task in itself to build - but I agree it would be great.
With that consideration, Is the best approach: to first work on a module? or the adding of another layer of access control to all records?
Yes, I would say that exploring this in a separate module would be the best first step. During that process it may reveal that changes need to be made to farmOS core to support it.
And again, this is all complicated by the fact that we are working on the farmOS 2.x upgrade right now. So if a solution is needed before that is available then this will require double work to rebuild it for 2.x.