initialize(); use think\facade\Db; echo "=== users ===\n"; foreach (Db::name('users')->field('id,username,role,role_id,department_id')->select() as $u) { echo json_encode($u, JSON_UNESCAPED_UNICODE) . "\n"; } echo "\n=== departments ===\n"; foreach (Db::name('departments')->select() as $d) { echo json_encode($d, JSON_UNESCAPED_UNICODE) . "\n"; } echo "\n=== roles view scope ===\n"; foreach (Db::name('roles')->field('id,name,slug,permissions')->select() as $r) { $p = json_decode($r['permissions'], true) ?: []; echo sprintf( "%s(%s) view_all=%s view_sub=%s dept_menus=%s\n", $r['slug'], $r['id'], !empty($p['can_view_all_conversations']) || in_array('btn:conv:view_all', $p['buttons'] ?? [], true) ? 'Y' : 'N', !empty($p['can_view_subordinate_conversations']) || in_array('btn:conv:view_subordinate', $p['buttons'] ?? [], true) ? 'Y' : 'N', implode(',', $p['menus'] ?? []) ); }