예제 #1
0
파일: cms.py 프로젝트: hayate-hsu/cms
    def post(self, _id=''):
        '''
            create new message record
            title subtitle section mask author groups status ctime content image
            labels : labes are separate by ' '

            # add ap_groups field, if existed, create message to the special groups
        '''
        user = self.get_argument('manager', '') or self.get_argument('user')
        self.check_token()
        kwargs = {
            key: value[0]
            for key, value in self.request.arguments.iteritems()
        }
        kwargs['author'] = user
        kwargs.pop('token')
        kwargs.pop('manager')
        kwargs['groups'] = manager.check_location(user)

        if 'ap_groups' in kwargs:
            # split groups to list
            ap_groups = self.get_argument('ap_groups', '')
            kwargs['ap_groups'] = ap_groups.split(',')

        msg.create_message(**kwargs)
        self.render_json_response(**self.OK)
예제 #2
0
파일: cms.py 프로젝트: hayate-hsu/cms
 def post(self, _id=''):
     user = self.get_argument('manager') or self.get_argument('user')
     self.check_token()
     group = manager.check_location(user)
     name = self.get_argument('name')
     msg.create_gmtype(group, name)
     self.render_json_response(**self.OK)
예제 #3
0
파일: cms.py 프로젝트: hayate-hsu/cms
    def get(self, _id=''):
        user = self.get_argument('manager', '') or self.get_argument('user')
        self.check_token()
        groups = manager.check_location(user)
        assert groups
        address = msg.get_jobs_address()

        self.render_json_response(job_address=address, **self.OK)
예제 #4
0
파일: cms.py 프로젝트: hayate-hsu/cms
 def put(self, _id=''):
     if not _id:
         raise HTTPError(400)
     user = self.get_argument('manager') or self.get_argument('user')
     self.check_token()
     group = manager.check_location(user)
     name = self.get_argument('name')
     msg.update_gmtype(_id, group, name)
     self.render_json_response(**self.OK)
예제 #5
0
파일: cms.py 프로젝트: hayate-hsu/cms
    def put(self, _id=''):
        user = self.get_argument('manager', '') or self.get_argument('user')
        self.check_token()
        groups = manager.check_location(user)
        assert groups
        name = self.get_argument('name')
        if not self.check_name(name):
            msg.update_jobs_address(_id, name)

        self.render_json_response(**self.OK)
예제 #6
0
파일: cms.py 프로젝트: hayate-hsu/cms
 def get(self):
     user = self.get_argument('manager', '') or self.get_argument(
         'user', '')
     if user:
         token = self.get_argument('token')
         token, expired = token.split('|')
         token2 = util.token2(user, expired)
         if token != token2:
             raise HTTPError(400, reason='Abnormal token')
         self.render('index.html', groups=manager.check_location(user))
     else:
         self.redirect('login.html')
예제 #7
0
파일: cms.py 프로젝트: hayate-hsu/cms
    def get(self, _id=''):
        '''
            get message
        '''
        # logger.info('id: {}, {}'.format(_id, self.request))
        if _id:
            message = msg.get_message(_id)
            if not message:
                raise HTTPError(404, reason='Can\'t found message')
            return self.render_message_response(message)

        # get messages
        user = self.get_argument('manager', '') or self.get_argument(
            'user', '')
        groups, ismanager = 0, False
        if user:
            # manager get it's messages
            token = self.get_argument('token')
            token, expired = token.split('|')
            token2 = util.token2(user, expired)
            if token != token2:
                raise HTTPError(400, reason='Abnormal token')
            groups = manager.check_location(user)
            ismanager = True
        else:
            # user get messages
            groups = self.get_argument('groups')
        label = self.get_argument('label', '')
        page = int(self.get_argument('page', 0))
        nums = int(self.get_argument('per', 10))
        mask = int(self.get_argument('mask', 0))
        gmtype = int(self.get_argument('gmtype', 0))
        isimg = int(self.get_argument('isimg', 0))
        expired = int(self.get_argument('expired', 0))
        ap_groups = self.get_argument('ap_groups', '')
        pos = page * nums

        messages = msg.get_messages(groups,
                                    mask,
                                    isimg,
                                    gmtype,
                                    label,
                                    expired,
                                    pos,
                                    nums,
                                    ismanager,
                                    ap_groups=ap_groups)
        # logger.info('messages: {}'.format(messages[0]['image']))
        isEnd = 1 if len(messages) < nums else 0

        # self.render_json_response(Code=200, Msg='OK', messages=messages, end=isEnd)
        self.render_messages(Code=200, Msg='OK', messages=messages, end=isEnd)
