Example #1
0
    def modify(self):
        userInput= self.getInput()

        userObj = Users.get(Users.id == int(userInput['id']))
        current_user = Users.get(Users.name == self.isLogin())   

        if userObj.id != current_user.id and not self.isAdmin():
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/users/list'))

        thumbnail_id = int(userInput['thumbnail']) if userInput.has_key('thumbnail') else 0
        if thumbnail_id:
            thumbnail_data = Images.get(Images.id == thumbnail_id).thumbnail
        else:
            import base64
            from imaging import imaging
            thumbnail_data = base64.b64encode(buffer(imaging.default_thumbnail()))

        try:
            userObj = Users.get(Users.id == int(userInput['id']))
            userObj.email = userInput['email']
            userObj.name = userInput['name']
            userObj.cellphone = userInput['cellphone']
            userObj.description = userInput['desc']
            userObj.gender = int(userInput['gender'])
            userObj.avatur = thumbnail_data
            if self.isAdmin():
                userObj.role = userInput['role']
            userObj.save()
        except Exception, e:
            return self.error(msg = '会员修改失败: %s' % e, url=self.makeUrl('/admin/users/list'))
Example #2
0
    def add(self):
        chatroomsList = Chatrooms().select()

        userName = self.isLogin()
        if userName != 'admin':
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/chatrooms/list'))
        user = Users.get(Users.name == userName)
        albumsList = Albums().select().where(Albums.owner == user.id)
        imagesList = Images().select().where(Images.owner == user.id)

        if not albumsList.count():
            return self.error(msg = '请创建至少一个专辑!', url=self.makeUrl('/admin/chatrooms/list'))
        if not imagesList.count():
            return self.error(msg = '请创建至少一个图片!', url=self.makeUrl('/admin/chatrooms/list'))

        album_images_map = {}
        excluded_albums = []
        for album in albumsList:
            album_images = imagesList.where(Images.album == album.id)
            if album_images.count():
                album_images_map[album.id] = album_images
            else:
                excluded_albums.append(album.id)

        self.privData['ALBUMS_LIST'] = \
            [album for album in albumsList if album.id not in excluded_albums]
        self.privData['IMG_ALBUMS_LIST'] = album_images_map

        # 默认专辑为当前用户的第一个专辑
        self.privData['CURRENT_ALBUM'] = self.privData['ALBUMS_LIST'][0]
        # 默认图片为默认专辑的第一张图片
        self.privData['CURRENT_IMG'] = album_images_map[self.privData['CURRENT_ALBUM'].id][0]
        self.privData['SUBMIT_NAME'] = "thumbnail"

        return self.display('chatroomAdd')
Example #3
0
    def edit_user_info(self):
        inputs = self.get_input()
        try:
            user = Users.get(Users.cellphone == self.is_login())

            if inputs.get('name'):
                user.name = inputs['name']

            if inputs.get('description'):
                user.description = self.htmlunquote(inputs['description'])

            if inputs.get('gender'):
                user.gender = int(inputs['gender'])

            if inputs.get('birthday'):
                user.birthday = inputs['birthday']

            if inputs.get('email'):
                user.email = inputs['email']

            user.save()
            return self.success()
        except Users.DoesNotExist:
            log.error('execus edit_user_info %s' % traceback.format_exc())
            return self.forbidden()
        except Exception as e:
            log.error('execus edit_user_info %s' % traceback.format_exc())
            return self.error()
Example #4
0
    def update(self):
        inputParams= self.getInput() 
        group = Groups.get(Groups.id == int(inputParams['id']))
 
        current_user = Users.get(Users.name == self.isLogin())
        if current_user.id != group.owner.id and not self.isAdmin() or not current_user.role.type < 100:
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/groups/list'))

        try:
            group.regions = inputParams['regions']
            group.name = inputParams['name']
            group.owner = current_user
            group.phoneno = inputParams['phoneno']
            group.cellphone = inputParams['cellphone']
            group.faxno = inputParams['faxno']
            group.postcode = inputParams['postcode']
            group.contact = inputParams['contact']
            group.description = self.htmlunquote(inputParams['description'])
            group.thumbnail = int(inputParams['thumbnail'])
            group.team_description = self.htmlunquote(inputParams['team_description'])
            group.regions = inputParams['regions']
            group.service_modes = inputParams['service_modes']
            group.specials = inputParams['specials']
            group.swipeshow_album = int(inputParams['swipeshow_album'])
            group.groups_album = int(inputParams['groups_album'])
            group.price1 = float(inputParams['price1'])
            group.price2 = float(inputParams['price2'])
            group.address = inputParams['address']
            group.longitude = float(inputParams['longitude'])
            group.latitude = float(inputParams['latitude'])
            group.category = int(inputParams['category'])
            group.save()
        except Exception, e:
            return self.error(msg = '公司修改失败: %s' % e, url=self.makeUrl('/admin/groups/list'))
