#!/usr/bin/env bare
await import('bare-node-runtime/global')
import Corestore from 'corestore'
import Hyperbee from 'hyperbee'
import { AuthManager } from './lib/auth.js'
const userId = process.argv[2] || 'e6be384768f2b183dccc5e163a5daec6'
console.log(`Testing authentication for user: ${userId}`)
const storage = './pear-git-storage'
const store = new Corestore(storage)
const registryCore = store.get({ name: 'registry' })
const registry = new Hyperbee(registryCore, {
keyEncoding: 'utf-8',
valueEncoding: 'json'
})
await registry.ready()
// Get user directly
const userEntry = await registry.get(`user:${userId}`)
if (!userEntry) {
console.error('User not found')
process.exit(1)
}
const user = userEntry.value
console.log('\nUser from database:')
console.log(' userId:', user.userId)
console.log(' globalPermissions:', user.globalPermissions)
console.log(' repos:', JSON.stringify(user.repos, null, 2))
// Test formatUserPermissions
const authManager = new AuthManager({ registry })
const permissions = authManager.formatUserPermissions(user, null)
console.log('\nFormatted permissions (repoName=null):')
console.log(' ', JSON.stringify(permissions, null, 2))
console.log('\nChecks:')
console.log(' permissions.admin:', permissions.admin)
console.log(' !permissions.admin:', !permissions.admin)
console.log(' Should allow admin access:', permissions.admin === true)
process.exit(0)