From f8a94e42d4bc173b4be1da84036211dccd33e987 Mon Sep 17 00:00:00 2001 From: LamGC Date: Fri, 22 Apr 2022 13:38:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=BB=98=E8=AE=A4=E5=90=AF=E7=94=A8=20?= =?UTF-8?q?Profile=20=E6=89=80=E6=9C=89=E4=BA=BA=E6=A3=80=E6=9F=A5,=20?= =?UTF-8?q?=E4=BB=A5=E9=98=B2=E6=AD=A2=E6=BD=9C=E5=9C=A8=E7=9A=84=E6=AC=BA?= =?UTF-8?q?=E8=AF=88=E6=94=BB=E5=87=BB.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/OracleAccountExtension.kt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/OracleAccountExtension.kt b/src/main/kotlin/OracleAccountExtension.kt index 8d94f1c..856d485 100644 --- a/src/main/kotlin/OracleAccountExtension.kt +++ b/src/main/kotlin/OracleAccountExtension.kt @@ -297,7 +297,7 @@ class OracleAccountManagerExtension(private val bot: BaseAbilityBot) : AbilityEx .replyMarkup(newKeyboardMarkup) .build() bot.silent().execute(editMessageText) - }, callbackQueryAt("oc_account_manager")) + }, callbackQueryAt("oc_account_manager"), checkCallbackQueryIsProfileOwner()) fun editOracleAccount(): Reply = Reply.of({ bot, upd -> val keyboardCallback = upd.callbackQuery.callbackData @@ -321,7 +321,7 @@ class OracleAccountManagerExtension(private val bot: BaseAbilityBot) : AbilityEx .replyMarkup(newKeyboardMarkup) .build() bot.silent().execute(editMessageReplyMarkup) - }, callbackQueryAt("oc_account_edit")) + }, callbackQueryAt("oc_account_edit"), checkCallbackQueryIsProfileOwner()) fun removeOracleAccount(): Reply = ReplyFlow.builder(bot.db()) .action { bot, upd -> @@ -345,7 +345,9 @@ class OracleAccountManagerExtension(private val bot: BaseAbilityBot) : AbilityEx .build() .execute(bot.silent()) } - .onlyIf(callbackQueryAt("oc_account_remove")) + .onlyIf { + callbackQueryAt("oc_account_remove")(it) && checkCallbackQueryIsProfileOwner()(it) + } .next(Reply.of({ bot, upd -> val profile = getProfileByCallback(upd.callbackQuery.callbackData) val result = @@ -362,7 +364,7 @@ class OracleAccountManagerExtension(private val bot: BaseAbilityBot) : AbilityEx .replyMarkup(InlineKeyboardMarkup.builder().clearKeyboard().build()) .build() .execute(bot.silent()) - }, callbackQueryAt("oc_account_remove_yes"))) + }, callbackQueryAt("oc_account_remove_yes"), checkCallbackQueryIsProfileOwner())) .build() fun changeOracleAccountName(): Reply = ReplyFlow.builder(bot.db()) @@ -404,7 +406,12 @@ class OracleAccountManagerExtension(private val bot: BaseAbilityBot) : AbilityEx logger.error(e) { "更新 Oracle 账号时发生错误." } bot.silent().send("更新 Oracle 账号名称时发生错误,请联系机器人管理员。", upd.message.chatId) } - }, { upd -> upd.hasMessage() && upd.message.hasText() })) + }, { upd -> + upd.hasMessage() && upd.message.hasText() && bot.db().getVar( + "oc_account_change_name::cache::chat_${upd.message.chatId}::user_${upd.message.from.id}::profile" + ) + .get() != null + })) .build() fun clearUnusedAccessKey(): Ability = Ability.builder()