Hello. is there any way to implement Role Based Work space in erpnext.
we need to have workspace for every role like Doctors , Nurses , Finance and etc
please can any one help how to can we do this?
This is not currently possible. The best you can do is to manually turn modules on/off for individual users. A role-driven workspace feature would be a huge improvement.
I think Module Profiles would come close. Under user.
Module profiles is handy to the extent that it allows you to save a few clicks, but it still must be set individually for every user unfortunately.
We had the same requirement and did some custom implementation in context of one of our apps:
Our business requirements have been:
- We need to set per Workspace, which roles can get access to that
- As a whitelist (means, we manage roles, that get access) → “Visible To Roles”
- As a blacklist (means, we manage roles, that can NOT get access) → “Hidden to Roles”
- Special handling for System Managers, they won’t get affected by that, even if they have also one of the black-listed roles assigned
- Hide section-names, if there are no more workspaces available for the same
What was necessary to do the same?
- SetUp DocType to manage all those “Workspace Perms”:
- Monkey Patch within
frappe/frappe/boot.py
to inject our filter within method “load_desktop_data
”
Result: It’s possible to “hide” all not needed items from “Modules” sidebar
If that would be helpful for you, let me check with my team, if we share this as a separate app or guide you just here through what needs to be done.
Hi @Patrick.St, i think it will be great if you can share as an app as it will also help others who are trying to implement the same. If it is also easier for you to just share the steps that we can follow, we will appreciate it as well
would like to see the details to implement in my own app also. many thanks.
Hi @gkapswara, @szufisher, @Abdirahmaan,
I have published the app - feel free to test/ improve it: GitHub - pstuhlmueller/workspaceperms: Manage the availability of workspaces within Frappe/ ERPNext (sidebar) based on user-roles
Is a nice feature, why not send a PR?
Already thought about it - will do it if at least 2-3 other users say, that feature is helpful.
To make it more simple, I am thinking to block these 3 system modules: core, custom and integration for non system manager users. this way there is no extra workspace maintenance efforts needed and also will be less confusion for newly created normal users.
How do you mean the following?
less confusion for newly created normal users.
For example in our use case, the most users only have 1 workspace, a few have 2-3 workspaces in total based on their role.
Feature is very useful! Please send a PR.
The feature is useful. Thanks for your contribution.
Its a must feature to build simplicity for end users quickly.it should be part of frappe asap, thanks for wonderful feature
Will the user still be able to access the workspaces by using the search bar?
No, the user won’t be able to access the “hidden” workspaces any longer - neither via direct-link, nor via awesome-bar.
Then the app is awesome!!! will give it a run.