2015-12-08 23 views
5

Tôi có @login_required trang trí trang trí một thao tác điều khiển. Tuy nhiên ứng dụng của tôi rất lớn và có rất nhiều tuyến đường trong nhiều tệp điều khiển khác nhau. Đi từng người một để trang trí mỗi tuyến đường có vẻ dễ bị lỗi (tôi có thể dễ dàng bỏ lỡ một) và tốn thời gian.Bình: Trang trí mọi tuyến đường cùng một lúc?

Có cách nào để trang trí tất cả các tuyến đường cùng một lúc trên toàn bộ ứng dụng không?

Tôi đang di chuyển biểu mẫu xác thực máy chủ web (apache) vào cấp ứng dụng, đó là lý do tôi gặp sự cố này.

+0

Bạn đã thử viết một bộ định tuyến đã sửa đổi chưa? – ferrix

+0

Kiểm tra 'login_required' đơn giản có đủ cho bạn không? Tôi luôn luôn cần các cấp quyền khác nhau cho những người dùng khác nhau, vì vậy tôi trang trí mọi thứ bằng 'require_privilege ('tên đặc quyền')'. Tôi hỏi vì nếu bạn quyết định đi theo cách đó, sau đó thực sự không có cách nào khác hơn là trang trí mọi tuyến đường (họ yêu cầu quyền khác nhau). – zvone

+0

@ferrix Không, tôi chưa từng nghe về điều đó nhưng tôi sẽ kiểm tra. zvone Không, chúng tôi không có các quyền/vai trò khác nhau. Mỗi người dùng có cùng quyền. – steve

Trả lời

8

Bạn có thể đi theo con đường ngược lại và sử dụng before_request trang trí để yêu cầu đăng nhập bằng cách mặc định, và sử dụng một trang trí tùy chỉnh để gắn thẻ các tuyến đường mà làm không yêu cầu đăng nhập, ví dụ:

_insecure_views = [] 

@my_blueprint.before_request 
def require_login(): 
    if request.endpoint in _insecure_views: 
     return 
    # check for login here 

def login_not_required(fn): 
    '''decorator to disable user authentication''' 
    endpoint = ".".join([some_blueprint.name, fn.func_name]) 
    _insecure_views.append(endpoint) 
    return fn 

@some_blueprint.route('/') 
@login_not_required 
def index(): 
    pass 

Bạn có thể có thể quấn mà vào một kế hoạch chi tiết có nguồn gốc/lớp Flask của riêng nó.

Chỉnh sửa: về cơ bản Best way to make Flask-Login's login_required the default

+0

Cảm ơn điều này và liên kết đến bài đăng khác. '' app.view_functions'' là loại nước sốt bí mật mà tôi đang tìm kiếm. Vì vậy, miễn là có một tham chiếu đến các chức năng các bản đồ url để các chức năng có thể được trang trí. – steve

Các vấn đề liên quan