242 lines
8.9 KiB
HTML
242 lines
8.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Setup Oliver Super Admin - ScriptShare</title>
|
|
<style>
|
|
body {
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
max-width: 800px;
|
|
margin: 0 auto;
|
|
padding: 20px;
|
|
background: #f5f5f5;
|
|
}
|
|
.container {
|
|
background: white;
|
|
padding: 30px;
|
|
border-radius: 12px;
|
|
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
|
}
|
|
h1 {
|
|
color: #2563eb;
|
|
margin-bottom: 20px;
|
|
}
|
|
.setup-button {
|
|
background: #2563eb;
|
|
color: white;
|
|
border: none;
|
|
padding: 12px 24px;
|
|
border-radius: 6px;
|
|
font-size: 16px;
|
|
cursor: pointer;
|
|
margin: 10px 0;
|
|
}
|
|
.setup-button:hover {
|
|
background: #1d4ed8;
|
|
}
|
|
.success {
|
|
background: #dcfce7;
|
|
border: 1px solid #22c55e;
|
|
color: #166534;
|
|
padding: 15px;
|
|
border-radius: 6px;
|
|
margin: 20px 0;
|
|
}
|
|
.info {
|
|
background: #dbeafe;
|
|
border: 1px solid #3b82f6;
|
|
color: #1e40af;
|
|
padding: 15px;
|
|
border-radius: 6px;
|
|
margin: 20px 0;
|
|
}
|
|
.user-details {
|
|
background: #f8fafc;
|
|
border: 1px solid #e2e8f0;
|
|
padding: 15px;
|
|
border-radius: 6px;
|
|
margin: 20px 0;
|
|
font-family: monospace;
|
|
font-size: 14px;
|
|
}
|
|
.step {
|
|
margin: 20px 0;
|
|
padding: 15px;
|
|
background: #f8fafc;
|
|
border-radius: 6px;
|
|
}
|
|
.step-number {
|
|
background: #2563eb;
|
|
color: white;
|
|
width: 24px;
|
|
height: 24px;
|
|
border-radius: 50%;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 14px;
|
|
font-weight: bold;
|
|
margin-right: 10px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<h1>🔧 Setup Oliver Super Admin</h1>
|
|
|
|
<div class="info">
|
|
<strong>What this does:</strong> This tool will create a super admin account for 'Oliver' in your browser's localStorage, allowing you to access the admin panel immediately.
|
|
</div>
|
|
|
|
<button class="setup-button" onclick="setupOliverAdmin()">
|
|
🚀 Setup Oliver Super Admin
|
|
</button>
|
|
|
|
<div id="result"></div>
|
|
|
|
<div class="step">
|
|
<span class="step-number">1</span>
|
|
<strong>Click the button above</strong> to create the Oliver super admin account
|
|
</div>
|
|
|
|
<div class="step">
|
|
<span class="step-number">2</span>
|
|
<strong>Go to ScriptShare</strong> - Navigate to your ScriptShare application
|
|
</div>
|
|
|
|
<div class="step">
|
|
<span class="step-number">3</span>
|
|
<strong>Refresh the page</strong> - You should now be automatically logged in as Oliver Super Admin
|
|
</div>
|
|
|
|
<div class="step">
|
|
<span class="step-number">4</span>
|
|
<strong>Access Admin Panel</strong> - Click on your user menu and select "Super Admin" to access the admin panel
|
|
</div>
|
|
|
|
<div class="info">
|
|
<strong>Note:</strong> This setup is stored in your browser's localStorage. If you clear your browser data or use a different browser, you'll need to run this setup again.
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
function generateId() {
|
|
return Math.random().toString(36).substring(2) + Date.now().toString(36);
|
|
}
|
|
|
|
function createOliverSuperAdmin() {
|
|
const SUPER_USER_PERMISSIONS = [
|
|
'user:create',
|
|
'user:read',
|
|
'user:update',
|
|
'user:delete',
|
|
'user:promote',
|
|
'script:approve',
|
|
'script:reject',
|
|
'script:delete',
|
|
'comment:moderate',
|
|
'system:configure',
|
|
'analytics:view',
|
|
'backup:manage'
|
|
];
|
|
|
|
return {
|
|
id: generateId(),
|
|
email: 'oliver@scriptshare.com',
|
|
username: 'oliver',
|
|
displayName: 'Oliver',
|
|
avatarUrl: 'https://api.dicebear.com/7.x/avataaars/svg?seed=oliver',
|
|
bio: 'Founder and Super Administrator of ScriptShare',
|
|
website: 'https://scriptshare.com',
|
|
location: 'Digital Realm',
|
|
company: 'ScriptShare',
|
|
isAdmin: true,
|
|
isModerator: true,
|
|
isSuperUser: true,
|
|
permissions: [...SUPER_USER_PERMISSIONS],
|
|
createdAt: new Date().toISOString(),
|
|
updatedAt: new Date().toISOString(),
|
|
};
|
|
}
|
|
|
|
function setupOliverAdmin() {
|
|
try {
|
|
const oliverAdmin = createOliverSuperAdmin();
|
|
|
|
// Save to localStorage
|
|
localStorage.setItem('scriptshare-user-data', JSON.stringify(oliverAdmin));
|
|
localStorage.setItem('scriptshare-auth-token', generateId());
|
|
|
|
// Also add to admin users list
|
|
const existingUsers = JSON.parse(localStorage.getItem('scriptshare-admin-users') || '[]');
|
|
existingUsers.push(oliverAdmin);
|
|
localStorage.setItem('scriptshare-admin-users', JSON.stringify(existingUsers));
|
|
|
|
const resultDiv = document.getElementById('result');
|
|
resultDiv.innerHTML = `
|
|
<div class="success">
|
|
<h3>✅ Oliver Super Admin Setup Complete!</h3>
|
|
<p>Oliver has been successfully set up as a super administrator.</p>
|
|
</div>
|
|
|
|
<div class="user-details">
|
|
<strong>User Details:</strong><br>
|
|
Email: ${oliverAdmin.email}<br>
|
|
Username: ${oliverAdmin.username}<br>
|
|
Display Name: ${oliverAdmin.displayName}<br>
|
|
Role: Super Administrator<br>
|
|
Permissions: ${oliverAdmin.permissions.length} total
|
|
</div>
|
|
|
|
<div class="info">
|
|
<strong>Next Steps:</strong><br>
|
|
1. Go to your ScriptShare application<br>
|
|
2. Refresh the page<br>
|
|
3. You should now be logged in as Oliver Super Admin<br>
|
|
4. Access the admin panel from your user menu
|
|
</div>
|
|
`;
|
|
|
|
console.log('✅ Oliver Super Admin setup complete in browser!');
|
|
console.log('User data:', oliverAdmin);
|
|
|
|
} catch (error) {
|
|
console.error('❌ Error setting up Oliver Super Admin:', error);
|
|
document.getElementById('result').innerHTML = `
|
|
<div class="success" style="background: #fef2f2; border-color: #ef4444; color: #991b1b;">
|
|
<h3>❌ Setup Failed</h3>
|
|
<p>Error: ${error.message}</p>
|
|
<p>Check the browser console for more details.</p>
|
|
</div>
|
|
`;
|
|
}
|
|
}
|
|
|
|
// Check if Oliver is already set up
|
|
function checkExistingSetup() {
|
|
const userData = localStorage.getItem('scriptshare-user-data');
|
|
if (userData) {
|
|
try {
|
|
const user = JSON.parse(userData);
|
|
if (user.username === 'oliver' && user.isSuperUser) {
|
|
document.getElementById('result').innerHTML = `
|
|
<div class="success">
|
|
<h3>✅ Oliver Super Admin Already Set Up!</h3>
|
|
<p>Oliver is already configured as a super administrator in this browser.</p>
|
|
<p>You can go to ScriptShare and refresh the page to log in.</p>
|
|
</div>
|
|
`;
|
|
}
|
|
} catch (e) {
|
|
// Invalid data, ignore
|
|
}
|
|
}
|
|
}
|
|
|
|
// Check on page load
|
|
window.addEventListener('load', checkExistingSetup);
|
|
</script>
|
|
</body>
|
|
</html>
|