from resources.common_imports import * #les variables globales minimum from resources.config import cloud_ident, cloud_pass, cloud_url #TODO: pas réussi à faire une seule classe Cloud_user avec 2 méthodes get/delete class Cloud_user(Resource): @jwt_required() def get(self, email): """ Existe dans le cloud général ? --- tags: - Cloud security: - Bearer: [] parameters: - in: path name: email type: string required: true responses: 200: description: Succès 404: description: L'utilisateur n'existe pas 500: description: Erreur interne du serveur """ global cloud_ident, cloud_pass, cloud_url try: auth = (cloud_ident, cloud_pass) api_url = f"{cloud_url}/ocs/v1.php/cloud/users?search={email}" headers = {"OCS-APIRequest": "true"} response = requests.get(api_url, auth=auth, headers=headers) if response.status_code == 200: if re.search(r'.*', response.text): return 200 else: return 404 except Exception as e: return jsonify({'error': str(e)}), 500 #************************************************* class Cloud_user_delete(Resource): @jwt_required() def delete(self, email): """ Supprime le compte dans le cloud général QUESTION: A PRIORI INUTILE CAR LIE AU LDAP --- tags: - Cloud security: - Bearer: [] parameters: - in: path name: email type: string required: true responses: 200: description: Succès, l'utilisateur a été supprimé du cloud général 404: description: Oops, l'utilisateur n'a pas été supprimé du cloud général 500: description: Erreur interne du serveur """ global cloud_ident, cloud_pass, cloud_url try: auth = (cloud_ident, cloud_pass) api_url = f"{cloud_url}/ocs/v1.php/cloud/users?search={email}" headers = {"OCS-APIRequest": "true"} response = requests.delete(api_url, auth=auth, headers=headers) if response.status_code == 200: if re.search(r'.*', response.text): return 200 else: return 404 except Exception as e: return jsonify({'error': str(e)}), 500 #************************************************* # class Cloud_user_change(Resource): # @jwt_required() # def put(self, email, new_password): # """ # Modifie le mot de passe d'un Utilisateur dans le cloud général: QUESTION: A PRIORI INUTILE CAR LIE AU LDAP # --- # tags: # - Cloud # security: # - Bearer: [] # parameters: # - in: path # name: email # type: string # required: true # - in: path # name: new_password # type: string # required: true # responses: # 200: # description: Succès, mot de passe changé # 404: # description: Oops, mot de passe NON changé # 500: # description: Erreur interne du serveur # """ # # global cloud_ident, cloud_pass, cloud_url # # try: # auth = (cloud_ident, cloud_pass) # api_url = f"{cloud_url}/ocs/v1.php/cloud/users?search={email}" # headers = {"OCS-APIRequest": "true"} # data = { # "key": "password", # "value": new_password # } # response = requests.put(api_url, auth=auth, headers=headers) # # if response.status_code == 200: # if re.search(r'.*', response.text): # return 200 # else: # return 404 # # except Exception as e: # return jsonify({'error': str(e)}), 500 #