예제 #1
0
 def get(self, request):
     # print request.META["HTTP_REFERER"]
     servers = get_redis_conf(name=None, user=request.user)
     data = []
     for ser in servers:
         try:
             redis_obj = RedisConf.objects.get(id=ser.redis)
         except ObjectDoesNotExist:
             continue
         status = check_redis_connect(name=redis_obj.name)
         if status is True:
             client, cur_server_index, cur_db_index = get_cl(
                 redis_name=redis_obj.name)
             info_dict = client.info()
             time_local = time.localtime(info_dict['rdb_last_save_time'])
             dt = time.strftime("%Y-%m-%d %H:%M:%S", time_local)
             info_dict['rdb_last_save_time'] = dt
             info_dict['socket'] = redis_obj.socket
             # info_dict.update(host=client.connection_pool.connection_kwargs['host'])
             info_dict.update(redis_id=ser.redis)
             data.append(info_dict)
     return render(request, 'index.html', {
         'data': data,
         'console': 'console',
     })
예제 #2
0
 def get(self, request):
     menu = Menu(user=request.user)
     id = request.GET.get('id', None)
     try:
         user = DctUser.objects.get(id=id)
         auth = get_redis_conf(name=None, user=user)
         redis = RedisConf.objects.all()
         return render(request, 'change_user.html', {
             'menu': menu,
             'user_info': user,
             'auth': auth,
             'rediss': redis,
         })
     except Exception as e:
         logs.error(u"修改用户信息: id:{0},msg:{1}".format(id, e))
         return render(request, 'change_user.html', {'error': e})
예제 #3
0
 def get(self, request):
     id = request.GET.get('id', None)
     try:
         user = DctUser.objects.get(id=id)
         auth = get_redis_conf(name=None, user=user)
         redis = RedisConf.objects.filter(type=0)
         cluster = get_all_cluster_redis()
         return render(
             request, 'change_user.html', {
                 'user_info': user,
                 'auth': auth,
                 'rediss': redis,
                 'clusters': cluster
             })
     except Exception as e:
         logs.error(u"修改用户信息: id:{0},msg:{1}".format(id, e))
         return render(request, 'change_user.html', {'error': e})
예제 #4
0
def Menu(user):
    """
    菜单导航
    :return:
    """
    servers = get_redis_conf(name=None, user=user)
    data = []
    m_index = 0
    for ser in servers:
        redis_obj = RedisConf.objects.get(id=ser.redis)
        data_is = {'name': redis_obj.name, 'db': ''}
        me = []
        for i in range(redis_obj.database):
            me.append('db{0}'.format(i))
        data_is['db'] = me
        data.append(data_is)
        m_index += 1
    return data
예제 #5
0
 def get(self, request):
     # print request.META["HTTP_REFERER"]
     servers = get_redis_conf(name=None, user=request.user)
     data = []
     for ser in servers:
         redis_obj = RedisConf.objects.get(id=ser.redis)
         if redis_obj.type == 1:
             redis_cluster_obj = RedisConf.objects.filter(
                 name__iexact=redis_obj.name)
             for redis_cluster in redis_cluster_obj:
                 info = self.get_info(redis_cluster)
                 if not isinstance(info, bool):
                     data.append(info)
         else:
             info = self.get_info(redis_obj)
             if not isinstance(info, bool):
                 data.append(info)
     return render(request, 'index.html', {
         'data': data,
         'console': 'console',
     })
예제 #6
0
 def post(self, request):
     data = dict(
         code=0,
         msg=u"登录成功,即将跳转...",
         data="",
     )
     login_form = LoginForms(request.POST)
     nexts = request.get_full_path(force_append_slash=True)
     if login_form.is_valid():
         user_name = request.POST.get("username", "")
         pass_word = request.POST.get("password", "")
         user = authenticate(username=user_name, password=pass_word)
         if user is not None:
             if user.is_active:
                 login(request, user)
                 servers = get_redis_conf(name=None, user=user)
                 user_premission = dict()
                 for ser in servers:
                     try:
                         redis_name = RedisConf.objects.get(id=ser.redis)
                         user_premission[redis_name.name] = ser.pre_auth
                     except Exception as e:
                         logs.error(e)
                         raise e
                 data["data"] = user_premission
                 data["menu"] = Menu(user=user)
                 left_menu = []
                 for i in data['menu']:
                     left_menu.append(i['name'])
                 data['left_menu'] = left_menu
                 return JsonResponse(data)
             else:
                 data["code"] = 1
                 data["msg"] = u"用户未激活"
                 return JsonResponse(data)
     data["code"] = 2
     data["msg"] = u"用户名或密码错误"
     return JsonResponse(data)
예제 #7
0
파일: menu.py 프로젝트: loovien/redis_admin
def Menu(user):
    """
    菜单导航
    :return:
    """
    servers = get_redis_conf(name=None, user=user)
    data = []
    m_index = 0
    for ser in servers:
        try:
            redis_obj = RedisConf.objects.get(id=ser.redis)
        except ObjectDoesNotExist:
            continue
        data_is = {'name': redis_obj.name, 'db': ''}
        status = check_redis_connect(name=redis_obj.name)
        if isinstance(status, bool) and status:
            me = []
            for i in range(redis_obj.database):
                me.append('db{0}'.format(i))
            data_is['db'] = me
            data.append(data_is)
            m_index += 1
    return data
