feat: add company management and user-company assignment in admin panel
All checks were successful
Staging Build / build (push) Successful in 2m35s
All checks were successful
Staging Build / build (push) Successful in 2m35s
This commit is contained in:
@@ -10,18 +10,24 @@ export async function getUsers() {
|
||||
|
||||
const { data: dbUsers, error: dbError } = await admin
|
||||
.from('users')
|
||||
.select('id, role')
|
||||
.select('id, role, company_id, companies(id, name)')
|
||||
|
||||
const roleMap: Record<string, string> = {}
|
||||
const userMap: Record<string, { role: string; company_id: string | null; company_name: string | null }> = {}
|
||||
if (!dbError && dbUsers) {
|
||||
dbUsers.forEach(u => {
|
||||
roleMap[u.id] = u.role
|
||||
dbUsers.forEach((u: any) => {
|
||||
userMap[u.id] = {
|
||||
role: u.role,
|
||||
company_id: u.company_id || null,
|
||||
company_name: u.companies?.name || null,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return users.map(u => ({
|
||||
...u,
|
||||
role: roleMap[u.id] || 'partner'
|
||||
role: userMap[u.id]?.role || 'partner',
|
||||
company_id: userMap[u.id]?.company_id || null,
|
||||
company_name: userMap[u.id]?.company_name || null,
|
||||
}))
|
||||
}
|
||||
|
||||
@@ -90,15 +96,26 @@ export async function getPartners() {
|
||||
|
||||
const { data: dbUsers, error: dbError } = await admin
|
||||
.from('users')
|
||||
.select('id, role')
|
||||
.select('id, role, company_id, companies(id, name)')
|
||||
.in('role', ['partner', 'gesperrt'])
|
||||
if (dbError) throw dbError
|
||||
|
||||
const roleMap: Record<string, string> = {}
|
||||
dbUsers.forEach(u => { roleMap[u.id] = u.role })
|
||||
const userMap: Record<string, { role: string; company_id: string | null; company_name: string | null }> = {}
|
||||
dbUsers.forEach((u: any) => {
|
||||
userMap[u.id] = {
|
||||
role: u.role,
|
||||
company_id: u.company_id || null,
|
||||
company_name: u.companies?.name || null,
|
||||
}
|
||||
})
|
||||
|
||||
const partnerIds = new Set(dbUsers.map(u => u.id))
|
||||
return users
|
||||
.filter(u => partnerIds.has(u.id))
|
||||
.map(u => ({ ...u, role: roleMap[u.id] || 'partner' }))
|
||||
.map(u => ({
|
||||
...u,
|
||||
role: userMap[u.id]?.role || 'partner',
|
||||
company_id: userMap[u.id]?.company_id || null,
|
||||
company_name: userMap[u.id]?.company_name || null,
|
||||
}))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user