Login is case-insensitive on email and space-tolerant on both email and phone.
Deleted or archived accounts are refused at login and refused as targets of any session switch.
Each user record has a token version counter. Actions such as unarchival, password reset, and archival bump this counter, invalidating older tokens.
School Admin passwords are stored on the linked employee account. The school login "borrows" the employee's credentials, so the employee record must exist and be active for the school to be reachable.
Multi-account users are asked to pick the specific account (school or student) before any OTP is sent, except when only a single active account is linked.
Onboarding and portal access
Session switching into a school, employee, or student portal is blocked while that account's registration is not confirmed.
Bulk uploads reject the entire file when any row fails validation and return a downloadable errors file.
School onboarding requires School Name and UDISE Code, and at least one of email or phone.
Permissions
Master permission catalogs are separated by scope: "school" and "dhe". The same numeric code may exist independently in both scopes.
Only School Admin and DHE can manage custom user permissions.
Admin designations cannot be given custom permissions; they carry full permissions implicitly.
Employee permission records may carry validity dates; lookups can filter by active windows.
Data lifecycle
Self-deletion archives the account and, where applicable, also archives the linked school or employee record. If a sibling archival fails, the local archival still succeeds and the failure is logged.
Invitation emails are tracked with delivery status (pending, delivered, failed), attempt counts, and last-error reasons.
Empty text fields in incoming data are automatically converted to null so that unique index rules on email and phone continue to work.
Session and audit behavior
After a session switch, actions record the underlying operator (for example the employee who is administering a school) as the actor for audit fields, not the target account.
Passwords must be at least 8 characters.
OTPs are always tied to a session token; both are required to complete verification.
No comments to display
No comments to display