示例#1
0
    def get(self,company_id,*args,**kwargs):

        company_service = CompanyServices(self.db)
        user_services = UserServices(self.db)
        company = company_service.get_company_by_id(company_id)
        user = user_services.get_user_by_id(company.Fuser_id)
        self.echo('ops/company/company_edit.html',{'company':company,'user':user})
示例#2
0
    def post(self, *args, **kwargs):
        rsp = {
            'stat': 'err',
            'info': '',
        }
        self.get_paras_dict()
        username = self.qdict.get('username', '')  # 用户名
        passwd = self.qdict.get('passwd', '')  # 密码
        if not username or not passwd:
            rsp['info'] = '账号和密码不能为空'
            return self.write(ujson.dumps(rsp))
        user_service = UserServices(self.db)
        status, user = user_service.check_user_login_pwd(username, passwd)

        if status:
            cookies = user_service.user_format_app(user)
            login_token = create_signed_value(
                self.application.settings["cookie_secret"], 'loginuser',
                ujson.dumps(cookies))
            rsp['stat'] = 'ok'
            rsp['data'] = {
                'login_token': login_token,
                'nick_name': user.Fnick_name,
                'photo_url': user.Fphoto_url
            }
            return self.write(ujson.dumps(rsp))
        else:
            rsp['info'] = user
            return self.write(ujson.dumps(rsp))
示例#3
0
 def get(self):
     Fid = self.get_current_user().get('Fid')
     u_svr = UserServices(self.db)
     user = u_svr.get_user_by_id(Fid)
     return self.echo(
         'crm/login/user_info_edit.html',
         {'user': user},
         layout='crm/common/base.html')
    def get(self, order_type, refer_id, merchant_id, **kwargs):
        if self.current_user:
            if not self.current_user.get('Fuser_mobi', None):
                self.current_user['Fuser_mobi'] = UserServices(
                    self.db).get_user_by_id(
                        self.current_user.get('Fid')).Fuser_mobi

        company = self.db.query(Company).filter(
            Company.Fuser_id == merchant_id, Company.Fdeleted == 0).scalar()
        company_gift = self.db.query(CompanyGift).filter(
            CompanyGift.Fuid_mct == merchant_id, CompanyGift.Fdeleted == 0,
            CompanyGift.Fgift_type == 1).scalar()
        order_gift = self.db.query(CompanyGift).filter(
            CompanyGift.Fuid_mct == merchant_id, CompanyGift.Fdeleted == 0,
            CompanyGift.Fgift_type == 2).scalar()
        phone = self.current_user and self.current_user.get('Fuser_mobi') or ''
        if self.request.uri.startswith('/api/json/'):
            self.write_json({
                'stat': 'ok',
                'data': {
                    'company_gift':
                    company_gift.Fcontent if company_gift else '',
                    'order_gift': order_gift.Fcontent if order_gift else '',
                    'company_name': company.Fcompany_name if company else '',
                    'phone': phone
                },
                'info': ''
            })
        else:
            self.echo('views/merchant/order.html', {
                'gift1': company_gift,
                'gift2': order_gift,
                'phone': phone
            },
                      layout='')
示例#5
0
 def get_user_msg(self, id):
     '''
     根据用户id获取用户基础信息
     :param id : 用户id
     :return dict  keys: id ,nick ,photo
     '''
     mcache_key = 'user_msg_' + str(id)
     user = mcache.get(mcache_key)
     if not user:
         user_db = UserServices(self.db)
         user = user_db.get_user_cache_msg_by_id(id)
         user = user.__dict__ if user else {}
         if user.has_key('_labels'):
             del user['_labels']
         user = ujson.dumps(user)
         mcache.set(mcache_key, user, 7200)
     return ujson.loads(user)
