# `naisi_resolve_module_permissions`

计算模块权限。

必须先在同一请求成功执行 naisi_verify_login_session()；普通 Access Token、租户签名或用户签名
不能替代该登录复核证明。身份直接采用令牌中保存并经登录复核的可信身份。
成功返回匹配权限 items 并写入当前请求权限上下文；失败返回 false，并清除上一次模块权限结果。
参数类型错误或授权回执失败同样清除旧权限及 PERMISSION capability。

## 函数签名

```php
function naisi_resolve_module_permissions(string $scope_id, array $user_permission_groups): array|false
```

## 调用前提

应用入口先调用 [naisi_is_ext_license_valid](/web/developers/naisilib/naisi-is-ext-license-valid) 并确认返回 `true`。认证 Agent 发布的许可与 heartbeat 快照，并建立或复用本请求的 BASIC 证明；不会读取许可文件或检查当前 Host。

授权类别：`VERIFIED_LOGIN_SESSION`；执行模式：`BASIC`。许可不代替登录、租户或权限上下文；身份与数据要求见本页参数及用途说明。

## 参数

### `$scope_id`

- 类型：`string`
- 必填：是
- 默认值：无
- 方向：输入参数。

需要计算权限的稳定模块或作用域标识。

### `$user_permission_groups`

- 类型：`array`
- 必填：是
- 默认值：无
- 方向：输入参数。

当前用户所属权限组及其权限配置。

## 返回值

类型：`array|false`

成功时返回结果数组，失败时返回 false。

## 调用示例

当前请求须满足上方调用前提；请检查实际返回值和引用输出，随机结果及数据包内容以运行环境为准。

```php
$scope_id = 'df3.view_own';
$user_permission_groups = [
    'ab' => ['3a'],
    'db' => ['W4uUvCQ'],
    'dc' => ['2bvaGn1Y'],
    'df' => ['all'],
    'dd' => ['h7e'],
    'de' => ['jmaiJSK'],
    'dt' => ['hB84'],
    'dy' => ['all'],
    'dz' => ['all'],
    'ea' => ['all'],
    'ec' => ['all'],
    'da' => ['all'],
    'dg' => ['all'],
    'dx' => ['all'],
    'dh' => ['all'],
    'dk' => ['all'],
    'dm' => ['1hiOcLGY8'],
    'dl' => ['all'],
    'dn' => ['1c'],
    'du' => ['all'],
    'do' => ['jmaiJPI'],
    'be' => ['all'],
    'bf' => ['all'],
    'bg' => ['all'],
    'ee' => ['all'],
    'zh' => ['all'],
    'zj' => ['all'],
    'zk' => ['all']
];

$result = naisi_resolve_module_permissions($scope_id, $user_permission_groups);
var_export($result);
```

## 版本信息

- 自版本：`1.0.6`
- 实现模块：`permission`
- 授权类别：`VERIFIED_LOGIN_SESSION` / `BASIC`
- 失败回退：`false`
- 文档同步：`2026-10-18`
