【发布时间】:2021-07-11 01:13:09
【问题描述】:
最近在用python flask搭建一个简单的网站 但我对如何避免未经授权的用户查看管理页面感到困惑
虽然重写is_visible和is_accessible函数可以避免未经授权的用户查看或编辑数据库中的数据
但是所有用户仍然可以看到管理页面
我想在未经授权的用户尝试进入管理页面时将他们重定向到索引页面,我该怎么做?
这是我使用 python3 编写的AdminModeView 代码
# admin panel permission setting
class AdminModelView(ModelView):
def is_visible(self):
try:
if(current_user.auth == 'Admin'):
return True
else:
return False
except:
return False
def is_accessible(self):
try:
if(current_user.auth == 'Admin'):
can_create = True
can_edit = True
can_delete = True
return True
else:
return False
except:
return False
def inaccessible_callback(self, name, **kwargs):
# redirect to login page if user doesn't have access
return redirect(url_for('login', next=request.url))
【问题讨论】:
标签: python flask flask-sqlalchemy flask-admin