示例#6
0
    def get(self, *args, **kwargs):
        code = self.get_argument('code')
        code = code.strip()

        # print code
        # client = Client(options.QQ_KEY, options.QQ_SECRET,
        #         site='https://graph.qq.com',
        #         authorize_url='https://graph.qq.com/oauth2.0/authorize',
        #         token_url='https://graph.qq.com/oauth2.0/token')
        # access_token = client.auth_code.get_token(code, redirect_uri=options.QQ_CALLBACK, parse='query')
        #
        #
        # # for key in access_token.params.keys():
        # #     print access_token.params.get(key),'0000000000000'
        #
        #
        #
        # token = access_token.token
        # client_id = access_token.params.get('client_id')
        author_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code'

        content = urllib.urlopen(
            'https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code'
            % (options.WEIXIN_KEY, options.WEIXIN_SECRET, code)).read()
        token_info = ujson.loads(content)
        openid = token_info.get('openid')
        access_token = token_info.get('access_token')
        user_info = urllib.urlopen(
            'https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s'
            % (access_token, openid)).read()
        user = ujson.loads(user_info)

        user_service = UserServices(self.db)
        exist_user = user_service.get_user_by_weixin(openid)
        print 'openid:', openid
        new_user = user_service.create_user_by_weixin(
            user=exist_user,
            nick=user.get('nickname'),
            photo=user.get('headimgurl'),
            weixin=openid,
            sex=user.get('sex'))
        print new_user.id
        cookies = user_service.user_format(new_user)
        self.set_secure_cookie('loginuser', ujson.dumps(cookies))
        self.redirect('/')
示例#7
0
    def create_user(self, user_name, mobile):
        user_service = UserServices(session)
        is_ok, info = user_service.registe_check_exist(phone=mobile)
        if not is_ok:
            user = session.query(Users).filter(
                Users.Fdeleted == 0, Users.Fuser_mobi == mobile).scalar()
            return True, user

        user = Users()
        user.Fuid = user_service.user_uid(user_name=mobile)
        user.Fuser_mobi = mobile
        user.Fnick_name = user_name
        user.Fstatus = 'normal'
        user.Fuser_pwd = user_service.user_passed(create_random_passwd(3),
                                                  user.Fuid)
        user.is_employee = 0
        user_service.db.add(user)
        user_service.db.commit()
        return True, user
示例#8
0
    def get(self, code=None, **kargs):
        p_svr = PermissionsServices(self.db)
        permissions = p_svr.get_permissions().all()

        self.user_service = UserServices(self.db)
        roles = self.user_service.get_roles()
        users = self.get_users(code)
        # if self.page_data:
        #     page_html = self.page_data.render_page_html()
        context = {
            #'page_data': self.page_data,
            'users': users,
            # 'page_html': page_html,
            'roles': roles,
            'status': Users.STATUS,
            'permissions': permissions,
            'code': code
        }
        self.echo('crm/system/member.html',
                  context,
                  layout='crm/common/base.html')
示例#9
0
 def post(self):
     #login_count = self.mcache.get(self.get_client_ip+'_login_count')
     next = self.get_argument('next', '/topic')
     back_url = urlparse.urljoin(self.request.full_url(),
                                 self.get_argument('next', '/topic'))
     data = {}
     username = self.get_argument('username', '')  # 用户名
     passwd = self.get_argument('passwd', '')  # 密码
     if not username or not passwd:
         data['error'] = '账号和密码不能为空'
         self.echo('view/login/login.html', {
             'next': next,
             'data': data
         },
                   layout='')
     else:
         user_service = UserServices(self.db)
         status, user = user_service.check_user_login_pwd(username, passwd)
         if status:
             user.Flast_visit = datetime.datetime.now()
             user.Flast_visit_ip = self.get_client_ip
             user.Fvisit_times = user.Fvisit_times + 1
             cookies = user_service.user_format(user)
             self.set_secure_cookie(
                 'loginuser',
                 ujson.dumps(cookies),
                 expires_days=100 if int(
                     self.get_argument('login_forever', 0)) else 0.1,
                 httponly=True)
             self.db.add(user)
             self.db.commit()
             self.redirect(back_url)
         else:
             data['error'] = '账号或密码错误'
             self.echo('view/login/login.html', {
                 'next': next,
                 'data': data
             },
                       layout='')
示例#10
0
    def post(self, user_id):
        uid_mct = self.get_current_user().get('Fid')
        pms = self.check_arg('permission', u'^[\d\w,]{1,512}$', '')
        kwargs = {
            'Fuser_mobi':
            self.check_arg('user_mobi', u'^\d{1,28}$'),
            'Fnick_name':
            self.check_arg('user_name', u'^[\u4e00-\u9fa5\d\w\s]{1,28}$'),
            # 'Fnick_name': self.check_arg('nick_name', u'^[\u4e00-\u9fa5\d\w\s]{1,28}$', ''),
            'Femail':
            self.check_arg('user_email', u'^[\w\d@.]{1,64}$', ''),
            "Fpermission":
            pms
        }
        pwd_srv = UserServices(self.db)
        _user_pwd = self.check_arg('user_pwd', u'^[\d\w]{1,28}$', '')
        if _user_pwd:
            _user = pwd_srv.get_user_by_id(user_id)
            kwargs['Fuser_pwd'] = pwd_srv.user_passed(_user_pwd, _user.Fuid)

        user_srv = CompanyUserServices(self.db)
        user_srv.edit_users(uid_mct, user_id, **kwargs)
        return self.write({'stat': 'ok', 'msg': ''})