Example #5
0
    def signin(self):
        try:
            inputs = self.get_input()
            log.info('signin:' + str(inputs))
            cellphone = inputs['cellphone']
            password = md5(inputs['password']).hexdigest()
            user = Users.get(Users.cellphone == cellphone)
            if not user or user.password != password:
                return self.unauthorized()

            t = int(time.time())
            if not user.token or t - time.mktime(
                    user.token_created_time.timetuple()) > 144000:
                token = gen_token()
                user.token = token
                user.token_created_time = datetime.datetime.now()
            else:
                token = user.token
            self.set_login(user.cellphone, token)
            user.last_login_time = datetime.datetime.now()
            user.save()
            return self.success()
        except Exception as e:
            log.error('execs signin %s' % traceback.format_exc())
            return self.unauthorized()
Example #6
0
 def save_my_information(self):
     inputs = web.input()
     try:
         try:
             if len(inputs['imgfile'])>10:
                 htmlimg = httpUploadedFile(inputs['imgfile'])
                 userimg=Images().create(
                     uuid =  htmlimg.uuid(),
                     description = self.htmlunquote("上传图片"),
                     thumbnail = self.wap_imgsave(htmlimg)
                     )
         except Exception, e:
             print e
             userimg=Images().get(Images.id == 1)
         
         user = Users.get(Users.id == int(inputs['userid']))
         user.name = inputs['name']
         user.cellphone = inputs['cellphone']
         user.gender = inputs['gender']
         user.email = inputs['email']
         user.job = inputs['job']
         user.avatur=userimg
         user.address = inputs['address']
         user.save()
         return self.my_information()
Example #7
0
    def modify(self):
        inputParams= self.getInput()
        album_id = int(inputParams['id'])
        thumbnail_id = int(inputParams['thumbnail']) if inputParams.has_key('thumbnail') else 0
 
        if album_id == 1:
            return self.error(msg='不能编辑系统专辑', url=self.makeUrl('/admin/albums/list'))

        album = Albums.get(Albums.id == album_id)
        current_user = Users.get(Users.name == self.isLogin())
        if current_user.id != album.owner.id and not self.isAdmin():
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/albums/list'))

        if thumbnail_id:
            thumbnail_data = Images.get(Images.id == thumbnail_id).thumbnail
        else:
            import base64
            from imaging import imaging
            thumbnail_data = base64.b64encode(buffer(imaging.default_thumbnail()))

        try:
            album.name  = inputParams['name']
            album.description = inputParams['desc']
            album.thumbnail = thumbnail_data
            album.save()
        except Exception, e:
            return self.error(msg = '专辑修改失败: %s' % e, url=self.makeUrl('/admin/albums/list'))
Example #8
0
    def save(self):
        inputParams= self.getInput()

        try:
            current_user = Users.get(Users.name == self.isLogin())
            inputParams['longitude'] = inputParams['longitude'] if inputParams['longitude'] else 116.397428
            inputParams['latitude'] = inputParams['latitude'] if inputParams['latitude'] else 39.90923

            Groups.create(
                name = inputParams['name'],
                owner = current_user,
                address = inputParams['address'],
                phoneno = inputParams['phoneno'],
                cellphone = inputParams['cellphone'],
                faxno = inputParams['faxno'],
                postcode = inputParams['postcode'],
                contact = inputParams['contact'],
                description = self.htmlunquote(inputParams['description']),
                thumbnail = int(inputParams['thumbnail']), 
                team_description = self.htmlunquote(inputParams['team_description']),
                regions = inputParams['regions'],
                service_modes = inputParams['service_modes'],
                specials = inputParams['specials'],
                swipeshow_album = int(inputParams['swipeshow_album']),
                groups_album = int(inputParams['groups_album']),
                price1 = float(inputParams['price1']),
                price2 = float(inputParams['price2']),
                longitude = float(inputParams['longitude']),
                latitude = float(inputParams['latitude']),
                category = int(inputParams['category']),
            )  
        except Exception, e:
            return self.error(msg = '新增公司失败: %s' % e, url=self.makeUrl('/admin/groups/list'))
Example #9
0
 def confirm_select_order(self):
     inputs = self.getInput()
     try:
         product = Products.get(Products.id == int(inputs['product']))
         user =Users.get(Users.name == self.isLogin())
         price = inputs['price']
         if inputs.has_key('add'):
             order = Orders.create(
                 owner = user,
                 price = price,
                 description = product.category.name,
             )
         else:
             if not inputs.has_key('selected'):
                 return self.orders_list()
             order = Orders.get(Orders.id == int(inputs['selected']))
         
         details = OrderDetails.create(
             name = product.category.name + "   "+product.diameter,
             product = product,
             count = user,
             price = price,
             ratio = 0.0,
             order = order,
         )
         return web.seeother(self.makeUrl('/wap/edit_price_sheet', {'id': order.id}))
     except Exception, e:
         print 'exc',e
         return self.error(msg='保存订单失败!')
