Example #1
0
 def delete(self, className, objectId):
     if not objectId:
         self.write(ERR_PARA.message)
         return
     if BaseConfig.deleteClass.count(className) <= 0:
         self.write(ERR_USER_PERMISSION.message)
         return
     try:
         ObjectId(objectId)
     except Exception:
         self.write(ERR_OBJECTID_MIS.message)
         return
     classHelper = ClassHelper(className)
     obj = classHelper.find_one({"_id": objectId})
     if not obj:
         self.write(ERR_OBJECTID_MIS.message)
         return
     mo = MeObject(className, obj, False)
     mo.overLoadGet = False
     acl = MeACL(mo['acl'])
     if not acl.deleteAccess(self.user):
         self.write(ERR_USER_PERMISSION.message)
         return
     else:
         try:
             classHelper.delete(objectId)
             self.write(ERR_SUCCESS.message)
         except Exception, e:
             log.err("ClassHandler-->delete error, %s", e)
             self.write(ERR_DB_OPERATION.message)
Example #2
0
 def delete(oid):
     from mecloud.helper.ClassHelper import ClassHelper
     classHelper = ClassHelper(self.className)
     classHelper.delete(oid)
Example #3
0
    def post(self, action=None, blackee=None, isuser=1):
        userId = self.get_current_user()
        if not userId:
            log.err("black error,user not exist!")
            self.write(ERR_USER_NOTFOUND.message)
            return

        if not blackee:
            log.err("request param error")
            self.write(ERR_NOPARA.message)
            return

        is_user = True
        if int(isuser) == 0:
            is_user = False

        # 查找用户是否存在
        if is_user == True:
            userHelper = ClassHelper("User")
        else:
            userHelper = ClassHelper("BackupUser")
        findUser = userHelper.find_one({'_sid': blackee})
        if not findUser:
            log.err("%s error,blackee not exist!", action)
            self.write(ERR_USER_NOTFOUND.message)
            return

        blackHelper = ClassHelper("Blacklist")
        followHelper = ClassHelper("Followee")

        try:
            if action == 'block':  # 拉黑
                # 判断是否已经拉黑过
                blacked = blackHelper.find_one({
                    'user': userId,
                    'blacker': blackee
                })
                if blacked:
                    self.write(ERR_SUCCESS.message)
                    return
                blackHelper.create({'user': userId, 'blacker': blackee})

                if is_user:
                    fieldname = "followee"
                else:
                    fieldname = "backupFollowee"
                unfollowed = followHelper.find_one({
                    'user': userId,
                    fieldname: blackee,
                    'effect': {
                        '$gte': 1
                    }
                })
                if unfollowed:
                    FollowHelper.unfollow(userId, blackee, is_user)
                br = blackHelper.find_one({'user': userId, 'blacker': blackee})
                successInfo = deepcopy(ERR_SUCCESS)
                successInfo.message["data"] = br
                self.write(json.dumps(successInfo.message, cls=MeEncoder))
            elif action == 'unblock':  # 取消拉黑
                unblacked = blackHelper.find_one({
                    'user': userId,
                    'blacker': blackee
                })
                if not unblacked:
                    self.write(ERR_SUCCESS.message)
                    return
                blackHelper.delete(unblacked['_id'])
                self.write(ERR_SUCCESS.message)
            else:
                print "action error: " + action
                self.write(ERR_PATH_PERMISSION.message)
                return
        except Exception, e:
            log.err("BlacklistHandler-->action:%s in post() error, %s", action,
                    e)
            self.write(ERR_DB_OPERATION.message)
Example #4
0
    def post(self, action=None, followee=None, isuser=1):
        userId = self.get_current_user()
        if not userId:
            log.err("follow error,user not exist!")
            self.write(ERR_USER_NOTFOUND.message)
            return

        if not followee:
            log.err("request param error")
            self.write(ERR_NOPARA.message)
            return

        is_user = True
        if int(isuser) == 0:
            is_user = False

        # 查找用户是否存在
        if is_user == True:
            userHelper = ClassHelper("User")
        else:
            userHelper = ClassHelper("BackupUser")
        findUser = userHelper.find_one({'_sid': followee})
        if not findUser:
            log.err("%s error,followee not exist!", action)
            self.write(ERR_USER_NOTFOUND.message)
            return

        blackHelper = ClassHelper("Blacklist")
        if action == 'follow':
            blacked = blackHelper.find_one({
                'user': userId,
                'blacker': followee
            })
            isblacked = blackHelper.find_one({
                'user': followee,
                'blacker': userId
            })
            if blacked:
                self.write(ERR_BLACKED_PERMISSION.message)
                return
            if isblacked:
                self.write(ERR_BEBLACKED_PERMISSION.message)
                return

        if is_user:
            fieldname = "followee"
        else:
            fieldname = "backupFollowee"
        followHelper = ClassHelper("Followee")

        try:
            if action == 'follow':  # 关注
                # 判断是否已经关注过
                followed = followHelper.find_one({
                    'user': userId,
                    fieldname: followee,
                    'effect': {
                        '$gte': 0
                    }
                })
                if followed and followed['effect'] >= 1:
                    self.write(ERR_SUCCESS.message)
                    return
                FollowHelper.follow(userId, followee, is_user)
                fr = followHelper.find_one(
                    {
                        'user': userId,
                        fieldname: followee,
                        'effect': {
                            '$gte': 1
                        }
                    }, {
                        'acl': 0,
                        'createAt': 0,
                        '_sid': 0
                    })
                fr['relationStatus'] = fr['effect']
                del fr['effect']
                del fr['_id']

                if fr.has_key('backupFollowee'):
                    del fr['backupFollowee']
                    fr['isUser'] = 0
                else:
                    del fr['followee']
                    fr['isUser'] = 1

                successInfo = deepcopy(ERR_SUCCESS)
                successInfo.message["data"] = fr
                self.write(json.dumps(successInfo.message, cls=MeEncoder))
                # 需要从用户推荐中删除
                recommendHelper = ClassHelper('UserRecommend')
                recommend = recommendHelper.find_one({
                    'user': userId,
                    'recommender': followee
                })
                if recommend:
                    recommendHelper.delete(recommend['_id'])
            elif action == 'unfollow':  # 取消关注
                # 之前未关注过或者已经取消关注,直接返回
                unfollowed = followHelper.find_one({
                    'user': userId,
                    fieldname: followee,
                    'effect': {
                        '$gte': 1
                    }
                })
                if not unfollowed:
                    self.write(ERR_SUCCESS.message)
                    return
                FollowHelper.unfollow(userId, followee, is_user)
                fr = followHelper.find_one(
                    {
                        'user': userId,
                        fieldname: followee,
                        'effect': {
                            '$gte': 0
                        }
                    }, {
                        'acl': 0,
                        'createAt': 0,
                        '_sid': 0
                    })
                fr['relationStatus'] = fr['effect']
                del fr['effect']
                del fr['_id']

                if fr.has_key('backupFollowee'):
                    del fr['backupFollowee']
                    fr['isUser'] = 0
                else:
                    del fr['followee']
                    fr['isUser'] = 1

                successInfo = deepcopy(ERR_SUCCESS)
                successInfo.message["data"] = fr
                self.write(json.dumps(successInfo.message, cls=MeEncoder))
            else:
                print "action error: " + action
                self.write(ERR_PATH_PERMISSION.message)
                return
        except Exception, e:
            log.err("FollowerHandler-->action:%s in post() error, %s", action,
                    e)
            self.write(ERR_DB_OPERATION.message)
            return