Employee Login Without Creating a User — Is This Possible? (Feature Request)

My main requirement: an Employee should be able to log in without a User record being created at all — not automatically, not manually, not in the background. Just the Employee record itself should be enough to log in.

Right now, ERPNext requires every login to go through a separate User doctype — even if that User is auto-generated, it’s still a second record that has to exist alongside the Employee.

What I’m asking:

  • Can an Employee log in directly, using only their Employee ID and a password, with no linked User record at all?

  • If not currently possible, I’d like this considered as a feature request for core Frappe/ERPNext.

Why this matters:
For companies with a large number of employees who only need basic self-service actions (attendance, leave, payslip view), maintaining a full separate User record for each one adds unnecessary overhead. A direct Employee-based login would simplify this significantly.

Would appreciate confirmation from the core team on whether this is technically feasible within the current framework architecture, or if it would require a structural change.

Yes.

You can simply create an SPA for the Employee Self-Service with a “fake login” that compares it against a custom password field on the employee doctype.

On a custom app create a bunch of whitelisted, guest allowed endpoints you would be using in the SPA but validate on every request the Employee ID against its Password

I don’t think this is possible with the current Frappe architecture because authentication and permissions are built around the User doctype.

If the goal is mainly to avoid manually creating/managing thousands of User records, I think a better solution would be to automate User creation and lifecycle from the Employee record.

A completely User less login would probably require a deeper change to Frappe’s authentication and permission architecture.