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'))
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')
def modify(self): inputParams= self.getInput() try: 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')) q = Chatrooms.update( name = inputParams['name'], description = inputParams['desc'], thumbnail = int(inputParams['thumbnail']), ).where(Chatrooms.id == chatroomId) q.execute() except Exception, e: return self.error(msg = '聊天室修改失败: %s' % e, url=self.makeUrl('/admin/chatrooms/list'))