FIX: sonarcloud fix products, users, webui

This commit is contained in:
ma-silva 2022-12-22 14:00:42 +08:00
parent 82dc76559f
commit a508f0ea33
5 changed files with 74 additions and 72 deletions

View File

@ -5,7 +5,7 @@ URLs for metrics app
from django.conf.urls import url
from .views import IndexProductView, UpdateProductView, createList
from .views import IndexProductView, UpdateProductView, create_list
urlpatterns = [
url(r'^create',
@ -15,6 +15,6 @@ urlpatterns = [
UpdateProductView.as_view(),
name='products_update'),
url(r'^createProductList',
createList,
create_list,
name = 'create-product-list'),
]

View File

@ -36,8 +36,8 @@ class IndexProductView(LoginRequiredMixin, FormView):
fields['bank_id'].choices = self.api.get_bank_id_choices()
except APIError as err:
messages.error(self.request, err)
except:
messages.error(self.request, "Unknown Error")
except Exception as err:
messages.error(self.request, err)
return form
def form_valid(self, form):
@ -91,8 +91,8 @@ class UpdateProductView(LoginRequiredMixin, FormView):
fields['bank_id'].choices = self.api.get_bank_id_choices()
except APIError as err:
messages.error(self.request, err)
except:
messages.error(self.request, "Unknown Error")
except Exception as err:
messages.error(self.request, err)
try:
result = self.api.get(urlpath)
fields['parent_product_code'].initial = self.kwargs['parent_product_code']
@ -155,7 +155,7 @@ class UpdateProductView(LoginRequiredMixin, FormView):
@exception_handle
@csrf_exempt
def createList(request):
def create_list(request):
print(request.POST, "createProductList listt")
return HttpResponse("<h1>View 1</h1>")

View File

@ -100,14 +100,15 @@ class IndexView(LoginRequiredMixin, TemplateView):
users = response
except APIError as err:
messages.error(self.request, err)
except:
messages.error(self.request, 'Unknown Error')
except Exception as err:
messages.error(self.request, err)
role_names = self.get_users_rolenames(context)
try:
users = FilterRoleName(context, self.request.GET) \
.apply([users] if username else users['users'])
except:
except Exception as err:
messages.error(self.request, err)
users = []
context.update({
'role_names': role_names,
@ -137,8 +138,8 @@ class DetailView(LoginRequiredMixin, FormView):
form.fields['bank_id'].choices = self.api.get_bank_id_choices()
except APIError as err:
messages.error(self.request, err)
except:
messages.error(self.request, 'Unknown Error')
except Exception as err:
messages.error(self.request, err)
return form
def form_valid(self, form):
@ -154,8 +155,8 @@ class DetailView(LoginRequiredMixin, FormView):
except APIError as err:
messages.error(self.request, err)
return super(DetailView, self).form_invalid(form)
except:
messages.error(self.request, 'Unknown Error')
except Exception as err:
messages.error(self.request, err)
return super(DetailView, self).form_invalid(form)
if 'code' in entitlement and entitlement['code']>=400:
messages.error(self.request, entitlement['message'])
@ -181,8 +182,8 @@ class DetailView(LoginRequiredMixin, FormView):
context['form'].fields['user_id'].initial = user['user_id']
except APIError as err:
messages.error(self.request, err)
except:
messages.error(self.request, 'Unknown Error')
except Exception as err:
messages.error(self.request, err)
context.update({
'apiuser': user, # 'user' is logged-in user in template context
@ -205,8 +206,8 @@ class MyDetailView(LoginRequiredMixin, FormView):
form.fields['bank_id'].choices = self.api.get_bank_id_choices()
except APIError as err:
messages.error(self.request, err)
except:
messages.error(self.request, 'Unknown Error')
except Exception as err:
messages.error(self.request, err)
return form
def form_valid(self, form):
@ -229,7 +230,7 @@ class MyDetailView(LoginRequiredMixin, FormView):
messages.error(self.request, err)
return super(MyDetailView, self).form_invalid(form)
except Exception as err:
messages.error(self.request, 'Unknown Error. {}'.format(err))
messages.error(self.request, err)
return super(MyDetailView, self).form_invalid(form)
else:
return super(MyDetailView, self).form_valid(form)
@ -246,9 +247,7 @@ class MyDetailView(LoginRequiredMixin, FormView):
except APIError as err:
messages.error(self.request, err)
except Exception as err:
messages.error(self.request, 'Unknown Error')
#print(user,"This is ")
#entitlements=user["entitlements"]["list"]
messages.error(self.request, err)
user["entitlements"]["list"] = sorted(user["entitlements"]["list"], key=lambda d: d['role_name'])
context.update({
'apiuser': user, # 'user' is logged-in user in template context
@ -274,8 +273,8 @@ class InvitationView(LoginRequiredMixin, FormView):
fields['bank_id'].choices = self.api.get_bank_id_choices()
except APIError as err:
messages.error(self.request, err)
except:
messages.error(self.request, "Unknown Error")
except Exception as err:
messages.error(self.request, err)
return form
def form_valid(self, form, **kwargs):
@ -306,7 +305,7 @@ class InvitationView(LoginRequiredMixin, FormView):
messages.error(self.request, err)
return super(InvitationView, self).form_invalid(form)
except Exception as err:
messages.error(self.request, "Unknown Error:{}".format(str(err)))
messages.error(self.request, err)
return super(InvitationView, self).form_invalid(form)
def get_invitations(self, context, get_url_path, invitations):
@ -338,8 +337,8 @@ class DeleteEntitlementView(LoginRequiredMixin, View):
messages.success(request, msg)
except APIError as err:
messages.error(request, err)
except:
messages.error(self.request, 'Unknown Error')
except Exception as err:
messages.error(self.request, err)
# from sonarcloud: Change this code to not perform redirects based on user-controlled data.
redirect_url_from_gui = request.POST.get('next', reverse('users-index'))
@ -361,39 +360,16 @@ class UserStatusUpdateView(LoginRequiredMixin, View):
api = API(self.request.session.get('obp'))
try:
if(request.POST.get("Delete")):
urlpath = '/users/{}'.format(kwargs['user_id'])
result = api.delete(urlpath)
if result is not None and 'code' in result and result['code'] >= 400:
messages.error(request, result['message'])
else:
msg = 'User with ID {} has been deleted.'.format(kwargs['user_id'])
messages.success(request, msg)
self._delete_user(api, request, args, kwargs)
elif(request.POST.get("Lock")):
urlpath = '/users/{}/locks'.format(kwargs['username'])
result = api.post(urlpath, None)
if result is not None and 'code' in result and result['code'] >= 400:
messages.error(request, result['message'])
else:
msg = 'User {} has been lock.'.format(kwargs['username'])
messages.success(request, msg)
self._lock_user(api, request, args, kwargs)
else:
urlpath = '/users/{}/lock-status'.format(kwargs['username'])
result = api.put(urlpath, None)
print("result", result)
#if result is not None and 'code' in result and result['code'] >= 400:
if 'code' in result and result['code'] == 404:
msg = 'User {} has been unlocked.'.format(kwargs['username'])
messages.success(request, msg)
else:
messages.error(request, result['message'])
#else:
# msg = 'User {} has been unlocked.'.format(kwargs['username'])
# messages.success(request, msg)
self._lock_status_user(api, request, args, kwargs)
except APIError as err:
messages.error(request, err)
except Exception as e:
messages.error(self.request, 'Unknown Error' + str(e))
except Exception as err:
messages.error(self.request, err)
# from sonarcloud: Change this code to not perform redirects based on user-controlled data.
redirect_url_from_gui = request.POST.get('next', reverse('users-index'))
@ -406,6 +382,36 @@ class UserStatusUpdateView(LoginRequiredMixin, View):
return HttpResponseRedirect(redirect_url)
def _delete_user(self, api, request, *args, **kwargs):
urlpath = '/users/{}'.format(kwargs['user_id'])
result = api.delete(urlpath)
if result is not None and 'code' in result and result['code'] >= 400:
messages.error(request, result['message'])
else:
msg = 'User with ID {} has been deleted.'.format(kwargs['user_id'])
messages.success(request, msg)
def _lock_user(self, api, request, *args, **kwargs):
urlpath = '/users/{}/locks'.format(kwargs['username'])
result = api.post(urlpath, None)
if result is not None and 'code' in result and result['code'] >= 400:
messages.error(request, result['message'])
else:
msg = 'User {} has been lock.'.format(kwargs['username'])
messages.success(request, msg)
def _lock_status_user(self, api, request, *args, **kwargs):
urlpath = '/users/{}/lock-status'.format(kwargs['username'])
result = api.put(urlpath, None)
#if result is not None and 'code' in result and result['code'] >= 400:
if 'code' in result and result['code'] == 404:
msg = 'User {} has been unlocked.'.format(kwargs['username'])
messages.success(request, msg)
else:
messages.error(request, result['message'])
#else:
# msg = 'User {} has been unlocked.'.format(kwargs['username'])
# messages.success(request, msg)
class ExportCsvView(LoginRequiredMixin, View):
"""View to export the user to csv"""
@ -433,8 +439,8 @@ class ExportCsvView(LoginRequiredMixin, View):
except APIError as err:
messages.error(self.request, err)
except:
messages.error(self.request, 'Unknown Error')
except Exception as err:
messages.error(self.request, err)
response = HttpResponse(content_type = 'text/csv')
response['Content-Disposition'] = 'attachment;filename= Users'+ str(datetime.datetime.now())+'.csv'
writer = csv.writer(response)

View File

@ -1,10 +1,10 @@
$(document).ready(function($) {
$('.runner button.forSave').click(function(e) {
e.preventDefault();
var t = $(this);
var runner = t.parent().parent().parent();
var web_ui_props_name = $(runner).find('.web_ui_props_name').text();
var web_ui_props_value = $(runner).find('.web_ui_props_value').val();
const t = $(this);
const runner = t.parent().parent().parent();
const web_ui_props_name = $(runner).find('.web_ui_props_name').text();
const web_ui_props_value = $(runner).find('.web_ui_props_value').val();
$('.runner button.forSave').attr("disabled", "disabled");
$('.runner button.forDelete').attr("disabled", "disabled");
$.post('save/method', {
@ -17,13 +17,10 @@ $(document).ready(function($) {
$('.runner button.forDelete').click(function(e) {
e.preventDefault();
var t = $(this);
var runner = t.parent().parent().parent();
var web_ui_props_name = $(runner).find('.web_ui_props_name').text();
var textArea = runner.find('.web_ui_props_value');
var props_id = $(runner).find('.web_ui_props_id');
var web_ui_props_id = props_id.val();
var webui = $('#webui');
const t = $(this);
const runner = t.parent().parent().parent();
const props_id = $(runner).find('.web_ui_props_id');
const web_ui_props_id = props_id.val();
$('.runner button.forSave').attr("disabled", "disabled");
$('.runner button.forDelete').attr("disabled", "disabled");
$.post('delete/method', {
@ -32,4 +29,4 @@ $(document).ready(function($) {
location.reload();
});
});
});
});

View File

@ -38,8 +38,8 @@ class IndexView(LoginRequiredMixin, FormView):
context.update(response)
except APIError as err:
messages.error(self.request, err)
except BaseException as err:
messages.error(self.request, (Exception("Unknown Error. Details:" + str(err))))
except Exception as err:
messages.error(self.request, err)
return context
def get_form(self, *args, **kwargs):
@ -65,7 +65,6 @@ def webui_save(request):
@csrf_exempt
def webui_delete(request):
web_ui_props_id = request.POST.get('web_ui_props_id')
web_ui_props_name = request.POST.get('web_ui_props_name')
if web_ui_props_id == 'default' or web_ui_props_id == '' or web_ui_props_id is None:
return {'code':403,'message':'Cann\'t delete web_ui_props_id default'}
else: