vumichien commited on
Commit
6d8c8cd
·
1 Parent(s): ec96194
Files changed (3) hide show
  1. admin.py +9 -0
  2. database.db +0 -0
  3. templates/admin.html +10 -0
admin.py CHANGED
@@ -152,6 +152,8 @@ async def edit_user(
152
  email: str = Form(...),
153
  is_admin: bool = Form(False),
154
  is_active: bool = Form(False),
 
 
155
  db: Session = Depends(get_db),
156
  ):
157
  current_user = login_required(request, db)
@@ -168,10 +170,17 @@ async def edit_user(
168
  and db.query(User).filter(User.username == new_username).first()
169
  ):
170
  raise HTTPException(status_code=400, detail="Username already exists")
 
171
  user.username = new_username
172
  user.email = email
173
  user.is_admin = is_admin
174
  user.is_active = is_active
 
 
 
 
 
 
175
  db.commit()
176
  return RedirectResponse(url="/admin", status_code=status.HTTP_302_FOUND)
177
 
 
152
  email: str = Form(...),
153
  is_admin: bool = Form(False),
154
  is_active: bool = Form(False),
155
+ old_password: str = Form(None),
156
+ new_password: str = Form(None),
157
  db: Session = Depends(get_db),
158
  ):
159
  current_user = login_required(request, db)
 
170
  and db.query(User).filter(User.username == new_username).first()
171
  ):
172
  raise HTTPException(status_code=400, detail="Username already exists")
173
+
174
  user.username = new_username
175
  user.email = email
176
  user.is_admin = is_admin
177
  user.is_active = is_active
178
+
179
+ if old_password and new_password:
180
+ if user.password != old_password:
181
+ raise HTTPException(status_code=400, detail="Incorrect old password")
182
+ user.password = new_password
183
+
184
  db.commit()
185
  return RedirectResponse(url="/admin", status_code=status.HTTP_302_FOUND)
186
 
database.db CHANGED
Binary files a/database.db and b/database.db differ
 
templates/admin.html CHANGED
@@ -204,6 +204,14 @@
204
  <input type="checkbox" class="form-check-input" id="editIsActive" name="is_active" value="true">
205
  <label class="form-check-label" for="editIsActive">Is Active</label>
206
  </div>
 
 
 
 
 
 
 
 
207
  </div>
208
  <div class="modal-footer">
209
  <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
@@ -330,6 +338,8 @@
330
  document.getElementById('editEmail').value = email;
331
  document.getElementById('editIsAdmin').checked = isAdmin;
332
  document.getElementById('editIsActive').checked = isActive;
 
 
333
  var editUserModal = new bootstrap.Modal(document.getElementById('editUserModal'));
334
  editUserModal.show();
335
  }
 
204
  <input type="checkbox" class="form-check-input" id="editIsActive" name="is_active" value="true">
205
  <label class="form-check-label" for="editIsActive">Is Active</label>
206
  </div>
207
+ <div class="mb-3">
208
+ <label for="editOldPassword" class="form-label">Old Password</label>
209
+ <input type="password" class="form-control" id="editOldPassword" name="old_password">
210
+ </div>
211
+ <div class="mb-3">
212
+ <label for="editNewPassword" class="form-label">New Password</label>
213
+ <input type="password" class="form-control" id="editNewPassword" name="new_password">
214
+ </div>
215
  </div>
216
  <div class="modal-footer">
217
  <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
 
338
  document.getElementById('editEmail').value = email;
339
  document.getElementById('editIsAdmin').checked = isAdmin;
340
  document.getElementById('editIsActive').checked = isActive;
341
+ document.getElementById('editOldPassword').value = '';
342
+ document.getElementById('editNewPassword').value = '';
343
  var editUserModal = new bootstrap.Modal(document.getElementById('editUserModal'));
344
  editUserModal.show();
345
  }