hpl
f796f01d40
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
148 lines
4.3 KiB
Python
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
|
|
#
|