28 lines
		
	
	
		
			814 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			814 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from app.models.permission import Permission
 | 
						|
from flask import current_app
 | 
						|
 | 
						|
 | 
						|
def register_template_helpers(app):
 | 
						|
    @app.context_processor
 | 
						|
    def inject_permissions():
 | 
						|
        def has_permission(user, permission_code):
 | 
						|
            """检查用户是否拥有指定权限"""
 | 
						|
            if not user or not user.is_authenticated:
 | 
						|
                return False
 | 
						|
 | 
						|
            # 管理员拥有所有权限
 | 
						|
            if user.role_id == 1:
 | 
						|
                return True
 | 
						|
 | 
						|
            # 检查用户角色权限
 | 
						|
            if user.role:
 | 
						|
                for perm in user.role.permissions:
 | 
						|
                    if perm.code == permission_code:
 | 
						|
                        return True
 | 
						|
            return False
 | 
						|
 | 
						|
        return dict(has_permission=has_permission)
 | 
						|
 | 
						|
# 在 create_app 函数中调用
 | 
						|
# register_template_helpers(app)
 |