From e8a28d96d55a578ed3094bbabf151250419c3b2b Mon Sep 17 00:00:00 2001 From: cssxsh Date: Sun, 30 Jul 2023 12:04:29 +0800 Subject: [PATCH] fix: hasChild --- .../permission/AbstractConcurrentPermissionService.kt | 6 +++--- .../backend/mirai-console/src/permission/PermitteeId.kt | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/mirai-console/backend/mirai-console/src/internal/permission/AbstractConcurrentPermissionService.kt b/mirai-console/backend/mirai-console/src/internal/permission/AbstractConcurrentPermissionService.kt index 53c5bee190a..136bd6cf4fe 100644 --- a/mirai-console/backend/mirai-console/src/internal/permission/AbstractConcurrentPermissionService.kt +++ b/mirai-console/backend/mirai-console/src/internal/permission/AbstractConcurrentPermissionService.kt @@ -13,7 +13,7 @@ import net.mamoe.mirai.console.data.PluginDataExtensions import net.mamoe.mirai.console.permission.* import net.mamoe.mirai.console.permission.Permission.Companion.parentsWithSelf import net.mamoe.mirai.console.permission.PermitteeId.Companion.allParentsWithSelf -import net.mamoe.mirai.console.permission.PermitteeId.Companion.hasChild +import net.mamoe.mirai.console.permission.PermitteeId.Companion.isChild internal abstract class AbstractConcurrentPermissionService

: PermissionService

{ protected abstract val permissions: MutableMap @@ -75,7 +75,7 @@ internal abstract class AbstractConcurrentPermissionService

: Pe override fun getPermittedPermissions(permitteeId: PermitteeId): Sequence

= sequence { for ((permissionIdentifier, permissibleIdentifiers) in grantedPermissionsMap) { - val granted = permissibleIdentifiers.any { permitteeId.hasChild(it) } + val granted = permissibleIdentifiers.any { permitteeId.isChild(it) } if (granted) get(permissionIdentifier)?.let { yield(it) } } @@ -84,7 +84,7 @@ internal abstract class AbstractConcurrentPermissionService

: Pe internal fun getPermittedPermissionsAndSource(permitteeId: PermitteeId): Sequence> = sequence { for ((permissionIdentifier, permissibleIdentifiers) in grantedPermissionsMap) { permissibleIdentifiers.forEach { pid -> - if (permitteeId.hasChild(pid)) { + if (permitteeId.isChild(pid)) { get(permissionIdentifier)?.let { yield(pid to it) } } } diff --git a/mirai-console/backend/mirai-console/src/permission/PermitteeId.kt b/mirai-console/backend/mirai-console/src/permission/PermitteeId.kt index f514fe4ae80..a0abd2d4121 100644 --- a/mirai-console/backend/mirai-console/src/permission/PermitteeId.kt +++ b/mirai-console/backend/mirai-console/src/permission/PermitteeId.kt @@ -51,10 +51,14 @@ public interface PermitteeId { * 当 [this] 或 [this] 的任意一个直接或间接父 [PermitteeId.asString] 与 `this.asString` 相同时返回 `true` */ @JvmStatic - public fun PermitteeId.hasChild(child: PermitteeId): Boolean { - return allParentsWithSelf.any { it.asString() == child.asString() } // asString is for compatibility issue with external implementations + public fun PermitteeId.isChild(parent: PermitteeId): Boolean { + return allParentsWithSelf.any { it.asString() == parent.asString() } // asString is for compatibility issue with external implementations } + @JvmStatic + @DeprecatedSinceMirai(warningSince = "2.16", hiddenSince = "2.17") + public fun PermitteeId.hasChild(child: PermitteeId): Boolean = isChild(child) + /** * 获取所有直接或间接父类的 [PermitteeId]. */