def submit(request, tenantName): html = "" if request.method == 'POST': try: paymethod = request.POST.get('optionsRadios', 'zhifubao') if BANKS.find(paymethod) < 0: path = '/apps/{0}/recharge/'.format(tenantName) return redirect(get_redirect_url(path, request)) logger.debug(paymethod) money = float(request.POST.get('recharge_money', '0')) if money > 0: tenant = Tenants.objects.get(tenant_name=tenantName) tenant_id = tenant.tenant_id uid = request.session.get("_auth_user_id") user = Users.objects.get(user_id=uid) nick_name = user.nick_name logger.debug(uid) logger.debug(nick_name) tenantRecharge = TenantRecharge() tenantRecharge.tenant_id = tenant_id tenantRecharge.user_id = uid tenantRecharge.user_name = nick_name orderno = str(uid) + str( datetime.datetime.now().strftime('%Y%m%d%H%M%S')) logger.debug(orderno) tenantRecharge.order_no = orderno tenantRecharge.recharge_type = "alipay" tenantRecharge.money = money tenantRecharge.subject = "好雨云平台充值" tenantRecharge.body = "好雨云平台充值" tenantRecharge.show_url = "https://user.goodrain.com/apps/" + \ tenantName + "/recharge" tenantRecharge.time = datetime.datetime.now().strftime( '%Y-%m-%d %H:%M:%S') tenantRecharge.status = "TRADE_UNFINISHED" tenantRecharge.save() html = '<p>订单已经提交,准备进入支付宝官方收银台 ...</p>' submit = Alipay_API() html = submit.alipay_submit(paymethod, tenantName, tenantRecharge.order_no, tenantRecharge.subject, str(tenantRecharge.money), tenantRecharge.body, tenantRecharge.show_url) else: path = '/apps/{0}/recharge/'.format(tenantName) return redirect(get_redirect_url(path, request)) except Exception as e: html = ("%s" % e) logger.exception(e) return HttpResponse(html)
def get(self, request, *args, **kwargs): context = self.get_context() response = redirect( get_redirect_url( "/apps/{0}/{1}/detail/".format(self.tenantName, self.serviceAlias), request)) try: docker_c_id = request.COOKIES.get('docker_c_id', '') docker_h_id = request.COOKIES.get('docker_h_id', '') docker_s_id = request.COOKIES.get('docker_s_id', '') if docker_c_id != "" and docker_h_id != "" and docker_s_id != "" and docker_s_id == self.service.service_id: t_docker_h_id = docker_h_id.lower() context["tenant_id"] = self.service.tenant_id context["service_id"] = docker_s_id context["ctn_id"] = docker_c_id context["md5"] = md5fun(self.service.tenant_id + "_" + docker_s_id + "_" + docker_c_id) context["ws_uri"] = self.make_docker_ws_uri( settings.DOCKER_WSS_URL, t_docker_h_id) response = TemplateResponse(self.request, "www/console.html", context) response.delete_cookie('docker_c_id') response.delete_cookie('docker_h_id') response.delete_cookie('docker_s_id') except Exception as e: logger.exception(e) return response
def login_redirect(request): path = request.build_absolute_uri() resolved_login_url = resolve_url(login_url or settings.LOGIN_URL) login_scheme, login_netloc = Module_six_moves_urllib_parse(resolved_login_url)[:2] current_scheme, current_netloc = Module_six_moves_urllib_parse(path)[:2] if ((not login_scheme or login_scheme == current_scheme) and (not login_netloc or login_netloc == current_netloc)): path = request.get_full_path() from django.contrib.auth.views import redirect_to_login return redirect_to_login(get_redirect_url(path, request), resolved_login_url, redirect_field_name)
def get(self, request, *args, **kwargs): self.tenantName = kwargs.get('tenantName', None) self.serviceAlias = kwargs.get('serviceAlias', None) tenant = team_repo.get_team_by_team_name(self.tenantName) if tenant: self.tenant = tenant else: raise http.Http404 service = service_repo.get_service_by_tenant_and_alias( self.tenant.tenant_id, self.serviceAlias) if service: self.service = service else: raise http.Http404 context = dict() response = redirect( get_redirect_url( "/#/app/{0}/overview".format(self.service.service_alias), request)) try: docker_c_id = request.COOKIES.get('docker_c_id', '') docker_h_id = request.COOKIES.get('docker_h_id', '') docker_s_id = request.COOKIES.get('docker_s_id', '') if docker_c_id != "" and docker_h_id != "" and docker_s_id != "" and docker_s_id == self.service.service_id: t_docker_h_id = docker_h_id.lower() context["tenant_id"] = self.service.tenant_id context["service_id"] = docker_s_id context["ctn_id"] = docker_c_id context["md5"] = md5fun(self.service.tenant_id + "_" + docker_s_id + "_" + docker_c_id) main_url = region_services.get_region_wsurl( self.service.service_region) if main_url == "auto": context[ "ws_uri"] = '{}://{}:6060/docker_console?nodename={}'.format( settings.DOCKER_WSS_URL["type"], settings.DOCKER_WSS_URL[ self.service.service_region], t_docker_h_id) else: context[ "ws_uri"] = "{0}/docker_console?nodename={1}".format( main_url, t_docker_h_id) response = TemplateResponse(self.request, "www/console.html", context) response.delete_cookie('docker_c_id') response.delete_cookie('docker_h_id') response.delete_cookie('docker_s_id') except Exception as e: logger.exception(e) return response
def _wrapped_view(view_object, *args, **kwargs): try: if test_func(view_object.user, *args, **kwargs): return view_func(view_object, *args, **kwargs) else: return redirect(get_redirect_url('/error', request=view_object.request)) except PermissionDenied, e: if e.redirect_url is not None: request = view_object.request return login_redirect(request) else: return JsonResponse({"reason": e.error}, status=403)
def get(self, request, *args, **kwargs): url = get_redirect_url(self.url, request) if url: if self.permanent: return http.HttpResponsePermanentRedirect(url) else: return http.HttpResponseRedirect(url) else: logger.warning('Gone: %s', request.path, extra={ 'status_code': 410, 'request': request }) return http.HttpResponseGone()
def get(self, request, *args, **kwargs): """ 获取console TTY页面 --- parameters: - name: tenantName description: 租户名 required: true type: string paramType: path - name: serviceAlias description: 组件别名 required: true type: string paramType: path """ response = redirect(get_redirect_url("/index#/index", request)) try: docker_c_id = request.COOKIES.get('docker_c_id', '') docker_h_id = request.COOKIES.get('docker_h_id', '') docker_s_id = request.COOKIES.get('docker_s_id', '') bean = dict() if docker_c_id != "" and docker_h_id != "" and docker_s_id != "" and docker_s_id == self.service.service_id: t_docker_h_id = docker_h_id.lower() bean["tenant_id"] = self.service.tenant_id bean["service_id"] = docker_s_id bean["ctn_id"] = docker_c_id bean["md5"] = md5fun(self.service.tenant_id + "_" + docker_s_id + "_" + docker_c_id) main_url = region_services.get_region_wsurl( self.service.service_region) if main_url == "auto": bean[ "ws_uri"] = '{}://{}:6060/docker_console?nodename={}'.format( settings.DOCKER_WSS_URL["type"], settings.DOCKER_WSS_URL[ self.service.service_region], t_docker_h_id) else: bean["ws_uri"] = "{0}/docker_console?nodename={1}".format( main_url, t_docker_h_id) response = Response(general_message(200, "success", "信息获取成功"), status=200, template_name="www/console.html") except Exception as e: logger.exception(e) return response
def _wrapped_view(view_object, *args, **kwargs): try: if test_func(view_object.user, *args, **kwargs): return view_func(view_object, *args, **kwargs) else: return redirect( get_redirect_url('/error', request=view_object.request)) except PermissionDenied as e: if e.redirect_url is not None: request = view_object.request return login_redirect(request) else: return JsonResponse({"reason": e.error}, status=403) except UrlParseError as e: if e.code == 403: response = HttpResponseRedirect(settings.LOGIN_URL) response.delete_cookie('tenant_name') return response return JsonResponse({"reason": e.error}, status=e.code)
def get(self, request, *args, **kwargs): context = self.get_context() response = redirect( get_redirect_url( "/apps/{0}/{1}/detail/".format(self.tenantName, self.serviceAlias), request)) try: docker_c_id = request.COOKIES.get('docker_c_id', '') docker_h_id = request.COOKIES.get('docker_h_id', '') docker_s_id = request.COOKIES.get('docker_s_id', '') if docker_c_id != "" and docker_h_id != "" and docker_s_id != "" and docker_s_id == self.service.service_id: t_docker_h_id = docker_h_id.lower() context["tenant_id"] = self.service.tenant_id context["service_id"] = docker_s_id context["ctn_id"] = docker_c_id context["md5"] = md5fun(self.service.tenant_id + "_" + docker_s_id + "_" + docker_c_id) main_url = region_services.get_region_wsurl( self.service.service_region) if main_url == "auto": context[ "ws_uri"] = '{}://{}:6060/docker_console?nodename={}'.format( settings.DOCKER_WSS_URL["type"], settings.DOCKER_WSS_URL[ self.service.service_region], t_docker_h_id) else: context[ "ws_uri"] = "{0}/docker_console?nodename={1}".format( main_url, t_docker_h_id) response = TemplateResponse(self.request, "www/console.html", context) response.delete_cookie('docker_c_id') response.delete_cookie('docker_h_id') response.delete_cookie('docker_s_id') except Exception as e: logger.exception(e) return response
def return_url(request, tenantName): try: out_trade_no = request.GET.get('out_trade_no', '') trade_no = request.GET.get('trade_no', '') trade_status = request.GET.get('trade_status', '') logger.debug("out_trade_no=" + out_trade_no) logger.debug("trade_no=" + trade_no) logger.debug("trade_status=" + trade_status) # if trade_status == 'TRADE_SUCCESS' or trade_status == 'TRADE_FINISHED': # # tenantRecharge = TenantRecharge.objects.get(order_no=out_trade_no) # # tenantRecharge.status = trade_status # # tenantRecharge.trade_no = trade_no # # tenantRecharge.save() # # tenant = Tenants.objects.get(tenant_id=tenantRecharge.tenant_id) # # tenant.balance = tenant.balance + tenantRecharge.money # # tenant.pay_type = 'payed' # # tenant.save() # else: # logger.debug( # out_trade_no + " recharge trade_status=" + trade_status) except Exception as e: logger.exception(e) path = '/apps/{0}/recharge/'.format(tenantName) return redirect(get_redirect_url(path, request))
def redirect_to(self, path, *args, **kwargs): full_url = get_redirect_url(path, request=self.request) return redirect(full_url, *args, **kwargs)