From 3cde9f1078c1ea9d3d05a33347587a35ba58aaf5 Mon Sep 17 00:00:00 2001 From: Julia Luna Date: Sun, 6 Jun 2021 18:03:24 +0200 Subject: [PATCH] chore: clean up code --- src/main.py | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/main.py b/src/main.py index a563027..47ff126 100644 --- a/src/main.py +++ b/src/main.py @@ -1,31 +1,33 @@ import ldap - from fastapi import FastAPI, HTTPException, Response from pydantic import BaseModel -from ldap import modlist -from config import LDAP_URI, LDAP_BASE_DN +from config import LDAP_BASE_DN, LDAP_URI app = FastAPI() + class PasswordUpdate(BaseModel): - bind_pw: str - userPassword: str + bind_pw: str + userPassword: str + @app.post("/users/{rdn}/updatePassword", status_code=204, response_class=Response) -def change_password(rdn: str, updateRequest: PasswordUpdate): - try: - ldap_conn = _connect_ldap_simple_bind(LDAP_URI, f"{rdn},{LDAP_BASE_DN}", updateRequest.bind_pw) - except ldap.INVALID_CREDENTIALS as e: - raise HTTPException(status_code=401, detail=str(e)) - _update_ldap_userPassword(ldap_conn, f"{rdn},{LDAP_BASE_DN}", updateRequest.userPassword) +def change_password(rdn: str, update_request: PasswordUpdate): + try: + ldap_conn = _connect_ldap_simple_bind(LDAP_URI, f"{rdn},{LDAP_BASE_DN}", update_request.bind_pw) + except ldap.INVALID_CREDENTIALS as e: + raise HTTPException(status_code=401, detail=str(e)) + _update_ldap_userPassword(ldap_conn, f"{rdn},{LDAP_BASE_DN}", update_request.userPassword) + def _connect_ldap_simple_bind(server_uri: str, bind_dn: str, bind_pw: str): - ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER) - conn = ldap.initialize(server_uri) - conn.simple_bind_s(bind_dn, bind_pw) - return conn + ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER) + conn = ldap.initialize(server_uri) + conn.simple_bind_s(bind_dn, bind_pw) + return conn + def _update_ldap_userPassword(conn, dn: str, new_pass: str): - changes = [( ldap.MOD_REPLACE, 'userPassword', bytes(str(new_pass), 'utf-8') )] - result = conn.modify_ext_s(dn, changes) + changes = [( ldap.MOD_REPLACE, 'userPassword', bytes(str(new_pass), 'utf-8') )] + result = conn.modify_ext_s(dn, changes)