KazV2/dockers/apikaz/source/resources/cloud.py
hpl f796f01d40 Modifications qui seront validées :
modifié :         ../app.py
	nouveau fichier : cloud.py
	nouveau fichier : common_imports.py
	nouveau fichier : config.py
	nouveau fichier : dns.py
	nouveau fichier : kaz_user.py
	nouveau fichier : ldap.py
	nouveau fichier : mattermost.py
	nouveau fichier : paheko.py
	nouveau fichier : password.py
	nouveau fichier : quota.py
	nouveau fichier : sympa.py
	nouveau fichier : test.py
2024-08-20 01:53:17 +02:00

148 lines
4.3 KiB
Python

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'<element>.*</element>', 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'<element>.*</element>', 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'<element>.*</element>', response.text):
# return 200
# else:
# return 404
#
# except Exception as e:
# return jsonify({'error': str(e)}), 500
#