Correct tenant in session using to_dict
This commit is contained in:
@@ -28,6 +28,16 @@ class Tenant(db.Model):
|
||||
def __repr__(self):
|
||||
return '<Tenant %r>' % self.name
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
'id': self.id,
|
||||
'name': self.name,
|
||||
'website': self.website,
|
||||
'license_start_date': self.license_start_date,
|
||||
'license_end_date': self.license_end_date,
|
||||
'allowed_monthly_interactions': self.allowed_monthly_interactions
|
||||
}
|
||||
|
||||
|
||||
class Role(db.Model, RoleMixin):
|
||||
__bind_key__ = 'public'
|
||||
@@ -85,4 +95,3 @@ class User(db.Model, UserMixin):
|
||||
|
||||
def has_roles(self, *args):
|
||||
return any(role.name in args for role in self.roles)
|
||||
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
{% endmacro %}
|
||||
|
||||
<div class="navbar navbar-expand-lg navbar-light bg-white z-index-3 py-3">
|
||||
...
|
||||
<div class="collapse navbar-collapse w-100 pt-3 pb-2 py-lg-0" id="navigation">
|
||||
<ul class="navbar-nav navbar-nav-hover mx-auto">
|
||||
{% if current_user.is_authenticated %}
|
||||
@@ -51,14 +50,18 @@
|
||||
{'name': 'Select Tenant', 'url': '/user/select_tenant', 'roles': ['Super User']},
|
||||
{'name': 'Tenant Registration', 'url': '/user/tenant', 'roles': ['Super User']},
|
||||
{'name': 'User Registration', 'url': '/user/user', 'roles': ['admin', 'manager']},
|
||||
{'name': 'User List', 'url': '/user/view_users', 'roles': ['Super User', 'Tenant Admin']}
|
||||
{'name': 'User List', 'url': '/user/view_users/' + session['tenant']['id']|string, 'roles': ['Super User', 'Tenant Admin']}
|
||||
]) }}
|
||||
{% endif %}
|
||||
{{ dropdown('Account', 'contacts', [
|
||||
{'name': 'Login', 'url': '/login'},
|
||||
{'name': 'Logout', 'url': '/logout'}
|
||||
]) }}
|
||||
{% if current_user.is_authenticated %}
|
||||
{% if 'tenant' in session %}
|
||||
<li>TENANT ID: {{ session['tenant'].get('id', 'None') }}, TENANT NAME: {{ session['tenant'].get('name', 'None') }}</li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
...
|
||||
</div>
|
||||
@@ -5,4 +5,4 @@ from ..models.user import User, Tenant
|
||||
# Definition of Trigger Handlers
|
||||
def set_tenant_session_data(sender, user, **kwargs):
|
||||
tenant = Tenant.query.filter_by(id=user.tenant_id).first()
|
||||
session['tenant'] = tenant
|
||||
session['tenant'] = tenant.to_dict()
|
||||
|
||||
@@ -15,6 +15,8 @@ user_bp = Blueprint('user_bp', __name__, url_prefix='/user')
|
||||
@user_bp.route('/tenant', methods=['GET', 'POST'])
|
||||
@roles_required('Super User')
|
||||
def tenant():
|
||||
print("SESSION:")
|
||||
print(session)
|
||||
if request.method == 'POST':
|
||||
# Handle the required attributes
|
||||
name = request.form.get('name')
|
||||
@@ -180,7 +182,9 @@ def select_tenant():
|
||||
def handle_tenant_selection():
|
||||
tenant_id = request.form['tenant_id']
|
||||
the_tenant = Tenant.query.get(tenant_id)
|
||||
session['tenant'] = the_tenant
|
||||
session['tenant'] = the_tenant.to_dict()
|
||||
print("SESSION TENANT")
|
||||
print(session['tenant'])
|
||||
action = request.form['action']
|
||||
|
||||
if action == 'view_users':
|
||||
@@ -191,7 +195,7 @@ def handle_tenant_selection():
|
||||
return redirect(url_for('select_tenant'))
|
||||
|
||||
|
||||
@user_bp.route('/view_users/<tenant_id>')
|
||||
@user_bp.route('/view_users/<int:tenant_id>')
|
||||
@roles_accepted('Super User', 'Tenant Admin')
|
||||
def view_users(tenant_id):
|
||||
print(tenant_id)
|
||||
|
||||
Reference in New Issue
Block a user