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
 | |
| #           
 |