Example #10
0
    def edit(self):
        inputParams = self.getInput()
        album_id = int(inputParams['id'])
        album = Albums.get(Albums.id == album_id)

        current_user = Users.get(Users.name == self.isLogin())
        if current_user.id != album.owner.id and not self.isAdmin():
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/albums/list'))

        self.privData['ALBUM_ID'] =   album.id
        self.privData['ALBUM_NAME'] = album.name
        self.privData['ALBUM_DESC'] = album.description
        self.privData['ENABLE_SELECT_THUMBNAIL'] = False

        imagesList = Images().select()
        if not self.isAdmin():
            imagesList = imagesList.where(Images.owner == current_user)

        imagesList = imagesList.where(Images.album == album)
        if imagesList.count():
            self.privData['ENABLE_SELECT_THUMBNAIL'] = True
            self.privData['ALBUMS_LIST'] = [album]
            self.privData['IMG_ALBUMS_LIST'] = {album.id: imagesList}
            self.privData['CURRENT_IMG'] = imagesList[0]
            self.privData['CURRENT_ALBUM'] = album
            self.privData['SUBMIT_NAME'] = "thumbnail"

        return self.display('albumEdit')
Example #11
0
    def save_price_sheet(self):
        inputs = self.getInput()
        print inputs
        try:
            if inputs.has_key('add'):
                return web.seeother(self.makeUrl('/wap/categories', {'parent': 1, 'order': int(inputs['id'])}))

            order = Orders.get(Orders.id == int(inputs['id']))

            attrs = {}
            for k, v in inputs.items():
                try:
                    attr, oid = k.split('_')
                except Exception, e:
                    continue

                if not attrs.has_key(oid):
                    attrs[oid] = {}
                attrs[oid][attr] = v

            if not inputs['customer'] or not inputs['description']:
                raise Exception("询价方或备注不能为空!")

            order.customer = inputs['customer']
            order.description = inputs['description']
            order.owner = Users.get(Users.name == self.isLogin())
            order.save()

            for k, v in attrs.items():
                #import pdb;pdb.set_trace()
                import traceback
                if not v['count'] or not v['ratio']:
                    raise Exception("数量或利润率不能为空!")
                nameform = v['name']
                diameterform = v['diameter']
                oldinput= v['can']
                name, diameter = oldinput.split('   ')
                details = OrderDetails.get(OrderDetails.id == int(k))
                details.name = oldinput
                flag = v['bool']
                if flag.find("True")>=0:
                   details.flag=True
                elif details.name!=(details.product.category.name+'   '+details.product.diameter):
                   details.flag=True
                else:                   
                   details.flag=False
                   
                try:
                    product = Products().get(Products.name==name,Products.diameter == diameter)
                except Exception,e:
                    details.price = float(v['input'])
                    details.count = v['count']
                    details.ratio = float(v['ratio'])/100.0
                    details.save()
                  
                details.price = float(v['input'])
                details.count = v['count']
                details.ratio = float(v['ratio'])/100.0
                details.save()
Example #12
0
 def edit_my_information(self):
     inputs = self.getInput()
     try:
         user = Users.get(Users.id == inputs['id'])
         self.privData['USER'] = user
         return self.display('edit-my-information')
     except Exception,e:
         return self.error(msg='获取当前用户信息失败!')
Example #13
0
 def my_information(self):
     try:
         user =Users.get(Users.name == self.isLogin())
         self.privData['USER'] = user
         return self.display('my-information')
     except Exception, e:
         print e
         return self.error(msg='获取用户信息失败!')
Example #14
0
 def comment_article(self):
     inputs = self.get_input()
     token = Users.get(Users.cellphone == self.is_login()).token
     inputs['token'] = token
     url = API_URL + '/api/comment_article'
     try:
         return post(url, inputs)
     except Exception as e:
         log.error('execus comment_article %s' % traceback.format_exc())
Example #15
0
 def put(self, id):
     args = self.parser.parse_args()
     u = Users.get(id=id)
     if u and args:
         u.update(**args)
         if args.get('password'):
             u.set_password(args.get('password'))
         return u.__dict__
     return {}, 404
