modify nav..
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2026-07-13 16:56:13 +09:00
parent aac1d01526
commit 195a893bd1
6 changed files with 30 additions and 92 deletions
+8 -19
View File
@@ -3,10 +3,8 @@ import { createHash, randomBytes, scryptSync } from 'node:crypto';
import { BadRequestException, Injectable, NotFoundException } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { AuthPrismaService } from '../auth-prisma/auth-prisma.service';
import { GiteaService } from '../gitea/gitea.service';
import { PrismaService } from '../prisma/prisma.service';
import { getUserAvatarUrl } from '../users/users.service';
import { AdminRole } from './admin-role';
import {
CreateAdminSshKeyDto,
@@ -21,7 +19,6 @@ import {
@Injectable()
export class AdminsService {
constructor(
private readonly authPrisma: AuthPrismaService,
private readonly configService: ConfigService,
private readonly giteaService: GiteaService,
private readonly prisma: PrismaService,
@@ -98,27 +95,12 @@ export class AdminsService {
this.prisma.admin.count({ where }),
]);
const users = await this.authPrisma.user.findMany({
where: { email: { in: admins.map((admin) => admin.email) } },
select: {
id: true,
email: true,
profileImageMime: true,
},
});
const userByEmail = new Map(users.map((user) => [user.email, user]));
const authBaseUrl = this.configService.get<string>('AUTH_PUBLIC_URL')
?? this.configService.get<string>('ATNMY_AUTH_URL')
?? this.configService.get<string>('AUTH_EXTERNAL_URL')
?? 'https://auth.autonomystudio.net';
return {
admins: admins.map((admin, index) => {
const user = userByEmail.get(admin.email);
return {
...admin,
no: total - ((page - 1) * limit + index),
avatarUrl: getUserAvatarUrl(user?.id ?? '', user?.profileImageMime, authBaseUrl),
avatarUrl: getAdminAvatarUrl(admin.id, this.configService),
};
}),
total,
@@ -352,6 +334,13 @@ export class AdminsService {
}
}
function getAdminAvatarUrl(adminId: string, configService: ConfigService) {
const publicBaseUrl = configService.get<string>('R2_PUBLIC_BASE_URL')?.replace(/\/+$/, '');
if (!publicBaseUrl) return null;
const prefix = configService.get<string>('R2_PUBLIC_FILE_PREFIX', 'studio-files/public');
return `${publicBaseUrl}/${prefix.replace(/^\/+|\/+$/g, '')}/admins/${adminId}/avatar`;
}
const adminSelect = {
id: true,
email: true,