Ejemplo n.º 1
0
    def post(self):
        user = self.current_user
        do = is_value(self.get_argument("do", "add"))
        tag = is_value(self.get_argument("tag", None))
        tag_page = is_value(self.get_argument("page", 'tag'))
        group_id = is_value(self.get_argument("group_id", '-1'))
        result = {'kind': -1, 'info': ''}
        if tag is None or len(tag) > 45:
            result['info'] = '分类字数需在15字以内!'
            self.write(json_encode(result))
            return
        if tag == "alltags" or tag == "default":
            result['info'] = '不能操作默认分类!'
            self.write(json_encode(result))
            return
        if tag_page != 'group-tag':
            target = user
        else:
            try:
                #print 'group_id', group_id
                group = BasicGroup(_id=group_id)
                if group.get_member_type(user) != 'Manager':
                    result['info'] = '您无权进行设置!'
                    self.write(json_encode(result))
                    return
            except Exception, e:
                logging.error(traceback.format_exc())
                logging.error('Url Error %s' % self.request.uri)

                result['info'] = '小组不存在!'
                self.write(json_encode(result))
                return
            else:
Ejemplo n.º 2
0
 def post(self):
     user = self.current_user
     do = is_value( self.get_argument("do", "add") )
     tag = is_value(self.get_argument("tag", None) )
     tag_page = is_value(self.get_argument("page", 'tag'))
     group_id = is_value( self.get_argument("group_id", '-1'))
     result = {'kind': -1, 'info': ''} 
     if tag is None or len(tag) > 45:
         result['info'] = '分类字数需在15字以内!'
         self.write( json_encode(result) )
         return
     if tag == "alltags" or tag == "default":
         result['info'] = '不能操作默认分类!'
         self.write( json_encode(result) )
         return
     if tag_page != 'group-tag':
         target = user
     else:
         try:
             #print 'group_id', group_id
             group = BasicGroup(_id=group_id)
             if group.get_member_type(user) != 'Manager':
                 result['info'] = '您无权进行设置!'
                 self.write(json_encode(result))
                 return
         except Exception, e:
             logging.error(traceback.format_exc())
             logging.error('Url Error %s' % self.request.uri)
             
             result['info'] = '小组不存在!'
             self.write(json_encode(result))
             return
         else:
Ejemplo n.º 3
0
 def get(self):
     user = self.current_user
     AFUser = SuperUser(user)
     group_id = is_value( self.get_argument("id", 1) )
     AFGroup = None
     try:
         group = BasicGroup(_id=group_id)
         #print 'author ,', group.authority_verify(user)
         #print 'member, ', group.member_lib.load_all()
         if group.get_member_type(user) != 'Manager':
             AFGroup = None
         else:
             AFGroup = AFWBasicGroup(group)
     except Exception, e:
         error_info = { 'my_exc_info': traceback.format_exc(), 'des':'未找到该小组!',
             'reason': ['该小组不存在!', '或者该小组已经被删除!']}
         return self.send_error(404, **error_info)
Ejemplo n.º 4
0
 def get(self, group_id):
     user = self.current_user
     if user is None:
         AFUser = None
     else:
         AFUser = SuperUser(user)
     AFGroup = None
     member_type = None
     try:
         group = BasicGroup(_id=group_id)
         AFGroup = AFWBasicGroup(group)
         title = group.name + ' - 小组'
         topic_list, topic_count, topic_page = fun_get_topic_list(group=group, page=1, page_cap=20)
         notice_list, notice_count, notice_page = fun_get_notice_list(group=group, page=1, page_cap=5)
         if user is not None:
             member_type = group.get_member_type(user)
     except Exception:
         error_info = { 'my_exc_info': traceback.format_exc(), 'des':'未找到该小组!',
             'reason': ['该小组不存在!', '或者该小组已经被删除!']}
         return self.send_error(404, **error_info)
     return self.render("group.html", title=title, user=AFUser, group=AFGroup, group_base_type="home",
         topic_list=topic_list, notice_list=notice_list, member_type=member_type)
