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.
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.