예제 #8
0
    def get(self, request):
        servers = get_redis_conf(name=None, user=request.user)
        data_list = []
        for ser in servers:
            redis_obj = RedisConf.objects.get(id=ser.redis)
            if redis_obj.type == 1:
                redis_cluster_obj = RedisConf.objects.filter(
                    name__iexact=redis_obj.name)
                for redis_cluster in redis_cluster_obj:
                    redis_status = self.check_redis_status(redis_cluster)
                    if redis_status is not True:
                        data_list.append(redis_status)
            else:
                redis_status = self.check_redis_status(redis_obj)
                if redis_status is not True:
                    data_list.append(redis_status)

        if len(data_list) != 0:
            data = {'code': 0, 'msg': '', 'data': data_list}
        else:
            data = {'code': 1, 'msg': '无连接错误', 'data': ''}

        return JsonResponse(data)
예제 #9
0
 def get(self, request):
     server_list = get_redis_conf(name=None, user=request.user)
     user_permission = dict()
     for server in server_list:
         try:
             redis_name = RedisConf.objects.get(id=server.redis)
         except ObjectDoesNotExist:
             continue
         user_permission[redis_name.name] = server.pre_auth
     menu = Menu(user=request.user)
     left_menu = []
     for i in menu:
         left_menu.append(i['name'])
     data = {
         "code": 0,
         "msg": "success",
         "premission": user_permission,
         "menu": {
             "list": menu,
             "left_menu": left_menu
         }
     }
     return JsonResponse(data)
예제 #10
0
    def get(self, request):
        servers = get_redis_conf(name=None, user=request.user)
        list = []
        for ser in servers:
            try:
                redis_obj = RedisConf.objects.get(id=ser.redis)
            except ObjectDoesNotExist:
                continue
            status = check_redis_connect(name=redis_obj.name)
            if status is not True:
                info_dict = {
                    'name': status["redis"].name,
                    'host': status["redis"].host,
                    'port': status["redis"].port,
                    'error': status["message"].message,
                    'socket': status['redis'].socket
                }
                list.append(info_dict)
        if len(list) != 0:
            data = {'code': 0, 'msg': '', 'data': list}
        else:
            data = {'code': 1, 'msg': '无连接错误', 'data': ''}

        return JsonResponse(data)
예제 #11
0
    def post(self, request):

        id = request.POST.get('id', None)
        password1 = request.POST.get('password1', None)
        password2 = request.POST.get('password2', None)
        email = request.POST.get('email', None)
        is_superuser = request.POST.get('is_superuser', None)

        rediss = list(RedisConf.objects.all())
        redissimple = RedisConf.objects.filter(type=0)
        cluster = get_all_cluster_redis()
        name_list = []
        redis_list = []
        for i in rediss:
            if i.name not in name_list:
                name_list.append(i.name)
                redis_list.append(i)
        del name_list
        user = DctUser.objects.get(id=id)

        for re in redis_list:
            re_id = request.POST.get(re.name, None)
            # 判断是否获取到值
            if re_id is None:
                continue

            # 值是否为空
            elif re_id == '':
                try:
                    # ''为删除权限
                    user.auths.get(redis=re.id).delete()
                except Exception as e:
                    logs.error(u"删除权限失败:user_id:{0},redis:{1},msg:{2}".format(
                        id, re.id, e))
                continue

            pre_auth = int(re_id)  # 权限数

            # 用户所有权限
            user_redis = []
            for i in user.auths.all():
                user_redis.append(i.redis)

            # 判断用户是否拥有该redis的权限,没有就创建,有及更新
            if re.id not in user_redis:
                try:
                    pre_obj = Auth.objects.get(redis=re.id, pre_auth=pre_auth)
                except Exception as e:
                    pre_obj = Auth.objects.create(redis=re.id,
                                                  pre_auth=pre_auth)
                user.auths.add(pre_obj)
                user.save()
            else:
                if user.auths.get(redis=re.id).pre_auth != pre_auth:
                    try:
                        pre_obj = Auth.objects.get(redis=re.id,
                                                   pre_auth=pre_auth)

                    except Exception as e:
                        pre_obj = Auth.objects.create(redis=re.id,
                                                      pre_auth=pre_auth)
                    finally:
                        user_pre = user.auths.remove(
                            user.auths.get(redis=re.id))
                        user.auths.add(pre_obj)
                        user.save()

        error = ''

        try:
            user = DctUser.objects.get(id=id)

            # 是否超级用户
            if is_superuser is not None:
                user.is_staff = True
                user.is_superuser = True
            else:
                user.is_staff = False
                user.is_superuser = False

            # 修改密码
            if password1 and password2:
                if password1 == password2:
                    user.set_password(password1)
                else:
                    error = '密码不一致'

            user.email = email
            user.save()

        except Exception as e:
            error = e
        auth = get_redis_conf(name=None, user=user)
        return render(
            request, 'change_user.html', {
                'user_info': user,
                'rediss': redissimple,
                'clusters': cluster,
                'auth': auth,
                'error': error
            })