mirror of
				https://github.com/veops/cmdb.git
				synced 2025-10-31 19:39:24 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # -*- coding:utf-8 -*-
 | |
| 
 | |
| from flask import request
 | |
| from flask import session
 | |
| from flask_login import current_user
 | |
| 
 | |
| from api.lib.decorator import args_required
 | |
| from api.lib.perm.acl import ACLManager
 | |
| from api.lib.perm.acl import validate_permission
 | |
| from api.resource import APIView
 | |
| 
 | |
| 
 | |
| class HasPermissionView(APIView):
 | |
|     url_prefix = "/validate"
 | |
| 
 | |
|     @args_required("resource")
 | |
|     @args_required("resource_type")
 | |
|     @args_required("perm")
 | |
|     def get(self):
 | |
|         resource = request.values.get("resource")
 | |
|         resource_type = request.values.get("resource_type")
 | |
|         perm = request.values.get("perm")
 | |
|         validate_permission(resource, resource_type, perm)
 | |
|         return self.jsonify(is_valid=True)
 | |
| 
 | |
|     def post(self):
 | |
|         self.get()
 | |
| 
 | |
| 
 | |
| class GetResourcesView(APIView):
 | |
|     url_prefix = "/resources"
 | |
| 
 | |
|     @args_required("resource_type")
 | |
|     def get(self):
 | |
|         resource_type = request.values.get("resource_type")
 | |
|         res = ACLManager().get_resources(resource_type)
 | |
|         return self.jsonify(res)
 | |
| 
 | |
| 
 | |
| class GetUserInfoView(APIView):
 | |
|     url_prefix = "/user/info"
 | |
| 
 | |
|     def get(self):
 | |
|         name = session.get("acl", {}).get("nickName") or session.get("CAS_USERNAME") or current_user.nickname
 | |
|         role = dict(permissions=session.get("acl", {}).get("parentRoles", []) or ["admin"])
 | |
|         avatar = session.get("acl", {}).get("avatar") or current_user.avatar
 | |
|         return self.jsonify(result=dict(name=name,
 | |
|                                         role=role,
 | |
|                                         avatar=avatar))
 |