Example #16
0
    def edit(self):
        inputParams = self.getInput()
        userName = self.isLogin()

        chatroomID = int(inputParams['id'])
        # 权限检查
        chatroom = Chatrooms.get(Chatrooms.id == chatroomID)
        current_user = Users.get(Users.name == self.isLogin())
        if current_user.id != chatroom.owner.id and not self.isAdmin() or not current_user.role.type < 100:
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/chatrooms/list'))

        self.privData['CHATROOM'] = chatroom

        user = Users.get(Users.name == userName)
        albumsList = Albums().select().where(Albums.owner == user.id)
        imagesList = Images().select().where(Images.owner == user.id)

        # 确认当前用户是否至少有一个包含图片的专辑
        if not albumsList.count():
            return self.error(msg = '请创建至少一个专辑!', url=self.makeUrl('/admin/albums/list'))
        if not imagesList.count():
            return self.error(msg = '请创建至少一个图片!', url=self.makeUrl('/admin/images/list'))


        # 构建{album: images}, 同时排除不包括任何图片的专辑
        album_images_map = {}
        excluded_albums = []
        for album in albumsList:
            album_images = imagesList.where(Images.album == album.id)
            if album_images.count():
                album_images_map[album.id] = album_images
            else:
                excluded_albums.append(album.id)

        self.privData['ALBUMS_LIST'] = \
            [album for album in albumsList if album.id not in excluded_albums]
        self.privData['IMG_ALBUMS_LIST'] = album_images_map

        self.privData['CURRENT_CHATROOM'] = chatroom
        self.privData['CURRENT_ALBUM'] = chatroom.thumbnail.album
        self.privData['CURRENT_IMG'] = chatroom.thumbnail
        self.privData['SUBMIT_NAME'] = "thumbnail"

        return self.display('chatroomEdit')
Example #17
0
 def update_user_info(self):
     inputs = self.get_input()
     token = Users.get(Users.cellphone == self.is_login()).token
     inputs['token'] = token
     log.info('inputs %s ' % inputs)
     url = API_URL + '/api/update_user_info'
     try:
         return post(url, inputs)
     except Exception as e:
         log.error('execus update_user_info %s' % traceback.format_exc())
Example #18
0
 def article_info(self):
     inputs = self.get_input()
     url = API_URL + '/api/article_info'
     try:
         if self.is_login():
             inputs['token'] = Users.get(
                 Users.cellphone == self.is_login()).token
         return get(url, inputs)
     except Exception as e:
         log.error('execus articles %s' % traceback.format_exc())
Example #19
0
    def savepwd(self):
        inputData = self.getInput()
        #password = hashlib.md5(inputData['oldpwd']).hexdigest() 
        userID = inputData['id']
        newpwd1 = hashlib.md5(inputData['newpwdone']).hexdigest()
        newpwd2 = hashlib.md5(inputData['newpwdtwo']).hexdigest()

        
        if newpwd1 != newpwd2:
            return self.error(msg = '两次密码输入不一致', url=self.makeUrl('/admin/users/list'))
     
        user = Users.get(Users.id == userID)
        user.password = newpwd1

        try:
            user = Users.get(Users.id == userID)
            user.password = newpwd1
        except Exception, e:
            return self.error(msg = '会员密码修改失败: %s' % e, url=self.makeUrl('/admin/users/list'))
Example #20
0
    def answnerEdit(self):
        inputParams = self.getInput()
        answner = Answners.get(Answners.id == inputParams['id'])

        current_user = Users.get(Users.name == self.isLogin())
        if not self.isAdmin() or answner.question.group.owner != current_user:
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/questions/list'))
        self.privData['ANSWNER'] = answner

        return self.display('answnerEdit')
Example #21
0
 def orders_list(self):
     try:
         #import pdb; pdb.set_trace()
         user = Users.get(Users.name == self.isLogin())
         ordersList = Orders.select().where(Orders.owner == user).order_by(Orders.id.desc())
         self.privData['ORDERS_LIST'] = ordersList
         return self.display('orders-list')
     except Exception, e:
         print e
         return self.error(msg='获取报价单列表失败!')
Example #22
0
    def edit(self):
        inputParams = self.getInput()

        userObj = Users.get(Users.id == int(inputParams['id']))
        current_user = Users.get(Users.name == self.isLogin())   

        if userObj.id != current_user.id and not self.isAdmin():
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/users/list'))

        # 不允许创建系统管理员
        rolesList = Roles().select().where(Roles.id>1)
        self.privData['ROLES_LIST'] = rolesList

        self.privData['USER_INFO'] = userObj

        albumsList = Albums().select()
        imagesList = Images().select()

        # 确认当前用户是否至少有一个包含图片的专辑
        if not albumsList.count():
            return self.error(msg = '请创建至少一个专辑!', url=self.makeUrl('/admin/albums/list'))
        if not imagesList.count():
            return self.error(msg = '请创建至少一个图片!', url=self.makeUrl('/admin/images/list'))

        # 构建{album: images}, 同时排除不包括任何图片的专辑
        album_images_map = {}
        excluded_albums = []
        for album in albumsList:
            album_images = imagesList.where(Images.album == album.id)
            if album_images.count():
                album_images_map[album.id] = album_images
            else:
                excluded_albums.append(album.id)

        self.privData['ALBUMS_LIST'] = \
            [album for album in albumsList if album.id not in excluded_albums]
        self.privData['IMG_ALBUMS_LIST'] = album_images_map
        self.privData['CURRENT_ALBUM'] = self.privData['ALBUMS_LIST'][0]
        self.privData['CURRENT_IMG'] = album_images_map[self.privData['CURRENT_ALBUM'].id][0]
        self.privData['SUBMIT_NAME'] = "thumbnail"

        return self.display('userEdit')
