IT Assets: remove manual user creation from settings

Users are sourced exclusively from the portal (via SSO auto-create or
the Sync from Portal button). The Add User form and create_admin route
are removed to prevent out-of-sync local-only accounts.
A footer hint now links admins to the portal settings page.
This commit is contained in:
ske087
2026-07-08 22:39:35 +03:00
parent 06b2152331
commit 95ea6a3a35
2 changed files with 6 additions and 62 deletions
@@ -15,35 +15,6 @@ def index():
return render_template('settings/index.html', admins=admins, config=current_app.config)
@bp.route('/admin/new', methods=['POST'])
@login_required
@admin_required
def create_admin():
username = request.form.get('username', '').strip()
email = request.form.get('email', '').strip()
full_name = request.form.get('full_name', '').strip()
password = request.form.get('password', '')
role = request.form.get('role', 'readonly')
if role not in ('admin', 'editor', 'readonly'):
role = 'readonly'
if not username or not email or not password:
flash('Username, email and password are required.', 'danger')
return redirect(url_for('settings.index'))
if AdminUser.query.filter_by(username=username).first():
flash(f'Username "{username}" is already taken.', 'danger')
return redirect(url_for('settings.index'))
admin = AdminUser(username=username, email=email, full_name=full_name, role=role)
admin.set_password(password)
db.session.add(admin)
db.session.commit()
flash(f'User "{username}" created with role "{role}".', 'success')
return redirect(url_for('settings.index'))
@bp.route('/admin/<int:admin_id>/toggle', methods=['POST'])
@login_required
@admin_required
@@ -87,41 +87,14 @@
</table>
</div>
<!-- Add user form (admin only) -->
<!-- Add user form removed — users are managed via the portal and synced automatically -->
{% if current_user.is_admin %}
<div class="card-footer bg-white">
<h6 class="fw-semibold mb-3 mt-1"><i class="bi bi-person-plus me-1"></i>Add User</h6>
<form method="POST" action="{{ url_for('settings.create_admin') }}">
<div class="row g-2">
<div class="col-md-3">
<input type="text" name="username" class="form-control form-control-sm" placeholder="Username" required>
</div>
<div class="col-md-3">
<input type="text" name="full_name" class="form-control form-control-sm" placeholder="Full Name">
</div>
<div class="col-md-3">
<input type="email" name="email" class="form-control form-control-sm" placeholder="Email" required>
</div>
<div class="col-md-2">
<input type="password" name="password" class="form-control form-control-sm" placeholder="Password" required minlength="8">
</div>
<div class="col-md-2">
<select name="role" class="form-select form-select-sm">
<option value="readonly">readonly</option>
<option value="editor">editor</option>
<option value="admin">admin</option>
</select>
</div>
<div class="col-auto">
<button type="submit" class="btn btn-sm btn-primary">Add</button>
</div>
</div>
<small class="text-muted mt-1 d-block">
<strong>readonly</strong> view only &nbsp;|&nbsp;
<strong>editor</strong> create &amp; edit data &nbsp;|&nbsp;
<strong>admin</strong> full access including user management
</small>
</form>
<small class="text-muted">
<i class="bi bi-info-circle me-1"></i>
Users are managed in the <a href="/" class="text-decoration-none">Portal</a>.
Use <strong>Sync from Portal</strong> above to pull the latest access list.
</small>
</div>
{% endif %}
</div>