Live in EdushadeUser Management

One user record, every detail you need,scoped per tenant

Edushade ships a real user system, not a thin wrapper around an auth provider. Every user carries a tenant-scoped unique ID, a full profile, an account lifecycle with five states, multi-factor verification, per-device sessions with geo and device metadata, OAuth links across four providers, three type flags (admin, instructor, learner), six social links and a complete audit trail. The admin shell exposes filtered People views, bulk export and CSV-backed analytics out of the box.

Quick Tour·User Management

Everything an LMS user record actually needs

User Management runs on the auth-service users table, with the verification, session, OAuth and audit pipelines living in the same service. The admin sidebar surfaces filtered views per type, the People → Roles & Permissions builder ties into the same RBAC engine that gates every API, and the invitation flow on the tenant-service ships role and permission preassignments out of the box.

A Full User Profile

Email, phone, username, name, avatar, bio, professional summary, designation, expertise, gender, date of birth, address, geo, timezone and locale — all on one record, all editable from the admin.

Five-State Lifecycle

pending_verification → active → inactive / suspended / deleted. Every state transition is auditable, soft delete preserves history, and reactivation is a single click.

Sessions Across Devices

Per-device session records with device type, brand, OS, browser, IP geo (continent / country / city / ISP), timezone and language detection — plus revoke-one and revoke-all actions.

OAuth and Multi-Factor

Link Google, Facebook, Apple and GitHub from the user record. Email and phone verification with OTP, configurable expiry and max-attempts. New-device login alerts ship by default.

Filtered People Views

Admin → Platform → People exposes All Users, Learners, Instructors and Admins & Staff as separate filtered tables, each with bulk-select, CSV export and bulk delete on the same data model.

Invitations and Impersonation

Token-based invitations carry role and permission preassignments and expire automatically. Admin impersonation lets support sign in as a learner to debug, with a clean stop endpoint.

One record, every dimension you actually need

The users table is not a stub. Account fields (email, phone, username, password, name, avatar) sit alongside profile fields (bio, professional summary, designation, expertise, gender, DOB, address), geo fields (continent, country, city, state, timezone, locale), three boolean type flags (is_admin, is_instructor, is_learner), six social links and OAuth provider IDs for Google, Facebook, Apple and GitHub. Every field is exportable; every field is auditable; every field is locale-aware.

  • Account: email, phone, username, password, name, avatar

  • Profile: bio, professional summary, designation, expertise, gender, DOB, address

  • Geo: continent, country, city, state, timezone, locale (auto-detected)

  • Three type flags: is_admin, is_instructor, is_learner

Dashboard

Verification, sessions and security — built in

Edushade ships email and phone OTP verification with configurable expiry and a default max-attempts of three, plus dedicated email-change and phone-change verification flows. Every session is its own row with device type, brand, model, OS, browser, IP geo (continent, country, city, region, latitude, longitude, ISP, ASN), timezone and language detection. JWT access tokens carry a JTI, refresh tokens rotate per device, and a new-device login alert fires automatically on the first session from a new device.

  • Email + phone OTP, email/phone change flows, configurable expiry

  • JWT with JTI and per-device refresh-token rotation

  • Per-session device + IP geo metadata, including ISP and ASN

  • New-device login alert fires the first time a session lands on a new device

Dashboard

The admin People surface, filtered for the right job

Admin → Platform → People surfaces four data tables on the same model. All Users is the full tenant. Learners filters where is_learner is true. Instructors filters where is_instructor is true. Admins & Staff filters where is_admin is true. Each table ships row-level edit and delete plus bulk export and bulk delete, gated by user.list, user.view, user.export and user.delete. CSV export carries every field — unique ID, name, email, phone, status, verification flags, type flags, last login and audit timestamps — and bulk delete is a single tracked action.

  • Four filtered People tables: All / Learners / Instructors / Admins & Staff

  • Bulk-select with CSV export and bulk delete on every table

  • Tenant-scoped unique IDs with type-aware prefixes

  • Per-tenant user analytics: stats, growths, overview, filter values

Dashboard

Invitations and impersonation, for real-world support

The tenant-service invitations table carries an email, a token, an expires_at, an optional message — and crucially, role_ids and permission_ids arrays. When the invitee accepts, the platform creates the user and the role/permission assignments in one transaction. For support, the auth-service ships a real impersonation flow at /auth/impersonate/:user_id (gated by admin.users) and /auth/impersonate/stop, so an admin can sign in as a learner to debug and exit cleanly without juggling sessions.

  • Token-based invitations with role + permission preassignment

  • Statuses: pending, accepted, expired, cancelled — with explicit expiry

  • Custom invitation message per recipient

  • Impersonation flow with clean stop, audited via admin.users permission

Dashboard

From inviting a user to running role-aware operations

Every step lives in the admin shell at /admin/users. Invitations, lifecycle changes, role assignments and impersonation all share the same data model and the same audit trail.

1Step
Admin People view with an invitation modal showing email, role picker and permission picker

Invite or import users

Open Admin → Platform → People. Use the invitation flow to email a user with role and permission preassignments — they accept, the user record is created, the assignments land. Bulk export from any People view to move data in or out via CSV.

2Step
User detail page with sessions table, OAuth links and lifecycle status selector

Manage profile, sessions and access

Open a user. Edit profile fields. Inspect device sessions with geo and revoke any one or all of them. Link or unlink OAuth providers. Move them through the lifecycle (pending → active → inactive → suspended → deleted) without losing history.

3Step
Analytics overview tile with growths chart and a People list filtered by Learners

Run role-aware filtering and analytics

Switch between Learners, Instructors and Admins & Staff for filtered views. Open the user analytics overview for stats and growths. Export selected rows to CSV. When support needs deeper context, impersonate a user, debug, and stop the session in one click.

User Management FAQ

How users are stored, verified, sessioned, invited, exported and supported across the platform.

Can't find what you're looking for?

Contact Sales

Account fields (email, phone, username, password, name, avatar), profile fields (bio, professional summary, designation, expertise, gender, date of birth, address), geo fields (continent, country, city, state, timezone, locale, auto-detected from session), three type flags (is_admin, is_instructor, is_learner), six social links (LinkedIn, Twitter, Facebook, Instagram, YouTube, website) and OAuth provider IDs for Google, Facebook, Apple and GitHub. Everything is tenant-scoped and exportable to CSV.

Start Building Learning Your Way

Set up courses, programs, and learning experiences without forcing your process into rigid software. A connected system for students, educators, and administrators.

Build Your Academy