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)
def delete(oid): from mecloud.helper.ClassHelper import ClassHelper classHelper = ClassHelper(self.className) classHelper.delete(oid)
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)
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