示例#1
0
文件: admin.py 项目: 64611187/crysadm
def admin_user():
    recent_login_users = []
    users = list()

    for b_user in r_session.mget(*[
            'user:%s' % name.decode('utf-8')
            for name in sorted(r_session.smembers('users'))
    ]):
        if b_user is None:
            continue
        user = json.loads(b_user.decode('utf-8'))
        if user.get('login_as_time') is not None:
            if (datetime.now() - datetime.strptime(
                    user.get('login_as_time'), '%Y-%m-%d %H:%M:%S')).days < 3:
                recent_login_users.append(user)
        user['is_online'] = r_session.exists('user:%s:is_online' %
                                             user.get('username'))  # 临时寄存数据
        users.append(user)

    return render_template('admin_user.html',
                           recent_login_users=sorted(
                               recent_login_users,
                               key=lambda k: k['login_as_time'],
                               reverse=True),
                           users=users)
示例#2
0
def excavators():
    user = session.get('user_info')

    err_msg = None
    if session.get('error_message') is not None:
        err_msg = session.get('error_message')
        session['error_message'] = None

    info_msg = None
    if session.get('info_message') is not None:
        info_msg = session.get('info_message')
        session['info_message'] = None

    accounts_key = 'accounts:%s' % user.get('username')

    accounts = list()
    for acct in sorted(r_session.smembers(accounts_key)):
        account_key = 'account:%s:%s' % (user.get('username'),
                                         acct.decode("utf-8"))
        account_data_key = account_key + ':data'
        account_data_value = r_session.get(account_data_key)
        account_info = json.loads(r_session.get(account_key).decode("utf-8"))
        if account_data_value is not None:
            account_info['data'] = json.loads(
                account_data_value.decode("utf-8"))
        accounts.append(account_info)

    show_drawcash = r_session.exists('can_drawcash')

    return render_template('excavators.html',
                           err_msg=err_msg,
                           info_msg=info_msg,
                           accounts=accounts,
                           show_drawcash=show_drawcash)
示例#3
0
文件: admin.py 项目: achaoge/crysadm
def admin_user():
    recent_login_users = []
    users = list()

    for b_user in r_session.mget(*['user:%s' % name.decode('utf-8') for name in sorted(r_session.smembers('users'))]):
        if b_user is None:
            continue
        user = json.loads(b_user.decode('utf-8'))
        if user.get('login_as_time') is not None:
            if (datetime.now() - datetime.strptime(user.get('login_as_time'), '%Y-%m-%d %H:%M:%S')).days < 3:
                recent_login_users.append(user)
        user['is_online'] = r_session.exists('user:%s:is_online' % user.get('username')) # 临时寄存数据
        users.append(user)

    return render_template('admin_user.html',
                           recent_login_users=sorted(recent_login_users, key=lambda k: k['login_as_time'],
                                                     reverse=True),
                           users=users)