Example #23
0
    def delete(self):
        inputParams = self.getInput()

        try:
            current_user = Users.get(Users.name == self.isLogin())
            if  not self.isAdmin():
                return self.error(msg = '权限不足!', url=self.makeUrl('/admin/agents/list')) 
            question = Questionss.get(Questions.id == int(inputParams['id']))
            question.delete_instance()
        except Exception, e:
            return self.error(msg = '删除问题失败: %s' % e, url=self.makeUrl('/admin/questions/list'))
Example #24
0
    def delete(self):
        inputParams = self.getInput()

        try:
            current_user = Users.get(Users.name == self.isLogin())
            if not self.isAdmin():
                return self.error(msg="权限不足!", url=self.makeUrl("/admin/articles/list"))
            article = Articles.get(Articles.id == int(inputParams["id"]))
            article.delete_instance()
        except Exception, e:
            return self.error(msg="删除文章失败: %s" % e, url=self.makeUrl("/admin/articles/list"))
Example #25
0
    def answnerAdd(self):
        inputParams = self.getInput()
        qID = inputParams['question']
        question = Questions.get(Questions.id == qID)
        
        current_user = Users.get(Users.name == self.isLogin())
        if not self.isAdmin() or question.group.owner != current_user:
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/questions/list'))
        
        self.privData['QUESTION'] = question

        return self.display('answnerAdd')
Example #26
0
 def add_price_sheet(self):
     try:
         user =Users.get(Users.name == self.isLogin())
         order = Orders.create(
             owner = user,
             price = 0.0,
             description = '新报价单',
         )
         return web.seeother(self.makeUrl('/wap/edit_price_sheet', {'id': order.id}))
         #return self.orders_list()
     except Exception, e:
         return self.error(msg='保存订单失败!')
Example #27
0
    def answnerDelete(self):
        userInput = self.getInput()
        try:
            answner = Answners.get(Answners.id == int(userInput['id']))

            current_user = Users.get(Users.name == self.isLogin())
            if not self.isAdmin() or answner.question.group.owner != current_user:
                return self.error(msg = '权限不足!', url=self.makeUrl('/admin/questions/list'))

            answner.delete_instance()
        except Exception, e:
            return self.error(msg = '删除回复失败: %s' % e, url=self.makeUrl('/admin/questions/list'))
Example #28
0
 def put(self, id):
     args = self.parser.parse_args()
     q = Questions.get(id=id)
     if q and args:
         if args.get('teacher'):
             t = Users.get(email=args.get('teacher', {}).get('email'))
             args['teacher'] = t.id
             if not t:
                 args['teacher'] = None
         q.update(**args)
         return q.__dict__
     return {}, 404
Example #29
0
    def favdelete(self):
        inputParams = self.getInput()
        articlefav = ArticleFavorites.get(ArticleFavorites.id == int(inputParams["id"]))

        current_user = Users.get(Users.name == self.isLogin())
        if current_user.id != articlefav.owner.id and not self.isAdmin() or not current_user.role.type < 100:
            return self.error(msg="权限不足!", url=self.makeUrl("/admin/articles/favorites"))

        try:
            articlefav.delete_instance()
        except Exception, e:
            return self.success(msg="文章收藏删除失败: %s" % e, url=self.makeUrl("/admin/articles/favorites"))
Example #30
0
    def favdelete(self):
        inputParams = self.getInput()
        groupfav = GroupFavorites.get(GroupFavorites.id == int(inputParams['id']))

        current_user = Users.get(Users.name == self.isLogin())
        if current_user.id != groupfav.owner.id and not self.isAdmin() or  not current_user.role.type < 100:
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/groups/favorites'))

        try:
            groupfav.delete_instance()
        except Exception, e:
            return self.success(msg='公司收藏删除失败: %s' % e, url=self.makeUrl('/admin/groups/favorites'))