Ejemplo n.º 5
0
 def get(self, group_id, article_id):
     user = self.current_user
     if user is None:
         AFUser = None
     else:
         AFUser = SuperUser(user)
     req_url = self.request.uri
     url_path = urlparse.urlparse(req_url)
     url_list = url_path.path.split('/')
     AFGroup = None
     if len(url_list) < 5 or url_list[3] not in ['topic', 'feedback', 'doc', 'notice']:
         raise Exception
     try:
         group = BasicGroup(_id=group_id)
         AFGroup = AFWBasicGroup(group)
     except Exception:
         error_info = { 'my_exc_info': traceback.format_exc(), 'des':'未找到该小组!',
             'reason': ['该小组不存在!', '或者该小组已经被删除!']}
         return self.send_error(404, **error_info)
     member_type = None
     script = []
     if url_list[3] == "topic":
         try:
             AF_Object = Topic(_id=article_id)
             if AF_Object.group_id != group._id and  AF_Object.is_posted is not True:
                 raise Exception
             if user is not None:
                 member_type = group.get_member_type(user)
         except Exception, e:
             error_info = { 'my_exc_info': traceback.format_exc(), 'des':'未找到该话题!',
                 'reason': ['该话题不存在!', '或者该话题已经被删除!']}
             return self.send_error(404, **error_info)
         else:
             title = AF_Object.name + ' - '+ group.name + '小组话题'
             script = fun_load_code_js(AF_Object.view_body)
             return self.render('group-lib-one-base.html', user=AFUser, group=AFGroup, title=title,
                     group_base_type='topic', article=AF_Object, member_type=member_type, script=script)
Ejemplo n.º 6
0
 def get(self, article_id):
     user = self.current_user
     AFUser = SuperUser(user)
     article_type = is_value(self.get_argument("type", 'topic'))
     if article_type not in ['topic', 'doc', 'notice', 'feedback']:
         return self.redirect("/")
         
     if article_type == 'topic':
         try:
             AF_Object = Topic(_id=article_id)
             group = BasicGroup(_id=AF_Object.group_id)
             if group.get_member_type(user) is None or str(AF_Object.author_id) != str(user._id):
                 AFGroup = None
             else:
                 AFGroup = AFWBasicGroup(group)
                 AFObject = SuperArticle(AF_Object)
                 # get the want data
         except (ItemNotFoundError, InvalidIDError, DBIndexError, BaseDBError), e:
             logging.error(e.msg)
             logging.error('Url Error %s' % self.request.uri)
         except Exception, e:
             AFGroup = None
             logging.error(traceback.format_exc())
             logging.error('Url Error %s' % self.request.uri)
Ejemplo n.º 7
0
        else:
            # for group follow
            try:
                group = BasicGroup(_id=follow_id)
            except Exception, e:
                logging.error(traceback.format_exc())
                logging.error('Url Error %s' % self.request.uri)
                result['info'] = '无此小组!'
                self.write(json_encode(result))
                return
            else:
                if do == "follow":
                    user.follow_group(group)
                    result['kind'] = 0
                else:
                    if group.get_member_type(user) == 'Manager':
                        result['info'] = '管理员无法退出!'
                    else:
                        if str(group._id) != AFWConfig.afewords_group_id:
                            user.unfollow_group(group)
                        result['kind'] = 0
                self.write(json_encode(result))
                return


class AuthorDoLikeHandler(BaseHandler):

    def post(self):
        user = self.current_user
        
        result = {'kind':1, 'info':''}
Ejemplo n.º 8
0
     return [1, '完善中']
 elif article_type in Group_Article:
     # for group
     isnew = False
     try:
         group = BasicGroup(_id=group_id)
         limit = group.authority_verify(user)
     except Exception, e:
         logging.error(traceback.format_exc())
         logging.error('Group not exist, id %s' % group_id)
         return [1, '参数错误,小组不存在!']
     
     class_map = { 'group-info': About, 'group-doc': Blog, 'group-feedback': Feedback, 
         'group-notice': Bulletin, 'group-topic': Topic}
         
     user_role = group.get_member_type(user)
     if user_role is None:
         return [1, '您不是该小组成员!']
     if article_type in ['group-info', 'group-doc', 'group-notice']:
         if user_role != 'Manager':
             return [1, '您不是管理员,无权操作!']
     
     if article_type == "group-info":
         AF_Object = group.about
     else:
         try:
             AF_Object = class_map[article_type](_id=article_id)
         except Exception:
             AF_Object = class_map[article_type]()
             AF_Object.author = user
             AF_Object.env = group
Ejemplo n.º 9
0
                    do="post",
                    ref_comments=''):
 # update comment, all comments
 group = None
 if father_type == 'blog':
     try:
         AF_Object = Blog(_id=father_id)
     except Exception, e:
         return [1, '文章不存在!']
 else:
     # for group
     if father_type == 'group-notice':
         try:
             AF_Object = Bulletin(_id=father_id)
             group = BasicGroup(_id=AF_Object.group_id)
             if group.get_member_type(user) is None:
                 return [1, '您不是该小组成员']
         except Exception, e:
             logging.error(traceback.format_exc())
             logging.error('%s not exist, id %s' % (father_type, father_id))
             return [1, '该公告不存在!']
     elif father_type == "group-doc":
         try:
             AF_Object = Blog(_id=father_id)
             group = BasicGroup(_id=AF_Object.group_id)
             if group.get_member_type(user) is None:
                 return [1, '您不是该小组成员']
         except Exception, e:
             logging.error(traceback.format_exc())
             logging.error('%s not exist, id %s' % (father_type, father_id))
             return [1, '该文档不存在!']
