v1.7.1: 멤버 권한·추천 사이트·네비게이션 UI 개선
관리자는 VIP·멤버만 수정 가능하도록 서버·UI 권한을 정리하고 소유자 권한 이전 API와 확인 모달을 추가했다. 추천 사이트 파비콘 캐시·URL 접두사·카드 편집 UI를 보강하고 확인 얼럿을 AdminConfirmModal로 통일했다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -137,7 +137,7 @@ const isAvatarUrlReferencedByProfile = async (url) => {
|
||||
/**
|
||||
* URL 목록에 대해 아바타를 사용 중인 회원 정보를 조회한다.
|
||||
* @param {Array<string>} urls - 미디어 URL 목록
|
||||
* @returns {Promise<Map<string, { id: string, username: string, email: string, lastSeenAt: string | null, lastSeenIp: string }>>} URL별 회원 요약
|
||||
* @returns {Promise<Map<string, { id: string, username: string, email: string, roleCode: string, lastSeenAt: string | null, lastSeenIp: string }>>} URL별 회원 요약
|
||||
*/
|
||||
const getAvatarOwnersByUrls = async (urls) => {
|
||||
const sql = getPostgresClient()
|
||||
@@ -152,6 +152,7 @@ const getAvatarOwnersByUrls = async (urls) => {
|
||||
id,
|
||||
username,
|
||||
email,
|
||||
user_role AS "roleCode",
|
||||
last_seen_at,
|
||||
last_seen_ip,
|
||||
avatar_url
|
||||
@@ -169,6 +170,7 @@ const getAvatarOwnersByUrls = async (urls) => {
|
||||
id: row.id,
|
||||
username: row.username,
|
||||
email: row.email,
|
||||
roleCode: String(row.roleCode || 'member'),
|
||||
lastSeenAt: row.last_seen_at ? row.last_seen_at.toISOString() : null,
|
||||
lastSeenIp: row.last_seen_ip || ''
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user