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
This commit is contained in:
147
dockers/apikaz/source/resources/cloud.py
Normal file
147
dockers/apikaz/source/resources/cloud.py
Normal file
@ -0,0 +1,147 @@
|
||||
|
||||
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
|
||||
#
|
Reference in New Issue
Block a user