Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
 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()
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
0
    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
Ejemplo n.º 10
0
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))
Ejemplo n.º 11
0
 def redirect_to(self, path, *args, **kwargs):
     full_url = get_redirect_url(path, request=self.request)
     return redirect(full_url, *args, **kwargs)