This commit is contained in:
2026-04-25 16:36:34 +08:00
commit db90e7579b
1876 changed files with 189777 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
{
"label": "项目贡献",
"position": 90
}

View File

@@ -0,0 +1,27 @@
---
sidebar_position: 99
title: 生态与社区
---
`Tailchat` 是一个非常开放的平台,欢迎来自所有人的以任何形式的贡献。在这里收录一些`Tailchat`相关的第三方资源
欢迎提交 `pr/issue` 来提交你对`Tailchat`的贡献,让我们能够以下列表中收录:
## 交流社区
<img width="360" src="/img/wechat.jpg" />
## 项目/代码
- [Tailchat-Assistant](https://git.povario.com/powermaker450/Tailchat-Assistant): Tailchat Assistant is your very own AI-powered chat bot, ready to implement into your guild!
## 视频
- [【好玩儿的Docker项目】激情畅聊十分钟搭建一个插件化易拓展的开源即时聊天IM应用——Tailchat](https://www.bilibili.com/video/BV1aG411u7M8/)
- [简单搭建插件化易拓展的开源即时聊天IM应用——Tailchat](https://www.bilibili.com/video/BV1UN4y117M8/)
## 文章
- [【好玩儿的Docker项目】激情畅聊十分钟搭建一个插件化易拓展的开源即时聊天IM应用——Tailchat](https://blog.laoda.de/archives/docker-compose-install-tailchat)
- [Tailchat 群晖部署记录](/blog/2023/03/27/deploy-in-synology)
- [微信公众号: 重磅推荐:一个开源的即时通讯应用 Tailchat(from GitHub黑板报)](https://mp.weixin.qq.com/s/uImzeb_EQdQcm9LGGwGYuw)

View File

@@ -0,0 +1,4 @@
{
"label": "开发文档",
"position": 2
}

View File

@@ -0,0 +1,73 @@
---
sidebar_position: 1
title: 身份组与权限
---
身份组是在群组管理中划分用户权限点的形式(RBAC)。
身份组是由一系列权限点的开关组合而成的而一个用户可能是由多个身份组组合而成的比如身份组A拥有A权限身份组B拥有B权限那么作为同时拥有身份组A和身份组B的用户C则拥有权限A和权限B。为了简化权限的设计权限点则是通过简单的`true/false`实现的
更多关于 `RBAC` 可以查看相关wiki: https://en.wikipedia.org/wiki/Role-based_access_control 在此不做赘述。
下面主要讲讲在 `Tailchat` 是如何增加/修改权限点的
## 内置权限
权限点需要同时在前端和后端均做一次声明,前端负责前端的显示,后端负责做兜底的权限校验。如果没有权限的话处理接口应当直接范围一个报错。
### 前端管理
前端的权限点列表维护在 `client/shared/utils/role-helper.ts` 中, 包含权限点的权限点位, 如:
```tsx
export const PERMISSION = {
/**
* 非插件的权限点都叫core
*/
core: {
message: 'core.message',
},
};
```
以及权限点的在管理页面中的显示:
```tsx
export const getPermissionList = (): PermissionItemType[] => [
{
key: PERMISSION.core.message,
title: t('发送消息'),
desc: t('允许成员在文字频道发送消息'),
default: true,
}
];
```
使用方式则是通过hooks获取维护在群组下的权限点:
```tsx
const [allowSendMessage] = useHasGroupPermission(groupId, [
PERMISSION.core.message,
]);
```
使用数组的方式便于一些业务逻辑需要拥有多个权限点。
### 后端
后端的权限声明则是在 `server/packages/sdk/src/services/lib/role.ts` 中维护,使用方式也非常简单。如下:
```ts
const [hasPermission] = await call(ctx).checkUserPermissions(
groupId,
userId,
[PERMISSION.core.message]
);
if (!hasPermission) {
throw new NoPermissionError(t('没有操作权限'));
}
```
## 插件权限
TODO

View File

@@ -0,0 +1,63 @@
---
sidebar_position: 1
title: 贡献指南
---
`Tailchat` 是一个非常开放的项目,欢迎来自各种不同背景、任何形式的贡献。其插件的形式意味着允许`Tailchat` 可以承载任何想法的实现。
我们期望 `Tailchat` 不仅仅是一个简单的聊天应用,更是一个连接不同工具、不同想法的空间。
Github 地址: https://github.com/msgbyte/tailchat
-----------
目前 `Tailchat` 所急需要贡献者角色:
### 前端插件开发者
- 熟悉 React 的使用
- 拥有一定的抽象化思维
- 有基本的审美能力
- 对开源项目抱有热情
### 后端插件开发者
- 熟悉 Nodejs 的使用
- 对微服务有基本的认知
- 对开源项目抱有热情
### electron 应用开发者
- 了解跨平台的开发
- 熟悉代码注入,能够实现 render 进程与 main 进行数据交互
- 对开源项目抱有热情
### React Native 应用开发者
- 熟悉React Native应用的开发
- 熟悉React Native Web的使用
- 对开源项目抱有热情
### 运营同学
- 了解基本的运营能力,有当过大群群主的经验
- 了解开源项目的宣传渠道与方式
- 沟通能力强
- 对开源项目抱有热情
### 大使
- 掌握母语和英语(如英语为母语则仅英语即可)
- 对开源社群有一定了解
- 参与Tailchat使用方式与最佳实践的开发
- 沟通能力强
- 对开源项目抱有热情
### 其他
更多的一切可能性...
:::info
联系方式: 发送邮件到`moonrailgun@gmail.com` 或 [加入TailchatNightly频道](https://nightly.paw.msgbyte.com/invite/8Jfm1dWb)
:::