Aggressively fix permissions with wildcard fallback
This commit is contained in:
@@ -41,27 +41,36 @@ for service in services:
|
||||
|
||||
changed = False
|
||||
|
||||
# Ensure bridge.permissions structure exists
|
||||
# Ensure bridge.permissions structure exists and is a dict
|
||||
if 'bridge' not in data:
|
||||
data['bridge'] = {}
|
||||
|
||||
if 'permissions' not in data['bridge'] or data['bridge']['permissions'] is None:
|
||||
if 'permissions' not in data['bridge'] or not isinstance(data['bridge']['permissions'], dict):
|
||||
data['bridge']['permissions'] = {}
|
||||
changed = True
|
||||
|
||||
perms = data['bridge']['permissions']
|
||||
|
||||
# Add admin user if missing
|
||||
if admin_user not in perms:
|
||||
# Force set permissions to ensure they are present
|
||||
# We use string keys explicitly
|
||||
|
||||
# 1. Admin User
|
||||
if str(admin_user) not in perms:
|
||||
perms[str(admin_user)] = "admin"
|
||||
changed = True
|
||||
print(f" - Added admin permission for {admin_user}")
|
||||
|
||||
# Add beeper.local domain permission
|
||||
|
||||
# 2. Domain Permission
|
||||
if 'beeper.local' not in perms:
|
||||
perms['beeper.local'] = "user"
|
||||
changed = True
|
||||
print(f" - Added basic permission for beeper.local domain")
|
||||
print(f" - Added permission for beeper.local")
|
||||
|
||||
# 3. Wildcard Fallback (safety net)
|
||||
if '*' not in perms:
|
||||
perms['*'] = "user"
|
||||
changed = True
|
||||
print(f" - Added wildcard (*) permission")
|
||||
|
||||
if changed:
|
||||
with open(config_path, 'w') as f:
|
||||
|
||||
Reference in New Issue
Block a user