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)
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)
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)
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)
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)