Example #31
0
    def answnerModify(self):
        userInput = self.getInput()
        try:
            answner = Answners.get(Answners.id == int(userInput['id']))

            current_user = Users.get(Users.name == self.isLogin())
            if not self.isAdmin() or answner.question.group.owner != current_user:
                return self.error(msg = '权限不足!', url=self.makeUrl('/admin/questions/list'))

            answner.content = userInput['content']
            answner.save()
        except Exception, e:
            return self.error(msg = '修改回复失败: %s' % e, url=self.makeUrl('/admin/questions/list'))
Example #32
0
 def post(self):
     args = self.parser.parse_args()
     if args:
         if args.get('teacher'):
             t = Users.get(email=args.get('teacher', {}).get('email'))
             args['teacher'] = t
             if not t:
                 args['teacher'] = None
         q = Questions.create(**args)
         if q.teacher:
             q.teacher = q.teacher.__dict__
         return q.__dict__
     return {}, 404
Example #33
0
    def edit(self):
        inputParams = self.getInput()

        userObj = Users.get(Users.id == int(inputParams['id']))
        current_user = Users.get(Users.name == self.isLogin())   

        if userObj.id != current_user.id and not self.isAdmin():
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/users/list'))

        # 不允许创建系统管理员
        self.privData['USER_INFO'] = userObj

        imagesList = Images().select()

        # 确认当前用户是否至少有一个包含图片的专辑
        if not imagesList.count():
            return self.error(msg = '请创建至少一个图片!', url=self.makeUrl('/admin/images/list'))
        self.privData['IMAGES_LIST'] = imagesList
        self.privData['CURRENT_IMG'] = userObj.avatur
        self.privData['SUBMIT_NAME'] = "thumbnail"

        return self.display('userEdit')
Example #34
0
def login():
    """
    Login user view. User token saved into sessions.
    :return: HTTP Response
    """
    email = request.form.get('email', '-')
    password = request.form.get('password', '-')
    user = Users.get(email=email)[0]

    if user is not None and user.check_password(password):
        login_user(user)

    return redirect(request.referrer)
Example #35
0
    def add(self):
        current_user = Users.get(Users.name == self.isLogin())
        albumsList = Albums().select()
        if not self.isAdmin():
            albumsList = albumsList.where(Albums.owner == current_user)

        if not albumsList.count():
            return self.error(msg = '请创建至少一个专辑!', url=self.makeUrl('/admin/albums/list'))

        self.privData['CURRENT_USER'] = current_user
        self.privData['ALBUMS_LIST'] = albumsList

        return self.display('imageAdd')
Example #36
0
 def post(self):
     args = self.parser.parse_args()
     token = args.get('token')
     if token:
         try:
             data = token_serializer.loads(token)
         except:
             return {}, 404
         if 'email' in data:
             u = Users.get(email=data['email'])
             if u:
                 return [u.__dict__], 200
         return {}, 404
Example #37
0
    def favorite(self):
        inputParams = self.getInput()
        page = int(inputParams['page']) if inputParams.has_key('page') else 1
        count = config.COUNT_PER_PAGE
        ###favotar只有admin能看到全部的,否则只能看到本人的
        current_user = Users.get(Users.name == self.isLogin())
        groupFavList = GroupFavorites.select()
        if not self.isAdmin():
            groupFavList = groupFavList.where(GroupFavorites.owner == current_user.id)
        pageString = self.getPageStr('/admin/groups/favorite', page, count, groupFavList.count())
        self.privData['GROUPFAV_LIST'] = groupFavList.order_by(GroupFavorites.id.desc()).paginate(page, count)
        self.privData['PAGE_STRING'] = pageString

        return self.display('groupfavViewList')
Example #38
0
    def delete(self):
        inputParams = self.getInput()

        try:
            chatroom = Chatrooms.get(Chatrooms.id == int(inputParams['id']))
            current_user = Users.get(Users.name == self.isLogin())
            if current_user.id != chatroom.owner.id and not self.isAdmin() or not current_user.role.type < 100:
                return self.error(msg = '权限不足!', url=self.makeUrl('/admin/chatrooms/list'))

            import leancloud
            leancloud.Apis().remove_conversation(chatroom.uuid)
            chatroom.delete_instance()
        except Exception, e:
            return self.error(msg = '删除聊天室失败: %s' % e, url=self.makeUrl('/admin/chatrooms/list'))
Example #39
0
    def modify(self):
        userInput= self.getInput()

        userObj = Users.get(Users.id == int(userInput['id']))
        current_user = Users.get(Users.name == self.isLogin())   

        if userObj.id != current_user.id and not self.isAdmin():
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/users/list'))

        thumbnail_id = int(userInput['thumbnail']) if userInput.has_key('thumbnail') else 0

        try:
            userObj = Users.get(Users.id == int(userInput['id']))
            userObj.email = userInput['email']
            userObj.name = userInput['name']
            userObj.cellphone = userInput['cellphone']
            userObj.address = userInput['address']
            userObj.job = userInput['job']
            userObj.gender = int(userInput['gender'])
            userObj.avatur = thumbnail_id
            userObj.save()
        except Exception, e:
            return self.error(msg = '会员修改失败: %s' % e, url=self.makeUrl('/admin/users/list'))