示例#11
0
 def post(self):
     uid_mct = self.get_current_user().get('Fid')
     pms = self.check_arg('permission', u'^[\d\w,]{1,512}$', '')
     kwargs = {
         'Fuser_mobi':
         self.check_arg('user_mobi', u'^\d{1,28}$'),
         'Fuser_name':
         self.check_arg('user_name', u'^[\u4e00-\u9fa5\d\w\s]{1,28}$'),
         'Fuser_pwd':
         self.check_arg('user_pwd', u'^[\d\w]{1,28}$'),
         'Femail':
         self.check_arg('user_email', u'^[\w\d@.]{1,64}$', ''),
         'Fcompany_id':
         self.get_current_user().get('Fcompany_id'),
         "Fpermission":
         pms
     }
     pwd_srv = UserServices(self.db)
     user_srv = CompanyUserServices(self.db)
     user = pwd_srv.query_user_by_phone(
         self.get_argument('user_mobi').strip())
     if user:
         if pwd_srv.query_company_user(uid_mct, user.Fid):
             return self.write(
                 ujson.dumps({
                     'stat': 'error',
                     'msg': '账号已存在!'
                 }))
         else:
             data = {}
             data['Fpermission'] = kwargs.get('Fpermission')
             pwd_srv.update_user(user.Fid, **data)
     else:
         kwargs['Fuid'] = pwd_srv.user_uid(phone=kwargs['Fuser_mobi'],
                                           email=kwargs['Femail'])
         kwargs['Fuser_pwd'] = pwd_srv.user_passed(kwargs['Fuser_pwd'],
                                                   kwargs['Fuid'])
         user = user_srv.add_users(**kwargs)
     user_srv.add_company_user(user, uid_mct, **kwargs)
     return self.write(ujson.dumps({'stat': 'ok', 'msg': ''}))
示例#12
0
class CHandlerMerchantsListRole(BaseHandler):
    #用户管理
    @tornado.web.authenticated
    def get(self, code=None, **kargs):
        p_svr = PermissionsServices(self.db)
        permissions = p_svr.get_permissions().all()

        self.user_service = UserServices(self.db)
        roles = self.user_service.get_roles()
        users = self.get_users(code)
        # if self.page_data:
        #     page_html = self.page_data.render_page_html()
        context = {
            #'page_data': self.page_data,
            'users': users,
            # 'page_html': page_html,
            'roles': roles,
            'status': Users.STATUS,
            'permissions': permissions,
            'code': code
        }
        self.echo('crm/system/member.html',
                  context,
                  layout='crm/common/base.html')

    @tornado.web.authenticated
    def post(self):
        pass

    def get_users(self, code=None):
        uid_mct = self.get_current_user().get('Fid')
        self.get_paras_dict()
        code_dict = {'3': 'Fcreate_date desc'}

        if code and code_dict.get(code, None) and code in code_dict.keys():
            self.qdict['order_by'] = code_dict[code]
        user_srv = CompanyUserServices(self.db)
        users = user_srv.query_users(uid_mct)
        return users
示例#13
0
    def post(self):
        res = self.check_args(
            Fbirthday='',
            Femail='',
            Fweixin='',
            Fweibo='',
            Fqq='',
            Fuser_pwd='',
        )
        if res:
            return self.write(Error(2000, res, "参数错误").__dict__)

        Fid = self.get_current_user().get('Fid')
        self.get_paras_dict()
        del self.qdict['_xsrf']
        user_srv = UserServices(self.db)
        if self.qdict['Fuser_pwd']:
            _user = user_srv.get_user_by_id(Fid)
            self.qdict['Fuser_pwd'] = user_srv.user_passed(
                self.qdict['Fuser_pwd'],
                _user.Fuid)
        user_srv.update_user(Fid, **self.qdict)
        return self.write({'stat': 'ok', 'msg': ''})