Ejemplo n.º 10
0
                    AFGroup = AFWBasicGroup(group)
                    AFObject = SuperArticle(AF_Object)
                    # get the want data
            except (ItemNotFoundError, InvalidIDError, DBIndexError, BaseDBError), e:
                logging.error(e.msg)
                logging.error('Url Error %s' % self.request.uri)
            except Exception, e:
                AFGroup = None
                logging.error(traceback.format_exc())
                logging.error('Url Error %s' % self.request.uri)

        elif article_type == 'doc':
            try:
                AF_Object = Blog(_id=article_id)
                group = BasicGroup(_id=AF_Object.group_id)
                if group.get_member_type(user) != 'Manager' or str(AF_Object.author_id) != str(user._id):
                    AFGroup = None
                else:
                    AFGroup = AFWBasicGroup(group)
                    AFObject = SuperArticle(AF_Object)
                    AFObject.tag_all = AF_Object.tag
            except (ItemNOtFoundError, InvalidIDError, DBIndexError, BaseDBError), e:
                logging.error(e.msg)
                logging.error('Url Error %s' % self.request.uri)
            except Exception, e:
                logging.error(traceback.format_exc())
                logging.error('Url Error %s' % self.request.uri)
                AFGroup = None
        elif article_type == 'notice':
            try:
                AF_Object = Bulletin(_id=article_id)
Ejemplo n.º 11
0
def fun_update_comment(user, group_id='-1', article_id = 0, article_type='blog', title='', summary='', body='',
                     permission='public', keys=[], classes=[], father_id='-1', father_type='blog', do="post", ref_comments=''):
    # update comment, all comments 
    group = None
    if father_type == 'blog':
        try:
            AF_Object = Blog(_id=father_id)
        except Exception, e:
            return [1, '文章不存在!']
    else:
        # for group 
        if father_type == 'group-notice':
            try:
                AF_Object = Bulletin(_id=father_id)
                group = BasicGroup(_id=AF_Object.group_id)
                if group.get_member_type(user) is None:
                    return [1, '您不是该小组成员']
            except Exception, e:
                logging.error(traceback.format_exc())
                logging.error('%s not exist, id %s' %(father_type, father_id))
                return [1, '该公告不存在!']
        elif father_type == "group-doc":
            try:
                AF_Object = Blog(_id=father_id)
                group = BasicGroup(_id=AF_Object.group_id)
                if group.get_member_type(user) is None:
                    return [1, '您不是该小组成员']
            except Exception, e:
                logging.error(traceback.format_exc())
                logging.error('%s not exist, id %s' %(father_type, father_id))
                return [1, '该文档不存在!']
Ejemplo n.º 12
0
        else:
            # for group follow
            try:
                group = BasicGroup(_id=follow_id)
            except Exception, e:
                logging.error(traceback.format_exc())
                logging.error('Url Error %s' % self.request.uri)
                result['info'] = '无此小组!'
                self.write(json_encode(result))
                return
            else:
                if do == "follow":
                    user.follow_group(group)
                    result['kind'] = 0
                else:
                    if group.get_member_type(user) == 'Manager':
                        result['info'] = '管理员无法退出!'
                    else:
                        if str(group._id) != AFWConfig.afewords_group_id:
                            user.unfollow_group(group)
                        result['kind'] = 0
                self.write(json_encode(result))
                return


class AuthorDoLikeHandler(BaseHandler):
    def post(self):
        user = self.current_user

        result = {'kind': 1, 'info': ''}
        kind = is_value(self.get_argument("type", None))
Ejemplo n.º 13
0
            group = BasicGroup(_id=group_id)
            limit = group.authority_verify(user)
        except Exception, e:
            logging.error(traceback.format_exc())
            logging.error('Group not exist, id %s' % group_id)
            return [1, '参数错误,小组不存在!']

        class_map = {
            'group-info': About,
            'group-doc': Blog,
            'group-feedback': Feedback,
            'group-notice': Bulletin,
            'group-topic': Topic
        }

        user_role = group.get_member_type(user)
        if user_role is None:
            return [1, '您不是该小组成员!']
        if article_type in ['group-info', 'group-doc', 'group-notice']:
            if user_role != 'Manager':
                return [1, '您不是管理员,无权操作!']

        if article_type == "group-info":
            AF_Object = group.about
        else:
            try:
                AF_Object = class_map[article_type](_id=article_id)
            except Exception:
                AF_Object = class_map[article_type]()
                AF_Object.author = user
                AF_Object.env = group