24 lines
		
	
	
		
			812 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			812 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from functools import wraps
 | 
						|
from flask import g, redirect, url_for, flash, request
 | 
						|
 | 
						|
def login_required(f):
 | 
						|
    @wraps(f)
 | 
						|
    def decorated_function(*args, **kwargs):
 | 
						|
        if g.user is None:
 | 
						|
            flash('请先登录', 'warning')
 | 
						|
            return redirect(url_for('user.login', next=request.url))
 | 
						|
        return f(*args, **kwargs)
 | 
						|
    return decorated_function
 | 
						|
 | 
						|
def admin_required(f):
 | 
						|
    @wraps(f)
 | 
						|
    def decorated_function(*args, **kwargs):
 | 
						|
        if g.user is None:
 | 
						|
            flash('请先登录', 'warning')
 | 
						|
            return redirect(url_for('user.login', next=request.url))
 | 
						|
        if g.user.role_id != 1:  # 假设role_id=1是管理员
 | 
						|
            flash('权限不足', 'danger')
 | 
						|
            return redirect(url_for('index'))
 | 
						|
        return f(*args, **kwargs)
 | 
						|
    return decorated_function
 |