Add User role list in USer

This commit is contained in:
Reena Aheer 2023-03-06 16:14:13 +01:00
parent b2610abf44
commit c13e173bb9
5 changed files with 29 additions and 5 deletions

View File

@ -47,6 +47,19 @@ def get_api_versions(request):
messages.error(self.request, err)
return []
def get_role_list(request):
api = API(request.session.get('obp'))
try:
urlpath = '/roles'
result = api.get(urlpath)
if 'roles' in result:
return [role['role'] for role in sorted(result['roles'], key=lambda d: d['role'])]
else:
return []
except APIError as err:
messages.error(self.request, err)
return []
class HomeView(TemplateView):
"""View for home page"""
template_name = "home.html"

View File

@ -176,6 +176,13 @@ class API(object):
choices.append((version['API_VERSION'], version['API_VERSION']))
return choices
def get_user_role_choices(self):
"""Gets a list of APIs roles and APIs roles as used by form choices"""
choices = [('', _('Choose ...'))]
result = self.get('/roles')
for role in sorted(result['roles'], key=lambda d: d['role']) :
choices.append((role['role'], role['role']))
return choices
def get_user_id_choices(self):
"""Gets a list of user ids and usernames as used by form choices"""

View File

@ -11,14 +11,15 @@ class AddEntitlementForm(forms.Form):
widget=forms.HiddenInput(),
required=True,
)
role_name = forms.CharField(
role_name = forms.ChoiceField(
label=_('Role name'),
widget=forms.TextInput(
widget=forms.Select(
attrs={
'class': 'form-control',
}
),
required=True,
choices=[],
required=False,
)
bank_id = forms.ChoiceField(
label=_('Bank'),

View File

@ -64,13 +64,13 @@
<div class="row">
<div class="col-xs-12 col-md-4">
<div class="form-group">
<strong>{% trans "Role name" %}</strong>
<strong>{% trans "Role Name" %}</strong>
{{ form.role_name }}
</div>
</div>
<div class="col-xs-12 col-md-8">
<div class="form-group">
<strong>{% trans "bank id" %}</strong>
<strong>{% trans "Bank Id" %}</strong>
{{ form.bank_id }}
</div>
</div>

View File

@ -12,6 +12,7 @@ from django.views.generic import FormView, TemplateView, View
from base.filters import BaseFilter
from obp.api import API, APIError
from .forms import AddEntitlementForm,CreateInvitationForm
from base.views import get_role_list
import csv
class FilterRoleName(BaseFilter):
@ -204,6 +205,7 @@ class MyDetailView(LoginRequiredMixin, FormView):
form = super(MyDetailView, self).get_form(*args, **kwargs)
try:
form.fields['bank_id'].choices = self.api.get_bank_id_choices()
form.fields['role_name'].choices = self.api.get_user_role_choices()
except APIError as err:
messages.error(self.request, err)
except Exception as err:
@ -250,6 +252,7 @@ class MyDetailView(LoginRequiredMixin, FormView):
messages.error(self.request, err)
context.update({
'apiuser': user, # 'user' is logged-in user in template context
'role': get_role_list(self.request)
})
return context