示例#14
0
from utils.date_util import time_passed
from datacache.datacache import UserMsgCache, TopicUserSnsCache

from common.base import SiteError
import ujson
import sys
import tornado
from celery_tasks.tasks import create_user_message
import StringIO
import base64
import re
from utils.date_util import yyyydddddatetime

_TOPIC_CATEGORY_DEFAULT_URL = "/static/crm/images/default.gif"
topic_services = TopicServices()
user_serveces = UserServices()

PAGE_SIZE = 20


class TopicIndexHandler(BaseHandler):
    def get(self, category_id=None, type_num='1'):

        type_num = type_num if type_num else '1'
        topic_services.set_db(self.db)
        user_serveces.set_db(self.db)
        topic_categorys = topic_services.query_topic_category()
        topic_cate = []
        cate_basic_info = {}
        for topic_category in topic_categorys:
            cate_info = {
示例#15
0
#encoding:utf-8
__author__ = 'binpo'
import urlparse
from common.base import BaseHandler
from services.users.user_services import UserServices
import ujson

user_service = UserServices()


class MobileLoginHandler(BaseHandler):
    def get(self, *ars, **kargs):
        back_url = urlparse.urljoin(
            self.request.full_url(),
            self.get_argument('next', '/mobile/user/index/'))
        if self.get_secure_cookie('loginuser'):
            self.redirect(back_url)
        else:
            self.echo('mobile/login/login.html', {'next': back_url})

    def child_account_key(self, user):
        if 'merchant' in user.Frole_codes:
            company = user_service.get_company_merchant_id(user.Fid)
            return {
                'Fcompany_id': company.Fid,
                'Fmerchant_id': user.Fid,
                'Fcompany_name': company.Fcompany_name
            }
        if user.Fpermission:
            user_id = user.Fid
            data = user_service.get_merchant_id_by_child_acount(user_id)
示例#16
0
def insert_users(session):

    service = UserServices(session)
    users = [
        {
            'user_name': 'jinkuan',
            'user_pwd': '111111',
            'phone': '13817959607',
            'email': '',
            'is_employee': 1,
            'nick': '锦宽',
            'roles': [1, 2],
            'merchant_name': '锦宽婚纱摄影',
            'merchant_addr': '毕升路299弄'
        },
        {
            'user_name': 'qiuyan',
            'user_pwd': '111111',
            'phone': '15882136829',
            'email': '',
            'is_employee': 1,
            'nick': '丘岩',
            'roles': [1, 2],
            'merchant_name': '丘岩婚纱摄影',
            'merchant_addr': '毕升路299弄'
        },
        {
            'user_name': 'jinjin',
            'user_pwd': '111111',
            'phone': '18521099629',
            'email': '',
            'is_employee': 1,
            'nick': '锦锦',
            'roles': [1, 2],
            'merchant_name': '锦锦婚纱摄影',
            'merchant_addr': '毕升路299弄'
        },
        {
            'user_name': 'jinxin',
            'user_pwd': '111111',
            'phone': '13917507064',
            'email': '',
            'is_employee': 1,
            'nick': '金鑫',
            'roles': [1, 2],
            'merchant_name': '金鑫婚纱摄影',
            'merchant_addr': '毕升路299弄'
        },
        {
            'user_name': 'mingming',
            'user_pwd': '111111',
            'phone': '13808483343',
            'email': '',
            'is_employee': 1,
            'nick': '明明',
            'roles': [1, 2],
            'merchant_name': '明明婚纱摄影',
            'merchant_addr': '毕升路299弄'
        },
        {
            'user_name': 'zhanguo',
            'user_pwd': '111111',
            'phone': '18105713808',
            'email': '',
            'is_employee': 1,
            'nick': '战国',
            'roles': [1, 2],
            'merchant_name': '战国婚纱摄影',
            'merchant_addr': '毕升路299弄'
        },
    ]
    for u in users:
        service.create_user(**u)

    # data = [('admin','管理员','*****@*****.**','qiuyan','123445'),('businessman','商户','*****@*****.**','hello','hello1234'),('user','普通用户','*****@*****.**','hello','hellowerr')]
    # t = session.execute(
    #     Users.__table__.insert(),[{'uuid':code,'nick':name,'email':email,'user_name':username,'user_pwd':password} for code,name,email,username,password in data]
    # )
    # print t

    #session.commit()


# def create_roles():
#     data = [('admin','管理员','整个站点管理'),('merchant','商户','商家用户')]
#     session.execute(
#         Roles.__table__.insert(),[{'Fcode':code,'Fname':name} for code,name,description in data]
#     )
#     session.commit()
#
# create_roles()
# insert_users()

# d = now()
# print d
# t = '''INSERT INTO t_users (`Fuid`, `Fuser_mobi`, `Fuser_name`, `Fuser_pwd`, `Femail`, `Frole_codes`, is_employee, `Fweibo`, `Fweixin`, `Fqq`, `Fphoto_url`, `Fbirthday`, `Fdeleted`)
# VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,%s)'''%('508d4265-4e71-3170-b247-2369ea589ba6', '13438291032', 'qiuyan', '0e17a4750ba8f30313cc830c99a4e2d1', '*****@*****.**', '',
#                                                                               1, '', '', '', '', '1980-12-12', 0)
#
# print t

#INSERT INTO t_users (`Fuid`, `Fuser_mobi`, `Fuser_name`, `Fuser_pwd`, `Femail`, `Frole_codes`, is_employee, `Fweibo`, `Fweixin`, `Fqq`, `Fphoto_url`, `Fbirthday`, `Fdeleted`)VALUES ('508d4265-4e71-3170-b247-2369ea589ba6', '13438291032', 'qiuyan', '0e17a4750ba8f30313cc830c99a4e2d1', '*****@*****.**', '', 1, '', '', '', '','1980-12-12',0)
#print session.query(Users).count()
示例#17
0
    def get(self, *args, **kwargs):
        code = self.get_argument('code')
        code = code.strip()
        client = Client(
            options.QQ_KEY,
            options.QQ_SECRET,
            site='https://graph.qq.com',
            authorize_url='https://graph.qq.com/oauth2.0/authorize',
            token_url='https://graph.qq.com/oauth2.0/token')
        access_token = client.auth_code.get_token(
            code, redirect_uri=options.QQ_CALLBACK, parse='query')

        # for key in access_token.params.keys():
        #     print access_token.params.get(key),'0000000000000'

        token = access_token.token
        client_id = access_token.params.get('client_id')
        content = urllib.urlopen(
            'https://graph.qq.com/oauth2.0/me?access_token=' +
            access_token.token).read()
        open_id = ujson.loads(content[content.find('{'):content.find('}') +
                                      1]).get('openid')
        user_info = get_oauth_user_info(
            'https://graph.qq.com/user/get_user_info',
            oauth_consumer_key=options.QQ_KEY,
            access_token=access_token.token,
            format='json',
            openid=open_id)
        user = ujson.loads(user_info)
        #['figureurl_2','nickname','open_id']

        # print user.get('figureurl_2')
        # print open_id
        # print user.get('nickname')
        # print user.get('gender')
        #
        # print user_info

        user_service = UserServices(self.db)
        exist_user = user_service.get_user_by_qq(open_id)
        #user = user_service.get_user_by_weibo(user_json.get('idstr'))

        user = user_service.create_user_by_qq(user=exist_user,
                                              nick=user.get('nickname'),
                                              photo=user.get('figureurl_qq_2'),
                                              qq=open_id)
        #
        # uid = self.user_uid(user_name=kargs.get('open_id',''))
        # user.uid = uid
        # user.nick = kargs.get('nick','')
        # user.email = kargs.get('email','')
        # user.phone = kargs.get('phone','')
        # user.photo = kargs.get('photo', '')
        # user.is_employee = kargs.get('is_employee',0)
        # user.sex = kargs.get('sex','')
        # user.last_visit = datetime.now()
        # user.last_visit_ip = kargs.get('last_visit_ip','')
        # user.visit_times = kargs.get('visit_times',0)
        # user.regist_from = kargs.get('regist_from','qq')
        # user.find_pw_url = kargs.get('find_pw_url','')
        # user.status = kargs.get('status','normal')
        # user.avatar = kargs.get('avatar','')
        # user.sign_text = kargs.get('sign_text','')

        # qq_weibo_info = get_oauth_user_info('https://graph.qq.com/user/get_info',oauth_consumer_key=options.QQ_KEY,access_token=access_token.token,format='json',openid=open_id)
        # print qq_weibo_info
        # print 'save user'
        print user.id
        cookies = user_service.user_format(user)
        self.set_secure_cookie('loginuser', ujson.dumps(cookies))
        self.redirect('/')