Example #40
0
    def commupdate(self):
        inputParams= self.getInput()
        groupcomm = GroupComments.get(GroupComments.id == int(inputParams['id']))

        current_user = Users.get(Users.name == self.isLogin())
        if current_user.id != groupcomm.owner.id and not self.isAdmin() or  not current_user.role.type < 100:
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/groups/list'))

        try:
            groupcomm.content = inputParams['content']
            ##现在时间没有更新,需要更新时间为当前时间
            groupcomm.save()
        except Exception, e:
            return self.error(msg = '公司评论修改失败: %s' % e, url=self.makeUrl('/admin/groups/comments'))
Example #41
0
 def post(self):
     args = self.parser.parse_args()
     email = args.get('username')
     password = args.get('password')
     if email and password:
         u = Users.get(email=email)
         if u and u.check_password(password):
             return {
                 'token':
                 token_serializer.dumps({
                     'email': email,
                     'role': u.role
                 }).decode('utf-8'),
                 'role':
                 u.role
             }, 201
Example #42
0
def load_user(user_id):
    """
    User loader for flask_login
    :param user_id: int
    :return: Users object
    """
    user = None
    try:
        user = Users.get(user_id=user_id)[0]
        user.msg_list = Message.get_messages_for_user(user)

        user.other_users = [(ouser.user_id, ouser.username)
                            for ouser in Users.get_all()
                            if user.user_id != ouser.user_id]

        user.notifications = Notification.get(user_id=user.user_id)
        user.clarifications = Clarification.get_clarifications_for_user(user)
    finally:
        return user
Example #43
0
    def signup(self):
        inputs = self.get_input()
        try:
            log.info('signup:' + str(inputs))
            cellphone = inputs.get('cellphone')
            smscode = inputs.get('smscode')
            tuser = Users.get(Users.cellphone == cellphone)
            if tuser:
                return self.error()
        except Exception as e:
            log.error('execus signup %s' % traceback.format_exc())
            return self.error()

        try:
            pwd = md5(inputs['password']).hexdigest()

            if not leancloud.Apis().verify_sms_code(cellphone, smscode):
                return self.error()
            signup_token = gen_token()
            created_time = datetime.datetime.now()

            Users.create(
                cellphone=cellphone,
                name=cellphone,
                password=pwd,
                gender=0,
                role=2,
                description=self.htmlunquote(''),
                address="住址",
                token=signup_token,
                token_created_time=created_time,
                birthday="1970-5-12",
                avatur=Images.get(Images.id == 1).thumbnail,
            )
            return self.success()
        except Exception as e:
            log.error('execus signup%s' % traceback.format_exc())
            return self.error()
