As someone new to the platform, I found it time consuming to troubleshoot an issue a user was having, which ultimately came down to allowing greater access in roles and permissions.
The fact that the edit pencil icon displays on hover over a field which a user cannot edit is a misleading UX.
May I suggest an alternate icon for fields not editable or simply don’t display any icon at all? Of course there’s larger theme-based solutions (use colour-coding the field / other indicators) but just getting the ball rolling here.
Your suggestion makes sense, of course, but I see potentially serious performance issues here. Determining whether a user has access to edit a field is the product of a somewhat complex calculation that can involve several database tables (roles, groups, user, and the relationships between these and the record).
So having all these look-ups running beforehand, to know how to paint each pencil icons, would probably be a significant overhead.
Not all fields displayed in a detail view are from the same record. Some are related fields from other records, which might have a different security access.
Maybe some partial result could be achieved, like checking just the generic access to the present record, and at least getting the pencil icon right for these.
@pgr That makes sense. Out of curiosity how many tables are currently looked up to display a detail view of say “Leads” ? Just curious as to what “significant overhead” is.
I haven’t looked into any of the PHP whatsoever so pretty ignorant on the topic, but is what you mentioned the case for any place there’s roles/permissions involved? In that the system has to look through the levels set on each table? I would think it’d be more effective to calculate the permissions once, and set those on the user.
About the edit icon on user with no permission. Part of the issue will be solved on next version. Check here for more information:
Yes that Github issue adds the feature, but it’s only record-level.
To have that field-level would add more overhead.
However it’s not too easy to quantify, because it depends on each module, and even on the screen layouts you selected. Each field that is a related field, or flex relate, and maybe other kinds, would require extra queries into the database…
It’s possible that for a particular screen, a sensible compromise could be made, and the requested feature added. But I think this would have to be custom-coded for specific requirements, it’s not something that would be wise to add, for everybody, for every screen.