warlof/seat-teamspeak

此插件为SeAT角色职业标准提供扩展,用于处理Teamspeak用户的自动毕业。

安装次数: 12,835

依赖项: 1

推荐者: 0

安全性: 0

星星: 0

关注者: 0

分支: 12

类型:seat-plugin

6.0.1 2023-12-28 21:10 UTC

README

此插件是为SeAT编写的,它为您的实例提供了一个使用查询和权限授予系统管理Teamspeak的方法。

Latest Unstable Version Latest Stable Version Maintainability License

感谢Warlof Tutsimo编写原始插件。自2023年12月23日起,由zenobio93接手开发。要查找应用更改,请查阅git历史。

要求

  • 为了使此驱动程序与Teamspeak一起工作,目标Teamspeak服务器必须为3.12.x或更高版本。请确保您正在运行最新版本
  • 必须在Teamspeak服务器上启用REST Api(http或https查询协议) - 请参阅以下说明

安装

包部署

裸机安装

在您的seat目录中(默认:/var/www/seat),键入以下内容

php artisan down
composer require warlof/seat-teamspeak

php artisan vendor:publish --force --all
php artisan migrate
php artisan up

现在,当您登录到SeAT时,您应该在侧边栏中看到一个Connector类别。

Docker安装

在您的docker-compose.yml文件所在的目录中,编辑.env配置文件(默认:/opt/seat-docker/.env

找到SEAT_PLUGINS行,并在末尾追加warlof/seat-teamspeak:^6.0

  • 如果该行以尖括号#开头,请将此行替换为SEAT_PLUGINS=warlof/seat-teamspeak:^6.0
  • 如果已定义其他插件,请将逗号追加到现有值的末尾SEAT_PLUGINS=author/package,warlof/seat-teamspeak:^6.0

完成后,您可以使用docker-compose up -d重启您的堆栈。

Teamspeak服务器配置

访问您的Teamspeak服务器,找到query_ip_whitelist.txt文件。将Seat安装服务器的IP地址添加到列表中,以避免在运行作业时发生洪水式禁止。别忘了在query_ip_whitelist.txt的末尾添加一个空行。

如果尚未启用,您必须启用httphttps协议以允许服务器查询。这可以通过将其中一个追加到环境变量TS3SERVER_QUERY_PROTOCOLS(如果使用Docker)或作为启动参数query_protocols(如果使用blade安装)来完成。

注意

使用的IP地址必须是SeAT将用于联系您的Teamspeak服务器的IP地址。如果您有两个服务器之间的私有网络,并且您计划让SeAT联系该网络上的teamspeak实例,您必须添加该网络的SeAT 私有IP而不是其公共IP地址。

完成此配置后,我们将生成一个API密钥,SeAT将使用该密钥将命令发送到Teamspeak。为此,请使用serveradmin账户通过您选择的工具(例如:puttyYaTQA)在teamspeak服务器上进行身份验证

  1. 使用login serveradmin ${serveradminpassword}对服务器进行身份验证
  2. 使用 apikeyadd scope=manage lifetime=0 为 SeAT 生成新的 API 密钥

服务器应回答类似的内容

TS3
Welcome to the TeamSpeak 3 ServerQuery interface, type "help" for a list of commands and "help <command>" for information on a specific command.
error id=0 msg=ok
apikey=BAByFoiEXZfnSJyE6dbXFiW_nn_SdwkclpKNz9j id=4 sid=0 cldbid=1 scope=manage time_left=unlimited created_at=1582102492 expires_at=1582102492
error id=0 msg=ok

在上面的示例中,生成的 API 密钥是 BAByFoiEXZfnSJyE6dbXFiW_nn_SdwkclpKNz9j。这是您需要用来将连接器设置到 SeAT 中的部分。

连接器设置

使用管理员账户在您的 SeAT 实例上进行认证。您可以使用内置的管理员用户,通过 php artisan seat:admin:login 命令,这将提供您适当的权限。

在侧边栏中,点击 连接器,然后点击 设置

将配置更改到满足您的 Teamspeak 服务器设置的 Teamspeak 块中。

  • 服务器地址:这是用户将用于连接到您的 Teamspeak 实例的地址(可以是 IP 或域名)
  • 服务器端口:这是用户将用于连接到您的 Teamspeak 实例的端口(默认为 9987
  • API 基础 URL:这是 SeAT 将用于联系您的 Teamspeak 服务器(默认为 http://teamspeak_address:10080https://teamspeak_address:10443
  • API 密钥:这是您在之前步骤中生成的密钥

初始化

使用管理员账户在您的 SeAT 实例上进行认证。您可以使用内置的管理员用户,通过 php artisan seat:admin:login 命令,这将提供您适当的权限。

在侧边栏中,点击 连接器,然后点击 设置

在驱动器下拉列表中,选择 Teamspeak,然后点击 更新集 按钮,这将排队一个任务以拉取您当前定义的所有服务器组。

通过 访问管理 部分授予访问权限。

调度器

使用管理员账户在您的 SeAT 实例上进行认证。您可以使用内置的管理员用户,通过 php artisan seat:admin:login 命令,这将提供您适当的权限。

在侧边栏中,点击 设置,然后点击 调度

  • 添加 seat-connector:apply:policies(建议每 30 分钟执行一次)

为了授予对 身份 部分的访问权限,您必须将权限 seat-connector.view 添加到您分配给用户的角色中。

查询权限

您将在下面找到所需权限和使用的查询模式列表