diff --git a/models.py b/models.py index 597b234..e275d1b 100644 --- a/models.py +++ b/models.py @@ -81,6 +81,10 @@ class User(db.Model, UserMixin): def is_admin(self): return self.role == 'admin' + @is_admin.setter + def is_admin(self, value): + self.role = 'admin' if value else 'user' + class Category(db.Model): """Wissenschaftliche Kategorien für die Gliederung der öffentlichen Mindmap""" id = db.Column(db.Integer, primary_key=True) diff --git a/static/css/base-styles.css b/static/css/base-styles.css index 4bb2600..4a8b140 100644 --- a/static/css/base-styles.css +++ b/static/css/base-styles.css @@ -457,22 +457,23 @@ body:not(.dark) a:hover { /* Light Mode Buttons */ body:not(.dark) .btn, body:not(.dark) button:not(.toggle) { - background-color: var(--light-primary); + background: linear-gradient(135deg, #6d28d9, #5b21b6); color: white; border: none; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 4px rgba(91, 33, 182, 0.25); border-radius: 8px; padding: 0.625rem 1.25rem; transition: all 0.2s ease; font-weight: 600; letter-spacing: 0.02em; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } body:not(.dark) .btn:hover, body:not(.dark) button:not(.toggle):hover { - background-color: var(--light-primary-hover); + background: linear-gradient(135deg, #7c3aed, #6d28d9); transform: translateY(-1px); - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + box-shadow: 0 4px 12px rgba(109, 40, 217, 0.3); } /* Dark/Light Mode Switch Button */ @@ -583,36 +584,36 @@ body:not(.dark) .card:hover { /* Light Mode Buttons mit verbesserter Lesbarkeit */ body:not(.dark) .btn-primary { - background: linear-gradient(135deg, #7c3aed, #6d28d9); + background: linear-gradient(135deg, #6d28d9, #5b21b6); color: white; border: none; transition: all 0.2s ease; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3); + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); font-weight: 600; letter-spacing: 0.02em; - box-shadow: 0 2px 4px rgba(109, 40, 217, 0.2); + box-shadow: 0 2px 4px rgba(91, 33, 182, 0.3); border-radius: 8px; } body:not(.dark) .btn-primary:hover { - background: linear-gradient(135deg, #8b5cf6, #7c3aed); - box-shadow: 0 4px 12px rgba(124, 58, 237, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1); + background: linear-gradient(135deg, #7c3aed, #6d28d9); + box-shadow: 0 4px 12px rgba(109, 40, 217, 0.4), 0 2px 4px rgba(0, 0, 0, 0.1); transform: translateY(-1px); } body:not(.dark) .btn-secondary { - background: white; + background: linear-gradient(135deg, #ffffff, #f9fafb); color: #1f2937; border: 2px solid #e5e7eb; font-weight: 600; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); border-radius: 8px; } body:not(.dark) .btn-secondary:hover { - background: #f9fafb; + background: linear-gradient(135deg, #f9fafb, #f3f4f6); border-color: #d1d5db; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12); transform: translateY(-1px); } diff --git a/utils/user_manager.py b/utils/user_manager.py index 081fff0..77234f3 100644 --- a/utils/user_manager.py +++ b/utils/user_manager.py @@ -55,7 +55,7 @@ def create_user(username, email, password, is_admin=False): user = User( username=username, email=email, - is_admin=is_admin, + role='admin' if is_admin else 'user', created_at=datetime.utcnow() ) user.set_password(password)