[{"data":1,"prerenderedAt":950},["ShallowReactive",2],{"navigation":3,"\u002Fadmin\u002Fusers":178,"\u002Fadmin\u002Fusers-surround":945},[4,23,78,95,123,143,158],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration","i-lucide-settings",false,{"title":24,"icon":22,"path":25,"stem":26,"children":27,"page":22},"Sign-in","\u002Fsign-in","2.sign-in",[28,33,38,43,48,53,58,63,68,73],{"title":29,"path":30,"stem":31,"icon":32},"Sign-in pages","\u002Fsign-in\u002Fpages","2.sign-in\u002F1.pages","i-lucide-log-in",{"title":34,"path":35,"stem":36,"icon":37},"Several accounts","\u002Fsign-in\u002Fmulti-session","2.sign-in\u002F10.multi-session","i-lucide-users-round",{"title":39,"path":40,"stem":41,"icon":42},"Account page","\u002Fsign-in\u002Faccount","2.sign-in\u002F2.account","i-lucide-circle-user",{"title":44,"path":45,"stem":46,"icon":47},"Other methods","\u002Fsign-in\u002Fmethods","2.sign-in\u002F3.methods","i-lucide-key-square",{"title":49,"path":50,"stem":51,"icon":52},"Sign-in providers","\u002Fsign-in\u002Fproviders","2.sign-in\u002F4.providers","i-lucide-share-2",{"title":54,"path":55,"stem":56,"icon":57},"Two-factor","\u002Fsign-in\u002Ftwo-factor","2.sign-in\u002F5.two-factor","i-lucide-shield-check",{"title":59,"path":60,"stem":61,"icon":62},"Passkeys","\u002Fsign-in\u002Fpasskeys","2.sign-in\u002F6.passkeys","i-lucide-fingerprint",{"title":64,"path":65,"stem":66,"icon":67},"Phone numbers","\u002Fsign-in\u002Fphone-numbers","2.sign-in\u002F7.phone-numbers","i-lucide-smartphone",{"title":69,"path":70,"stem":71,"icon":72},"Signing in devices","\u002Fsign-in\u002Fdevices","2.sign-in\u002F8.devices","i-lucide-tv",{"title":74,"path":75,"stem":76,"icon":77},"Security","\u002Fsign-in\u002Fsecurity","2.sign-in\u002F9.security","i-lucide-lock-keyhole",{"title":79,"path":80,"stem":81,"children":82,"icon":22},"Organizations","\u002Forganizations","3.organizations\u002F1.index",[83,85,90],{"title":79,"path":80,"stem":81,"icon":84},"i-lucide-building-2",{"title":86,"path":87,"stem":88,"icon":89},"Roles","\u002Forganizations\u002Froles","3.organizations\u002F2.roles","i-lucide-shield",{"title":91,"path":92,"stem":93,"icon":94},"Single sign-on","\u002Forganizations\u002Fsso","3.organizations\u002F3.sso","i-lucide-key-round",{"title":96,"path":97,"stem":98,"children":99,"icon":22},"Admin dashboard","\u002Fadmin","4.admin\u002F1.index",[100,103,108,113,118],{"title":101,"path":97,"stem":98,"icon":102},"Overview","i-lucide-layout-dashboard",{"title":104,"path":105,"stem":106,"icon":107},"Managing users","\u002Fadmin\u002Fusers","4.admin\u002F2.users","i-lucide-user-cog",{"title":109,"path":110,"stem":111,"icon":112},"Staff roles","\u002Fadmin\u002Froles","4.admin\u002F3.roles","i-lucide-shield-user",{"title":114,"path":115,"stem":116,"icon":117},"Audit log","\u002Fadmin\u002Faudit-log","4.admin\u002F4.audit-log","i-lucide-history",{"title":119,"path":120,"stem":121,"icon":122},"Your own pages","\u002Fadmin\u002Fextending","4.admin\u002F5.extending","i-lucide-layout-panel-left",{"title":124,"icon":22,"path":125,"stem":126,"children":127,"page":22},"Integrations","\u002Fintegrations","5.integrations",[128,133,138],{"title":129,"path":130,"stem":131,"icon":132},"Stripe","\u002Fintegrations\u002Fstripe","5.integrations\u002F1.stripe","i-simple-icons-stripe",{"title":134,"path":135,"stem":136,"icon":137},"API keys","\u002Fintegrations\u002Fapi-keys","5.integrations\u002F2.api-keys","i-lucide-key",{"title":139,"path":140,"stem":141,"icon":142},"Tokens","\u002Fintegrations\u002Ftokens","5.integrations\u002F3.tokens","i-lucide-ticket",{"title":144,"icon":22,"path":145,"stem":146,"children":147,"page":22},"Customization","\u002Fcustomization","6.customization",[148,153],{"title":149,"path":150,"stem":151,"icon":152},"Emails","\u002Fcustomization\u002Femails","6.customization\u002F1.emails","i-lucide-mail",{"title":154,"path":155,"stem":156,"icon":157},"Languages","\u002Fcustomization\u002Flanguages","6.customization\u002F2.languages","i-lucide-languages",{"title":159,"icon":22,"path":160,"stem":161,"children":162,"page":22},"Reference","\u002Freference","7.reference",[163,168,173],{"title":164,"path":165,"stem":166,"icon":167},"How it works","\u002Freference\u002Fhow-it-works","7.reference\u002F1.how-it-works","i-lucide-cog",{"title":169,"path":170,"stem":171,"icon":172},"API reference","\u002Freference\u002Fapi","7.reference\u002F2.api","i-lucide-braces",{"title":174,"path":175,"stem":176,"icon":177},"Contributing","\u002Freference\u002Fcontributing","7.reference\u002F3.contributing","i-lucide-git-pull-request",{"id":179,"title":104,"body":180,"description":938,"extension":939,"links":940,"meta":941,"navigation":942,"path":105,"seo":943,"stem":106,"__hash__":944},"docs\u002F4.admin\u002F2.users.md",{"type":181,"value":182,"toc":922},"minimark",[183,188,193,224,228,240,244,249,258,297,318,322,330,433,443,458,465,469,473,476,480,483,512,518,531,535,542,546,552,565,572,576,579,741,751,760,764,767,819,866,873,877,887,918],[184,185],"screenshot",{"alt":186,"name":187},"The users list: each user's role, status, email, sign-in methods, last active and last sign-in","admin-users",[189,190,192],"h2",{"id":191},"the-users-list","The users list",[194,195,196,212,218],"ul",{},[197,198,199,203,204,207,208,211],"li",{},[200,201,202],"strong",{},"Search"," by email or name, ",[200,205,206],{},"filter"," (admins, staff, banned, unverified, guests, two-factor off), ",[200,209,210],{},"sort"," and\npage through.",[197,213,214,217],{},[200,215,216],{},"Select rows"," to ban or delete several users at once.",[197,219,220,223],{},[200,221,222],{},"Columns"," show each user's sign-in methods (a key for email and password, a logo per provider, so users who only\nsign in with a provider stand out), two-factor, and, with the audit log, their last sign-in.",[189,225,227],{"id":226},"adding-a-user","Adding a user",[229,230,231,234,235,239],"p",{},[200,232,233],{},"Add user"," asks for a name, email, an optional password and a role. \"New user\" on the home page, or\n",[236,237,238],"code",{},"\u002Fadmin\u002Fusers?create=1",", opens it straight away. Once created, the toast links to their page.",[189,241,243],{"id":242},"exporting-and-importing","Exporting and importing",[245,246,248],"h3",{"id":247},"export","Export",[229,250,251,253,254,257],{},[200,252,248],{}," on the users list downloads every user as a CSV file (",[236,255,256],{},"users-\u003Cdate>.csv","), for staff who can list users.\nIt has:",[194,259,260,277,280,287],{},[197,261,262,265,266,265,269,272,273,276],{},[236,263,264],{},"name",", ",[236,267,268],{},"email",[236,270,271],{},"emailVerified"," and ",[236,274,275],{},"role"," first: the columns the import reads, so an export can be imported\nelsewhere;",[197,278,279],{},"their username, your app's own user fields, and the plugins' fields (phone number, two-factor, guest);",[197,281,282,283,286],{},"Better Auth's ",[236,284,285],{},"id",", ban details and dates;",[197,288,289,292,293,296],{},[236,290,291],{},"signInMethods",": their providers, with ",[236,294,295],{},"credential"," for email and password.",[229,298,299,300,265,303,265,306,309,310,313,314,317],{},"Never passwords, tokens or secrets. Text a spreadsheet would run as a formula (starting with ",[236,301,302],{},"=",[236,304,305],{},"+",[236,307,308],{},"-"," or ",[236,311,312],{},"@",") is\nwritten with a leading ",[236,315,316],{},"'",", so opening the file can't run anything. Each export is recorded in the audit log.",[245,319,321],{"id":320},"import","Import",[229,323,324,326,327,329],{},[200,325,321],{}," creates users from a CSV file, for staff who can create users. The file needs a header row and an ",[236,328,268],{},"\ncolumn. It reads:",[331,332,333,346],"table",{},[334,335,336],"thead",{},[337,338,339,343],"tr",{},[340,341,342],"th",{},"Column",[340,344,345],{},"What it is",[347,348,349,359,368,378,391,409,425],"tbody",{},[337,350,351,356],{},[352,353,354],"td",{},[236,355,268],{},[352,357,358],{},"Required. Emails that already have an account are skipped, never changed.",[337,360,361,365],{},[352,362,363],{},[236,364,264],{},[352,366,367],{},"Defaults to the email's first part.",[337,369,370,375],{},[352,371,372],{},[236,373,374],{},"password",[352,376,377],{},"Optional, within your app's length rules. Without one, people sign in another way or set one.",[337,379,380,384],{},[352,381,382],{},[236,383,275],{},[352,385,386,387,390],{},"Optional; several comma-separated. Staff need ",[236,388,389],{},"set-role"," to give roles.",[337,392,393,397],{},[352,394,395],{},[236,396,271],{},[352,398,399,265,402,309,405,408],{},[236,400,401],{},"true",[236,403,404],{},"yes",[236,406,407],{},"1"," marks the email verified.",[337,410,411,416],{},[352,412,413],{},[236,414,415],{},"username",[352,417,418,419,424],{},"With ",[420,421,423],"a",{"href":422},"\u002Fsign-in\u002Fmethods#usernames","usernames"," on, checked as Better Auth checks them.",[337,426,427,430],{},[352,428,429],{},"Your fields",[352,431,432],{},"Your app's own user fields, by name, in their types.",[229,434,435,436,265,439,442],{},"Header names match in any case, with or without spaces and underscores (",[236,437,438],{},"Email",[236,440,441],{},"email_verified","). Other columns are\nignored, and the dialog says which.",[444,445,446,449,452],"ol",{},[197,447,448],{},"Choose the file. The dialog reads it in the browser and says how many users it will create.",[197,450,451],{},"Optionally, email the people without a password a link to set one (with reset emails set up).",[197,453,454,457],{},[200,455,456],{},"Import."," Then it lists what happened to each row: created, skipped (already has an account, or earlier in the\nfile) or not created, and why.",[229,459,460,461,464],{},"Users are created through Better Auth's own ",[236,462,463],{},"createUser",", with your session, so Better Auth checks the permissions and\neach user created is in the audit log, as when you add one by hand. Up to 1000 users per file.",[189,466,468],{"id":467},"a-users-page","A user's page",[184,470],{"alt":471,"name":472},"A user's admin page: profile, role and status, with their sign-in methods and sessions","admin-user",[229,474,475],{},"Their profile, role and status, ban details, sign-in methods, and active sessions with device, IP and last activity.\nDepending on what's on, also: their username, phone number, organizations, subscription, API keys, your app's own user\nfields, staff notes, and their history from the audit log.",[245,477,479],{"id":478},"what-staff-can-do","What staff can do",[229,481,482],{},"From the row menu on the list, or the user's page:",[194,484,485,488,491,494,500,503,506,509],{},[197,486,487],{},"edit their name, email, avatar and whether the email is verified;",[197,489,490],{},"change their role;",[197,492,493],{},"set a password, or email them a reset link;",[197,495,496,499],{},[200,497,498],{},"resend the verification email"," to an unverified user;",[197,501,502],{},"ban them, with a reason and an expiry, or unban them;",[197,504,505],{},"sign them out of one session, or everywhere;",[197,507,508],{},"remove a sign-in method;",[197,510,511],{},"delete them.",[229,513,514,515,517],{},"Staff see only the actions their ",[420,516,275],{"href":110}," allows. Nobody can ban, delete or change the role of their own\naccount here, and Better Auth refuses self-bans too.",[519,520,521],"note",{},[229,522,523,524,527,528,530],{},"Better Auth only lets signed-in users resend a verification email to themselves, so the module sends it on the server\nwith ",[236,525,526],{},"auth.api.sendVerificationEmail",", through your own ",[420,529,268],{"href":150}," and template.",[245,532,534],{"id":533},"removing-a-sign-in-method","Removing a sign-in method",[229,536,537,538,541],{},"An old Google link, or their password, from the method's menu. As with Better Auth's own unlink endpoint, the last one\ncan't be removed, since it would lock them out, unless your Better Auth config sets\n",[236,539,540],{},"account.accountLinking.allowUnlinkingAll",".",[245,543,545],{"id":544},"lost-a-device","Lost a device?",[229,547,548,549,551],{},"With two-factor or passkeys on, each user's page has a ",[200,550,74],{}," card:",[194,553,554,560],{},[197,555,556,559],{},[200,557,558],{},"Turn their two-factor off."," Their authenticator app, backup codes and trusted devices stop working. Users who\nmust have two-factor are asked to set it up again.",[197,561,562],{},[200,563,564],{},"Remove a passkey.",[229,566,567,568,571],{},"Better Auth has no admin endpoints for these, so the module does what its plugins' own disable and delete do, after\nchecking the ",[236,569,570],{},"user: update"," permission. Both are recorded in the audit log.",[189,573,575],{"id":574},"signing-in-as-a-user","Signing in as a user",[229,577,578],{},"Impersonation lets an admin see the app as a user does. Turn it on, and add the banner to your app's layout:",[580,581,582,666],"code-group",{},[583,584,590],"pre",{"className":585,"code":586,"filename":587,"language":588,"meta":589,"style":589},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  betterAuthUi: {\n    admin: { impersonation: true }\n  }\n})\n","nuxt.config.ts","ts","",[236,591,592,615,628,651,657],{"__ignoreMap":589},[593,594,597,600,603,607,611],"span",{"class":595,"line":596},"line",1,[593,598,247],{"class":599},"s7zQu",[593,601,602],{"class":599}," default",[593,604,606],{"class":605},"s2Zo4"," defineNuxtConfig",[593,608,610],{"class":609},"sTEyZ","(",[593,612,614],{"class":613},"sMK4o","{\n",[593,616,618,622,625],{"class":595,"line":617},2,[593,619,621],{"class":620},"swJcz","  betterAuthUi",[593,623,624],{"class":613},":",[593,626,627],{"class":613}," {\n",[593,629,631,634,636,639,642,644,648],{"class":595,"line":630},3,[593,632,633],{"class":620},"    admin",[593,635,624],{"class":613},[593,637,638],{"class":613}," {",[593,640,641],{"class":620}," impersonation",[593,643,624],{"class":613},[593,645,647],{"class":646},"sfNiH"," true",[593,649,650],{"class":613}," }\n",[593,652,654],{"class":595,"line":653},4,[593,655,656],{"class":613},"  }\n",[593,658,660,663],{"class":595,"line":659},5,[593,661,662],{"class":613},"}",[593,664,665],{"class":609},")\n",[583,667,672],{"className":668,"code":669,"filename":670,"language":671,"meta":589,"style":589},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Ctemplate>\n  \u003CUApp>\n    \u003C!-- \"You're signed in as …\", with Stop impersonating. -->\n    \u003CAdminImpersonationBanner \u002F>\n    \u003CNuxtPage \u002F>\n  \u003C\u002FUApp>\n\u003C\u002Ftemplate>\n","app.vue","vue",[236,673,674,685,695,701,712,721,731],{"__ignoreMap":589},[593,675,676,679,682],{"class":595,"line":596},[593,677,678],{"class":613},"\u003C",[593,680,681],{"class":620},"template",[593,683,684],{"class":613},">\n",[593,686,687,690,693],{"class":595,"line":617},[593,688,689],{"class":613},"  \u003C",[593,691,692],{"class":620},"UApp",[593,694,684],{"class":613},[593,696,697],{"class":595,"line":630},[593,698,700],{"class":699},"sHwdD","    \u003C!-- \"You're signed in as …\", with Stop impersonating. -->\n",[593,702,703,706,709],{"class":595,"line":653},[593,704,705],{"class":613},"    \u003C",[593,707,708],{"class":620},"AdminImpersonationBanner",[593,710,711],{"class":613}," \u002F>\n",[593,713,714,716,719],{"class":595,"line":659},[593,715,705],{"class":613},[593,717,718],{"class":620},"NuxtPage",[593,720,711],{"class":613},[593,722,724,727,729],{"class":595,"line":723},6,[593,725,726],{"class":613},"  \u003C\u002F",[593,728,692],{"class":620},[593,730,684],{"class":613},[593,732,734,737,739],{"class":595,"line":733},7,[593,735,736],{"class":613},"\u003C\u002F",[593,738,681],{"class":620},[593,740,684],{"class":613},[229,742,743,746,747,750],{},[200,744,745],{},"Sign in as"," is then in the row menu and on each user's page. It's Better Auth's impersonation: a one-hour session\nthat keeps yours to return to, marked as an impersonation in their sessions list. ",[200,748,749],{},"Stop impersonating"," brings you\nback to their admin page. Admins and banned users can't be impersonated.",[752,753,754],"warning",{},[229,755,418,756,759],{},[236,757,758],{},"impersonation"," off, the module also refuses Better Auth's impersonate-user endpoint, since Better Auth's\ndefault admin role is otherwise allowed to use it.",[189,761,763],{"id":762},"staff-notes","Staff notes",[229,765,766],{},"Private notes on each user's page, like \"Warned for spam in chat\", newest first, with who wrote each and when.",[583,768,770],{"className":585,"code":769,"filename":587,"language":588,"meta":589,"style":589},"export default defineNuxtConfig({\n  betterAuthUi: {\n    admin: { notes: true }\n  }\n})\n",[236,771,772,784,792,809,813],{"__ignoreMap":589},[593,773,774,776,778,780,782],{"class":595,"line":596},[593,775,247],{"class":599},[593,777,602],{"class":599},[593,779,606],{"class":605},[593,781,610],{"class":609},[593,783,614],{"class":613},[593,785,786,788,790],{"class":595,"line":617},[593,787,621],{"class":620},[593,789,624],{"class":613},[593,791,627],{"class":613},[593,793,794,796,798,800,803,805,807],{"class":595,"line":630},[593,795,633],{"class":620},[593,797,624],{"class":613},[593,799,638],{"class":613},[593,801,802],{"class":620}," notes",[593,804,624],{"class":613},[593,806,647],{"class":646},[593,808,650],{"class":613},[593,810,811],{"class":595,"line":653},[593,812,656],{"class":613},[593,814,815,817],{"class":595,"line":659},[593,816,662],{"class":613},[593,818,665],{"class":609},[331,820,821,831],{},[334,822,823],{},[337,824,825,828],{},[340,826,827],{},"Staff who can",[340,829,830],{},"Can",[347,832,833,845,855],{},[337,834,835,842],{},[352,836,837,838,841],{},"View users (",[236,839,840],{},"user: get",")",[352,843,844],{},"Read notes",[337,846,847,852],{},[352,848,849,850,841],{},"Update users (",[236,851,570],{},[352,853,854],{},"Add notes, and delete their own",[337,856,857,863],{},[352,858,859,860,841],{},"Delete users (",[236,861,862],{},"user: delete",[352,864,865],{},"Delete anyone's notes",[229,867,868,869,872],{},"Users never see them, and they're left out of a user's data download. Adding and deleting are recorded in the audit\nlog, without the note's text. They're stored in an ",[236,870,871],{},"adminUserNote"," table (run Better Auth's migrations), and go when\nthe user is deleted.",[189,874,876],{"id":875},"your-apps-own-user-fields","Your app's own user fields",[229,878,282,879,882,883,886],{},[236,880,881],{},"user.additionalFields"," (a company, a plan, a region) show in a ",[200,884,885],{},"More details"," card on each user's\npage. Staff who can update users edit them, with an input per type: text, number, date, a switch, a select for a list\nof values, commas for lists.",[194,888,889,899,908],{},[197,890,891,894,895,898],{},[200,892,893],{},"Server-owned fields"," (",[236,896,897],{},"input: false",") are shown, not edited.",[197,900,901,894,904,907],{},[200,902,903],{},"Hidden fields",[236,905,906],{},"returned: false",") aren't shown, as Better Auth never returns them.",[197,909,910,913,914,917],{},[200,911,912],{},"Labels"," come from the field names: ",[236,915,916],{},"favoriteColor"," shows as \"Favorite color\".",[919,920,921],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":589,"searchDepth":596,"depth":617,"links":923},[924,925,926,930,935,936,937],{"id":191,"depth":617,"text":192},{"id":226,"depth":617,"text":227},{"id":242,"depth":617,"text":243,"children":927},[928,929],{"id":247,"depth":630,"text":248},{"id":320,"depth":630,"text":321},{"id":467,"depth":617,"text":468,"children":931},[932,933,934],{"id":478,"depth":630,"text":479},{"id":533,"depth":630,"text":534},{"id":544,"depth":630,"text":545},{"id":574,"depth":617,"text":575},{"id":762,"depth":617,"text":763},{"id":875,"depth":617,"text":876},"Find, add, edit, ban and delete users, and help them when they're locked out.","md",null,{},{"icon":107},{"title":104,"description":938},"wzomgxrQ4-O4UXfkqCowGYR7cA0rJlxzWRSRNHSVsAY",[946,948],{"title":101,"path":97,"stem":98,"description":947,"icon":102,"children":-1},"The admin dashboard at \u002Fadmin, where staff manage users through Better Auth's Admin plugin.",{"title":109,"path":110,"stem":111,"description":949,"icon":112,"children":-1},"Roles like moderator or support, with some of the admin's permissions.",1793019842936]