示例#4
0
def admin_user():
    user_filter = ''
    if session.get('user_filter') is not None:
        user_filter = session.get('user_filter')
        session['user_filter'] = None

    err_msg = None
    if session.get('error_message') is not None:
        err_msg = session.get('error_message')
        session['error_message'] = None

    info_msg = None
    if session.get('info_message') is not None:
        info_msg = session.get('info_message')
        session['info_message'] = None

    users = set()

    for b_user in r_session.mget(*[
            'user:%s' % name.decode('utf-8')
            for name in sorted(r_session.smembers('users'))
    ]):
        if b_user is None:
            continue
        user = json.loads(b_user.decode('utf-8'))
        user['is_online'] = r_session.exists('user:%s:is_online' %
                                             user.get('username'))  # 临时寄存数据
        user_show = {}
        user_show['username'] = user.get('username')
        if user.get('email') is None:
            user['email'] = ''
        user_show['email'] = user.get('email')
        user_show['created_time'] = user.get('created_time')
        if user.get('expire_date') is None:
            user['expire_date'] = ''
        user_show['expire_date'] = user.get('expire_date')
        if user.get('login_time') is None:
            user['login_time'] = ''
        user_show['login_time'] = user.get('login_time')
        if user.get('max_account_no') is None:
            user['max_account_no'] = ''
        user_show['max_account_no'] = user.get('max_account_no')
        if user['is_online']:
            user_show['is_online'] = '<span class="label label-info">在线</span>'
        else:
            user_show[
                'is_online'] = '<span class="label label-danger">离线</span>'
        if user['active']:
            user_show['active'] = 'O'
        else:
            user_show['active'] = 'X'
        if user.get('is_admin'):
            user_show['is_admin'] = 'O'
        else:
            user_show['is_admin'] = 'X'
        user_show['collector'] = '''
<div class="btn-group">
    <div style="display: inline-block">
        <button aria-expanded="false" data-toggle="dropdown" class="btn ''' + (
            'btn-warning' if user.get('collector') == None else
            'btn-info') + ''' btn-xs dropdown-toggle">
            ''' + ('未配置' if user.get('collector') == None else
                   user.get('collector')) + '''<span class="caret"></span>
        </button>
        <ul class="dropdown-menu">
    '''
        for server in r_session.smembers('collector_working'):
            server = server.decode('utf-8')
            user_show['collector'] = user_show['collector'] + '''
            <li>
                <form style="margin:5px 5px 0px 5px" role="form" action="/admin/change_property/collector/''' + server + '/' + user[
                'username'] + '''" method="post">
                    <button type="submit" class="btn btn-outline btn-primary btn-block">''' + server + '''</button>
                </form>
            </li>
    '''
        user_show['collector'] = user_show['collector'] + '''
        </ul>
    </div>
</div>
'''
        user_show['operation'] = '''
<div style="display: inline-block">
    <a href="/admin_user/''' + user[
            'username'] + '''" class="btn btn-outline btn-default btn-xs">编辑</a>
</div>
<form style="display: inline-block" role="form" action="/admin/login_as/''' + user[
                'username'] + '''" method="post">
    <button type="submit" class="btn btn-outline btn-default btn-xs">登陆</button>
</form>
    '''
        json_user = json.dumps(user_show)
        if user_filter == '':
            users.add(json_user)
            continue
        user_filters = set(user_filter.split())
        users.add(json_user)
        if '在线' in user_filters:
            user_filters.remove('在线')
            if not user['is_online']:
                users.discard(json_user)
        if '离线' in user_filters:
            user_filters.remove('离线')
            if user['is_online']:
                users.discard(json_user)
        if '禁用' in user_filters:
            user_filters.remove('禁用')
            if user['active']:
                users.discard(json_user)
        if '启用' in user_filters:
            user_filters.remove('启用')
            if not user['active']:
                users.discard(json_user)
        if '快过期' in user_filters:
            user_filters.remove('快过期')
            if user['expire_date'] != '' and datetime.strptime(
                    user['expire_date'], '%Y-%m-%d').date() > (
                        datetime.now() + timedelta(days=7)).date():
                users.discard(json_user)
            elif 'is_admin' in user.keys() and user['is_admin']:
                users.discard(json_user)
        if '已过期' in user_filters:
            user_filters.remove('已过期')
            if user['expire_date'] != '' and datetime.strptime(
                    user['expire_date'],
                    '%Y-%m-%d').date() > datetime.now().date():
                users.discard(json_user)
            elif 'is_admin' in user.keys() and user['is_admin']:
                users.discard(json_user)
        if '新用户' in user_filters:
            user_filters.remove('新用户')
            if 'created_time' in user.keys() and datetime.strptime(
                    user['created_time'], '%Y-%m-%d %H:%M:%S').date() <= (
                        datetime.now() + timedelta(days=-3)).date():
                users.discard(json_user)
        if '老用户' in user_filters:
            user_filters.remove('老用户')
            if 'created_time' in user.keys() and datetime.strptime(
                    user['created_time'], '%Y-%m-%d %H:%M:%S').date() > (
                        datetime.now() + timedelta(days=-3)).date():
                users.discard(json_user)
        if '无矿机' in user_filters:
            user_filters.remove('无矿机')
            accounts_count = r_session.smembers('accounts:%s' %
                                                user.get('username'))
            if accounts_count is not None and len(accounts_count) != 0:
                users.discard(json_user)
        if '未启用矿机' in user_filters:
            user_filters.remove('未启用矿机')
            accounts = r_session.smembers('accounts:%s' % user.get('username'))
            if accounts is not None and len(accounts) != 0:
                has_active_account = False
                for b_xl_account in accounts:
                    xl_account = b_xl_account.decode('utf-8')
                    account = json.loads(
                        r_session.get('account:%s:%s' %
                                      (user.get('username'),
                                       xl_account)).decode('utf-8'))
                    if account.get('active'):
                        has_active_account = True
                        break
                if has_active_account:
                    users.discard(json_user)
            else:
                users.discard(json_user)
        if user_filters:
            for c in user_filters:
                if json_user.find(c) == -1:
                    users.discard(json_user)
    user_list = list()
    for user in users:
        user_list.append(json.loads(user))
    user_list.sort(key=lambda k: k['username'])
    user_list.sort(key=lambda k: k['is_admin'], reverse=True)
    return render_template('admin_user.html',
                           users=user_list,
                           err_msg=err_msg,
                           info_msg=info_msg,
                           user_filter=user_filter)
