properly handle emails for github app auth case

This commit is contained in:
msukkari 2025-10-18 14:00:52 -07:00
parent 5b09757e92
commit fa8e0d294f
2 changed files with 14 additions and 16 deletions

View file

@ -73,19 +73,24 @@ export const SettingsDropdown = ({
<Settings className="h-4 w-4" />
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent className="w-64">
<DropdownMenuContent className="w-64" align="end" sideOffset={5}>
{session?.user ? (
<DropdownMenuGroup>
<div className="flex flex-row items-start gap-3 p-2">
<Avatar className="flex-shrink-0">
<div className="flex flex-row items-center gap-3 px-3 py-3">
<Avatar className="h-10 w-10 flex-shrink-0">
<AvatarImage
src={session.user.image ?? ""}
/>
<AvatarFallback>
{session.user.name && session.user.name.length > 0 ? session.user.name[0] : 'U'}
<AvatarFallback className="bg-primary/10 text-primary font-semibold">
{session.user.name && session.user.name.length > 0 ? session.user.name[0].toUpperCase() : 'U'}
</AvatarFallback>
</Avatar>
<p className="text-sm font-medium break-all flex-1 leading-relaxed">{session.user.email ?? "User"}</p>
<div className="flex flex-col flex-1 min-w-0">
<p className="text-sm font-semibold truncate">{session.user.name ?? "User"}</p>
{session.user.email && (
<p className="text-xs text-muted-foreground truncate">{session.user.email}</p>
)}
</div>
</div>
<DropdownMenuItem
onClick={() => {

View file

@ -20,13 +20,13 @@ export const getSSOProviders = (): Provider[] => {
const providers: Provider[] = [];
if (env.AUTH_EE_GITHUB_CLIENT_ID && env.AUTH_EE_GITHUB_CLIENT_SECRET) {
const baseUrl = env.AUTH_EE_GITHUB_BASE_URL ?? "https://github.com";
const apiUrl = env.AUTH_EE_GITHUB_BASE_URL ? `${env.AUTH_EE_GITHUB_BASE_URL}/api/v3` : "https://api.github.com";
providers.push(GitHub({
clientId: env.AUTH_EE_GITHUB_CLIENT_ID,
clientSecret: env.AUTH_EE_GITHUB_CLIENT_SECRET,
enterprise: {
baseUrl: env.AUTH_EE_GITHUB_BASE_URL,
},
authorization: {
url: `${baseUrl}/login/oauth/authorize`,
params: {
scope: [
'read:user',
@ -41,14 +41,7 @@ export const getSSOProviders = (): Provider[] => {
].join(' '),
},
},
token: {
url: `${baseUrl}/login/oauth/access_token`,
},
userinfo: {
url: `${apiUrl}/user`,
},
}));
}
if (env.AUTH_EE_GITLAB_CLIENT_ID && env.AUTH_EE_GITLAB_CLIENT_SECRET) {
providers.push(Gitlab({