Example #44
0
    def update_avatar(self):
        log.info('into update_avatar')
        _inputs = web.input()
        inputs = {}
        url = API_URL + '/api/update_user_image'

        try:
            token = Users.get(Users.cellphone == self.is_login()).token
            inputs['token'] = token
            log.info('into update_avatar _inputs== %s' % _inputs['pic'])
            log.info('into update_avatar _inputs dir == %s' % dir(_inputs))
            log.info('into update_avatar len ==%s' % len(_inputs))

            import StringIO
            imgstream = StringIO.StringIO(_inputs['pic'])
            im = Imaging(imgstream)
            thumbnail_blob = im.resize(int(im.size()[0] / THUMBNAIL_XRES), \
                                       int(im.size()[1] // THUMBNAIL_YRES))
            thumbnail_data = base64.b64encode(buffer(thumbnail_blob))
            inputs['base64image'] = thumbnail_data
            return post(url, inputs)
        except Exception as e:
            log.info("update_avatar: %s" % traceback.format_exc())
            return self.error()
Example #45
0
import dbsetup
from models.users import Users
from models.applications import Applications
from models.subscriptions import Subscriptions

db = dbsetup.get_db()

users = Users(db)
apps = Applications(db)
subs = Subscriptions(db)

try:
    boss_id = users.add("*****@*****.**", "bosspass", name="Pointy Haired Boss")
except KeyError:
    boss = users.get("*****@*****.**", "bosspass")
    boss_id = boss.id
try:
    user_id = users.add("*****@*****.**", "secretpass", name="Bob the Customer")
except KeyError:
    user = users.get('*****@*****.**', 'secretpass')
    user_id = user.id


app_id = apps.add(
    name="WidgetBuilder",
    owner_id=boss_id,
    scopes=["basic", "admin"],
    redirect_uris=["https://app.local:8080/public", "https://app.local:8080/private", "https://app.local:8080/login"])

subs.add(app_id=app_id,
         user_id=user_id,
Example #46
0
def init_db():
    """
    Initializing database and creating necessary files for user profile images view.
    :return: HTTP Response
    """

    if not os.path.exists(os.path.join(os.getcwd(), 'static', 'media')):
        os.makedirs(os.path.join(os.getcwd(), 'static', 'media'))
        os.mkdir(
            os.path.join(os.getcwd(), 'static', 'media', 'profile_pictures'))

    Team.create()
    Users.create()

    if len(Users.get(is_admin=True)) == 0:

        tables = [
            Team, Contest, Users, Problems, Tag, ProblemTag, Message,
            Clarification, Notification, Discussion, Submissions, Input,
            ContestUser, UsersUpvote, UsersDownvote
        ]

        for table in tables[::-1]:
            table.drop()
        for table in tables:
            table.create()

        # Teams and Users
        bumbles = Team(team_name='HumbleBumbles')
        bumbles.save()
        burakbugrul = Users(username='******',
                            email='*****@*****.**',
                            password='******',
                            is_admin=True,
                            team_id=bumbles.team_id)
        burakbugrul.save()

        packers = Team(team_name='HackerPackers')
        packers.save()
        hackergirl = Users(username='******',
                           email='*****@*****.**',
                           password='******',
                           is_admin=True,
                           team_id=packers.team_id)
        hackergirl.save()
        pax = Users(username='******',
                    email='*****@*****.**',
                    password='******',
                    is_admin=True,
                    team_id=packers.team_id)
        pax.save()

        # Contests
        online = Contest(contest_name='online',
                         start_time=datetime.now(),
                         end_time=datetime.now() + timedelta(days=1000))
        online.save()

        past = Contest(contest_name='past',
                       start_time=datetime.now() - timedelta(days=1000),
                       end_time=datetime.now() - timedelta(days=1))
        past.save()

        future = Contest(contest_name='future',
                         start_time=datetime.now() + timedelta(days=500),
                         end_time=datetime.now() + timedelta(days=1000))
        future.save()

        # Problems
        easy = Problems(problem_name='Easy',
                        statement='This problem is easy',
                        contest_id=online.contest_id,
                        max_score=100)
        easy.save()

        moderate = Problems(problem_name='Moderate',
                            statement='This problem is moderate',
                            contest_id=online.contest_id,
                            max_score=100)
        moderate.save()

        hard = Problems(problem_name='Hard',
                        statement='This problem is hard',
                        contest_id=online.contest_id,
                        max_score=100)
        hard.save()

        past_prob = Problems(problem_name='Old',
                             statement='This problem is old',
                             contest_id=past.contest_id,
                             max_score=100)
        past_prob.save()

        new_prob = Problems(problem_name='New',
                            statement='This problem is new',
                            contest_id=future.contest_id,
                            max_score=100)
        new_prob.save()

        # Tags

        dynamic = Tag(tag_name='Dynamic')
        dynamic.save()

        graph = Tag(tag_name='Graph')
        graph.save()

        greedy = Tag(tag_name='Greedy')
        greedy.save()

        games = Tag(tag_name='Game-Theory')
        games.save()

        ProblemTag.save_tags_to_problem(easy, [greedy])
        ProblemTag.save_tags_to_problem(moderate, [dynamic, games])
        ProblemTag.save_tags_to_problem(hard, [dynamic, graph, greedy])

        # Inputs

        inp = Input(problem_id=easy.problem_id,
                    testcase='input',
                    expected_output='output')
        inp.save()

        inp = Input(problem_id=easy.problem_id,
                    testcase='input2',
                    expected_output='output2')
        inp.save()

        inp = Input(problem_id=moderate.problem_id,
                    testcase='input moderate',
                    expected_output='output moderate')
        inp.save()

        inp = Input(problem_id=hard.problem_id,
                    testcase='input hard',
                    expected_output='output hard')
        inp.save()

    return redirect(url_for('core.home'))
Example #47
0
def load_user(user_id):
    reg_user = Users.get(username=user_id)
    if reg_user:
        if user_id == reg_user.get_id():
            return reg_user
    return None
Example #48
0
def load_user(user):
    return Users.get(user)
Example #49
0
def get_user(user_id):
    u = Users.get(username=user_id)
    if u:
        return u
    return None
Example #50
0
 def get(self, id):
     u = Users.get(id=id)
     if u:
         return u.__dict__
     return {}, 404
Example #51
0
 def delete(self, id):
     u = Users.get(id=id)
     if u:
         r = u.__dict__
         u.delete()
         return r, 200