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