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" /> <Settings className="h-4 w-4" />
</Button> </Button>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent className="w-64"> <DropdownMenuContent className="w-64" align="end" sideOffset={5}>
{session?.user ? ( {session?.user ? (
<DropdownMenuGroup> <DropdownMenuGroup>
<div className="flex flex-row items-start gap-3 p-2"> <div className="flex flex-row items-center gap-3 px-3 py-3">
<Avatar className="flex-shrink-0"> <Avatar className="h-10 w-10 flex-shrink-0">
<AvatarImage <AvatarImage
src={session.user.image ?? ""} src={session.user.image ?? ""}
/> />
<AvatarFallback> <AvatarFallback className="bg-primary/10 text-primary font-semibold">
{session.user.name && session.user.name.length > 0 ? session.user.name[0] : 'U'} {session.user.name && session.user.name.length > 0 ? session.user.name[0].toUpperCase() : 'U'}
</AvatarFallback> </AvatarFallback>
</Avatar> </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> </div>
<DropdownMenuItem <DropdownMenuItem
onClick={() => { onClick={() => {

View file

@ -20,13 +20,13 @@ export const getSSOProviders = (): Provider[] => {
const providers: Provider[] = []; const providers: Provider[] = [];
if (env.AUTH_EE_GITHUB_CLIENT_ID && env.AUTH_EE_GITHUB_CLIENT_SECRET) { 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({ providers.push(GitHub({
clientId: env.AUTH_EE_GITHUB_CLIENT_ID, clientId: env.AUTH_EE_GITHUB_CLIENT_ID,
clientSecret: env.AUTH_EE_GITHUB_CLIENT_SECRET, clientSecret: env.AUTH_EE_GITHUB_CLIENT_SECRET,
enterprise: {
baseUrl: env.AUTH_EE_GITHUB_BASE_URL,
},
authorization: { authorization: {
url: `${baseUrl}/login/oauth/authorize`,
params: { params: {
scope: [ scope: [
'read:user', 'read:user',
@ -41,14 +41,7 @@ export const getSSOProviders = (): Provider[] => {
].join(' '), ].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) { if (env.AUTH_EE_GITLAB_CLIENT_ID && env.AUTH_EE_GITLAB_CLIENT_SECRET) {
providers.push(Gitlab({ providers.push(Gitlab({