示例#5
0
def admin_user():
    user_filter = ''
    if session.get('user_filter') is not None:
        user_filter = session.get('user_filter')
        session['user_filter'] = None

    err_msg = None
    if session.get('error_message') is not None:
        err_msg = session.get('error_message')
        session['error_message'] = None

    info_msg = None
    if session.get('info_message') is not None:
        info_msg = session.get('info_message')
        session['info_message'] = None

    users = set()

    for b_user in r_session.mget(*['user:%s' % name.decode('utf-8') for name in sorted(r_session.smembers('users'))]):
        if b_user is None:
            continue
        user = json.loads(b_user.decode('utf-8'))
        user['is_online'] = r_session.exists('user:%s:is_online' % user.get('username')) # 临时寄存数据
        user_show={}
        user_show['username'] = user.get('username')
        if user.get('email') is None:
            user['email']=''
        user_show['email'] = user.get('email')
        user_show['created_time'] = user.get('created_time')
        if user.get('expire_date') is None:
            user['expire_date']=''
        user_show['expire_date'] = user.get('expire_date')
        if user.get('login_time') is None:
            user['login_time']=''
        user_show['login_time'] = user.get('login_time')
        if user.get('max_account_no') is None:
            user['max_account_no']=''
        user_show['max_account_no'] = user.get('max_account_no')
        if user['is_online']:
            user_show['is_online'] = '<span class="label label-info">在线</span>'
        else:
            user_show['is_online'] = '<span class="label label-danger">离线</span>'
        if user['active']:
            user_show['active'] = 'O'
        else:
            user_show['active'] = 'X'
        if user.get('is_admin'):
            user_show['is_admin']='O'
        else:
            user_show['is_admin']='X'
        user_show['collector']='''
<div class="btn-group">
    <div style="display: inline-block">
        <button aria-expanded="false" data-toggle="dropdown" class="btn ''' + ('btn-warning' if user.get('collector')==None else 'btn-info') + ''' btn-xs dropdown-toggle">
            ''' + ('未配置' if user.get('collector')==None else user.get('collector')) + '''<span class="caret"></span>
        </button>
        <ul class="dropdown-menu">
    '''
        for server in r_session.smembers('collector_working'):
            server=server.decode('utf-8')
            user_show['collector']=user_show['collector'] + '''
            <li>
                <form style="margin:5px 5px 0px 5px" role="form" action="/admin/change_property/collector/''' + server + '/' + user['username'] + '''" method="post">
                    <button type="submit" class="btn btn-outline btn-primary btn-block">''' + server + '''</button>
                </form>
            </li>
    '''
        user_show['collector']=user_show['collector'] + '''
        </ul>
    </div>
</div>
'''
        user_show['operation']='''
<div style="display: inline-block">
    <a href="/admin_user/''' + user['username'] + '''" class="btn btn-outline btn-default btn-xs">编辑</a>
</div>
<form style="display: inline-block" role="form" action="/admin/login_as/''' + user['username'] + '''" method="post">
    <button type="submit" class="btn btn-outline btn-default btn-xs">登陆</button>
</form>
    '''
        json_user=json.dumps(user_show)
        if user_filter == '':
            users.add(json_user)
            continue
        user_filters=set(user_filter.split())
        users.add(json_user)
        if '在线' in user_filters:
            user_filters.remove('在线')
            if not user['is_online']:
                users.discard(json_user)
        if '离线' in user_filters:
            user_filters.remove('离线')
            if user['is_online']:
                users.discard(json_user)
        if '禁用' in user_filters:
            user_filters.remove('禁用')
            if user['active']:
                users.discard(json_user)
        if '启用' in user_filters:
            user_filters.remove('启用')
            if not user['active']:
                users.discard(json_user)
        if '快过期' in user_filters:
            user_filters.remove('快过期')
            if user['expire_date'] != '' and datetime.strptime(user['expire_date'],'%Y-%m-%d').date() > (datetime.now() + timedelta(days=7)).date():
                users.discard(json_user)
            elif 'is_admin'  in user.keys() and user['is_admin']:
                users.discard(json_user)
        if '已过期' in user_filters:
            user_filters.remove('已过期')
            if user['expire_date'] != '' and datetime.strptime(user['expire_date'],'%Y-%m-%d').date() > datetime.now().date():
                users.discard(json_user)
            elif 'is_admin'  in user.keys() and user['is_admin']:
                users.discard(json_user)
        if '新用户' in user_filters:
            user_filters.remove('新用户')
            if 'created_time' in user.keys() and datetime.strptime(user['created_time'],'%Y-%m-%d %H:%M:%S').date() <= (datetime.now() + timedelta(days=-3)).date():
                users.discard(json_user)
        if '老用户' in user_filters:
            user_filters.remove('老用户')
            if 'created_time' in user.keys() and datetime.strptime(user['created_time'],'%Y-%m-%d %H:%M:%S').date() > (datetime.now() + timedelta(days=-3)).date():
                users.discard(json_user)
        if '无矿机' in user_filters:
            user_filters.remove('无矿机')
            accounts_count = r_session.smembers('accounts:%s' % user.get('username'))
            if accounts_count is not None and len(accounts_count) != 0:
                users.discard(json_user)
        if '未启用矿机' in user_filters:
            user_filters.remove('未启用矿机')
            accounts = r_session.smembers('accounts:%s' % user.get('username'))
            if accounts is not None and len(accounts) != 0:
                has_active_account = False
                for b_xl_account in accounts:
                    xl_account = b_xl_account.decode('utf-8')
                    account = json.loads(r_session.get('account:%s:%s' % (user.get('username'), xl_account)).decode('utf-8'))
                    if account.get('active'):
                        has_active_account = True
                        break
                if has_active_account:
                    users.discard(json_user)
            else:
                users.discard(json_user)
        if user_filters:
            for c in user_filters:
                if json_user.find(c) == -1:
                    users.discard(json_user)
    user_list=list()
    for user in users:
        user_list.append(json.loads(user))
    user_list.sort(key=lambda k: k['username'])
    user_list.sort(key=lambda k: k['is_admin'],reverse=True)
    return render_template('admin_user.html',users=user_list,err_msg=err_msg,info_msg=info_msg,user_filter=user_filter)