예제 #8
0
파일: cms.py 프로젝트: hayate-hsu/cms
    def get(self, _id=''):
        user = self.get_argument('manager') or self.get_argument('user')
        self.check_token()
        group = manager.check_location(user)
        if _id:
            gmtype = msg.get_gmtype(group, _id)
            gmtypes = [
                gmtype,
            ]
        else:
            gmtypes = msg.get_gmtypes(group)

        self.render_json_response(gmtypes=gmtypes, **self.OK)
예제 #9
0
파일: cms.py 프로젝트: hayate-hsu/cms
    def post(self, _id=''):
        user = self.get_argument('manager') or self.get_argument('user')
        self.check_token()
        kwargs = {
            key: value[0]
            for key, value in self.request.arguments.iteritems()
        }
        kwargs.pop('token')
        kwargs.pop('manager', '')
        kwargs.pop('user', '')
        kwargs['groups'] = manager.check_location(user)

        msg.create_job(**kwargs)
        self.render_json_response(**self.OK)
예제 #10
0
파일: cms.py 프로젝트: hayate-hsu/cms
    def get(self, page):
        '''
            Render html page
        '''
        page = page.lower()
        user = self.get_argument('manager', '') or self.get_argument(
            'user', '')
        if user:
            # manager get it's messages
            token = self.get_argument('token')
            token, expired = token.split('|')
            token2 = util.token2(user, expired)
            if token != token2:
                raise HTTPError(400, reason='Abnormal token')

            group = manager.check_location(user)

            gmtypes = msg.get_gmtypes(group)
            self.render(page, groups=group, gmtypes=gmtypes)
        else:
            return self.render(page)
예제 #11
0
파일: cms.py 프로젝트: hayate-hsu/cms
    def get(self, _id=''):
        '''
            get special & all jobs
        '''
        if _id:
            job = msg.get_job(_id)
            if not job:
                raise HTTPError(404)
            self.render_json_response(Code=200, Msg='OK', **job)
        else:
            user = self.get_argument('manager', '') or self.get_argument(
                'user', '')
            is_cms = False
            if user:
                self.check_token()
                is_cms = True
                groups = manager.check_location(user)
            else:
                groups = self.get_argument('groups')

            if is_cms:
                # get_all jobs, not read from cache
                # disable cache
                self.JOBS[0] = ''
                data = self.get_jobs(groups)
                self.set_header('Content-Type',
                                'application/json;charset=utf-8')
                self.finish(data)
            else:
                data = self.get_jobs(groups)
                seconds = 86400  # 86400 seconds = 1 day
                self.set_header(
                    'Expires',
                    datetime.datetime.utcnow() +
                    datetime.timedelta(seconds=seconds))
                self.set_header('Cache-Control', 'max-age=' + str(seconds))

                self.set_header('Content-Type',
                                'application/json;charset=utf-8')
                self.finish(data)
예제 #12
0
파일: cms.py 프로젝트: hayate-hsu/cms
 def delete(self, _id=''):
     user = self.get_argument('manager') or self.get_argument('user')
     self.check_token()
     group = manager.check_location(user)
     msg.delete_gmtype(group, _id)
     self.render_json_response(**self.OK)