如何在 NocoBase 中实现注册用户审核

news/2025/2/22 14:23:27/文章来源:https://www.cnblogs.com/nocobase/p/18726479

本文档提供了两种实现用户注册审核的方案,针对不同的业务场景设计:

  • 方案一:适用于需要简单、快速地实现注册审核流程的场景。该方案利用系统默认的新用户注册功能,为所有新用户分配一个无权限的“游客”角色,后续由管理员在后台手动审核并更新角色。

  • 方案二:适用于需要灵活、定制化的注册审核流程的场景。通过设计专用的申请信息表、配置审核工作流以及激活公开表单插件,实现从注册申请提交到自动创建新用户的全流程管理。


1. 方案一:使用无权限的“游客”角色

1.0 适用场景

适用于对注册审核要求较简单,希望使用系统自带的注册功能,并在后台人工审核用户的场景。

1.1 开启密码认证,允许用户注册

1.1.1 进入用户认证页面

首先我们需要确认下用户注册功能是否开启,在系统设置中,前往用户认证页面,该页面管理所有身份认证渠道,如“账号密码登录”、谷歌登录等(可通过插件扩展)。

注册功能的开关在这里:

1.2 设置默认角色(核心)

1.2.1 创建“游客”角色

系统默认开启了注册功能,但是默认角色可能不符合要求。

所以我们首先需要在【角色列表】中创建一个“游客”角色,作为默认角色,并且不包含任何权限。所有新注册的用户会自动分配该角色。

1.3 配置注册用户审核界面(核心)

切换至编辑模式,在后台配置一个简单的表格区块,选择用户表,用于展示和管理注册用户。

1.4 测试注册审核流程,手动更新角色

  • 新用户注册后,页面默认显示空白
  • 在管理界面中,对于申请信息无误的用户,手动将其角色修改为指定角色,完成审核。

1.5 配置提示页面(可选)

1.5.1 新建一个页面,比如 “注册成功”,内容填写提示信息

可选步骤:我们可以在该空白页面中添加友好提示,例如“您的账户正在审核中,请耐心等待审核通过”,以告知用户当前状态。

1.5.2 分配提示页面权限

接下来我们来到用户权限管理配置,给“游客”分配该页面。注册成功后会自动跳转。

1.6 扩展用户表字段(可选)

可选步骤:如需在注册时收集额外信息以辅助审核,可在用户表中新增相关字段(例如“申请原因”或“邀请码”)。若只需基础注册审核,此步骤可省略。

1.6.1 新增申请字段

进入【用户表】,为用户新增一个字段,用于记录用户在注册时填写的申请原因或邀请码信息。

1.6.2 在“用户认证”中开启字段

配置完成后,前往登录页面点击【注册账户】,即可看到注册表单中相应字段(若配置了可选项则显示,否则呈现基础表单)。

1.6.3 审核页面增加对应字段

我们在审核页面也加上这俩个字段,可以实时审核修改用户角色。


2. 方案二:不开放注册渠道,新增审核中间表

2.0 适用场景

适用于需要更加灵活和定制化注册审核流程的场景。

该方案通过独立的申请信息表、工作流设置和公开表单插件,实现从用户提交注册申请到自动创建用户的完整流程,核心步骤确保基本功能,后续可根据需求扩展更多功能。

2.1 前期准备(核心)

2.1.1 设计申请信息表

2.1.1.1 新建“申请信息”表
  • 创建表
    在 NocoBase 后台新建一张表,用于存储用户注册申请信息。

  • 配置字段
    为表添加以下字段,并确保字段类型和描述正确:

    Field display name Field name Field interface Description
    ID id Integer 系统自动生成,标识记录的唯一 ID
    Username username Single line text 申请者的用户名
    Email email Email 申请者的电子邮箱地址
    Phone phone Phone 申请者的联系电话
    Full Name full_name Single line text 申请者的全名
    Application Reason application_reason Long text 申请者填写的申请理由或说明
    User Type user_type Single select 指定申请者将来的用户类型(如邮件注册、开放注册)
    Status status Single select 申请当前的状态(如:待审核、已通过、已拒绝)
    Initial Password initial_password Single line text 新用户初始密码(默认为 nocobase)
    Created at createdAt Created at 系统记录的创建时间
    Created by createdBy Created by 系统记录的创建人
    Last updated at updatedAt Last updated at 系统记录的最后更新时间
    Last updated by updatedBy Last updated by 系统记录的最后更新人
  • 预览表结构
    参考下图确认表结构配置正确:

2.1.1.2 数据录入与展示
  • 配置审核界面
    在主界面中配置一个“注册信息审核”管理界面,用于展示用户提交的申请信息。
  • 录入测试数据
    进入管理界面,录入测试数据,确保数据能正确展示。

2.2 工作流设置

本部分介绍如何配置工作流,实现审核通过后自动创建新用户的功能。

2.2.1 创建审核工作流

2.2.1.1 新建工作流
  • 进入工作流界面
    在 NocoBase 后台进入工作流配置页面,选择“新建工作流”。
  • 选择触发事件
    可选择“操作后事件”或“操作前事件”,此处以操作前事件为例。
  • 配置工作流节点
    新建一个“新增用户”节点,将当前表单数据转换为新用户数据,并设置字段映射和处理逻辑。
    参考图示:

2.2.2 设置表单审核按钮

2.2.2.1 添加“通过”与“拒绝”按钮

在申请信息表单中分别添加“审核通过”和“审核拒绝”两个按钮。

2.2.2.2 配置按钮功能
  • 配置“审核通过”按钮
    • 绑定至刚刚创建的工作流;
    • 提交时将【状态】字段的值设置为“审核通过”。
      参考图示:

  • 配置“审核拒绝”按钮
    • 提交时将【状态】字段的值设置为“审核拒绝”。
2.2.2.3 设置按钮联动规则

为防止重复操作,设置联动规则:当【状态】不为【待审核】时隐藏按钮。
参考图示:

2.3 激活并配置公开表单插件

利用公开表单插件,使用户能通过页面提交注册申请。

2.3.1 激活公开表单插件

2.3.1.1 插件激活操作
  • 进入插件管理
    在后台管理界面中找到并激活“公开表单”插件。
    参考图示:

2.3.2 新建并配置公开表单

2.3.2.1 创建公开表单
  • 新建表单
    在后台管理中创建一个公开表单,用于用户提交注册申请。
  • 配置表单元素
    添加必要的表单元素(如用户名、邮箱、联系电话等),并设置相应的校验规则。
    参考图示:

2.3.3 激活并配置公开表单插件(核心)

2.3.3.1 测试公开表单
  • 打开页面
    访问公开表单页面,填写并提交申请数据。
  • 验证功能
    检查数据是否正确进入申请信息表,并通过工作流审核后自动创建新用户。
    参考测试效果:

2.4 后续拓展(可选步骤)

在完成基本注册与审核流程后,我们可根据需求扩展其他功能:

2.4.1 邀请码注册

  • 功能说明:通过设置邀请码来限制注册用户的范围和数量。
  • 配置思路:在申请表中增加邀请码字段,使用“操作前事件”,在提交之前对该字段进行合法性校验和拦截。

2.4.2 自动邮件通知

  • 功能说明:实现审核结果通知、注册成功等邮件自动发送。
  • 配置思路:结合 NocoBase 的邮件节点,在工作流中添加发送邮件操作。

若在操作过程中遇到任何问题,欢迎前往NocoBase社区交流或查阅官方文档。希望本指南能帮助您根据实际需求顺利实现用户注册审核,并根据需要灵活扩展。祝您使用顺利,项目成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/887151.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试用例的方法-边界值

一、边界值定义 (1)上点:边界上的点 (2)离点:离上点最近的点 (3)内点:在域的范围内的点 在测试过程中根据实际情况定:闭区间:案例:5-13位qq号 上点:5,13 离点:4,14 内点:8(6,7,8,9,10,11,12) 测试:5 最小值,13 最大值,4小于最小值,14 大于最大值,8范…

测试用例方法-等价类

一、常用的设计方法: (1)黑盒测试方法: 等价类、边界值,判定表、因果图、正交表,场景法、状态迁移法; (2)经验测试方法: 错误推测法、异常分析法、随机测试; (3)白盒测试方法: 语句覆盖,判断覆盖,条件覆盖,判断、条件覆盖,路径覆盖(基本路径法、Z路径法) 二、详…

C#程序员转型——DeepSeek回答“请问C#程序员转到微软Dynamics 365 CRM系统和Power Platform开发上有什么好处?”——爱码士IT培训

C#程序员转型,将C#开发技能迁移到微软Dynamics 365 CRM和Power Platform开发领域,对职业发展和技术能力提升有显著优势。以下是Deepseek的具体的分析和建议: 1. 技术栈的天然延伸与增强 C#作为微软生态的核心语言,与Dynamics 365和Power Platform深度兼容,开发者可以快速上…

教培机构管理升级:如何通过项目管理实现高效运营?

教培机构项目管理 教培机构项目管理是指通过科学的管理方法和工具,对教育培训机构的各项活动进行规划、组织、实施和监控,以确保教学目标的高效达成和机构的可持续发展。以下是教培机构项目管理的核心内容及实施策略: 一、项目管理的核心内容 课程设计与开发 ○ 需求分析:通…

Ruoyi-Vue 3.8.7集成积木报表JmReport和积木大屏JimuBI

Ruoyi-Vue 3.8.7集成积木报表JmReport和积木大屏JimuBI 一、版本 RuoYi-Vue版本:v3.8.7 JMreport报表版本: v1.9.4 JimuBI大屏版本:V1.Ruoyi-Vue 3.8.7集成积木报表JmReport和积木大屏JimuBI 一、版本 RuoYi-Vue版本:v3.8.7 JMreport报表版本: v1.9.4 JimuBI大屏版本:V1.…

关于java中CAS会引发的ABA问题探究

在并发环境下,为了保证并发安全问题,通常我们会进行加锁操作,比如加上synchronized关键字。但是很多情况下,我们不需要这样的重量级锁,比如说多个线程对某个int类型变量i 进行++操作,但是不加锁吧,又怕影响结果,因为i++不是一个原子操作,会出现并发问题,我们来看个案例…

DHTMLX Gantt 甘特图导出全数据图-----自实现方式过程记录

针对上一篇DHTMLX Gantt甘特图导出全数据图,使用官方提供的方法虽然很方便,也免费,但每次生成图片的时候需要访问下:export.dhtmlx.com的相关授权接口,这对我们的项目如果是在内网(不能联网访问外网的情况)非常不友好,也就无法使用官方的方式了。 那么如果尽量能实现同…

jmter

1.安装 官网下载解压 2.改中文 bin/jmeter.properties 加入 language=zh_CN3.运行 bin/jmeter.bat 4.压测使用 线程组 -> HTTP请求 , HTTP请求头管理线程组 -> 汇总结果线程组属性线程数:配置几个就代表有几个虚拟用户 Ramp-Up 时间(秒):表示从第一个虚拟用户开始生成…

Dify + Ollama + DeepSeek 知识库部署

通过ollama安装deepseek-r1我没有GPU服务器,安装7b版本小模型试试。参考: https://github.com/ollama/ollama 安装ollama # ollama默认端口11434 curl -fsSL https://ollama.com/install.sh | sh ollama pull deepseek-r1:7b # 查看本地模型 ollama list ollama run deepseek-…

2025.2.20(IDEA的入门使用)

今天10点看了视频学习IDEA的基本使用方法。现在来记录一下。 https://www.bilibili.com/video/BV1gb42177hm?spm_id_from=333.788.videopod.episodes&p=7&vd_source=5573907594eed8092d5b30e989fa0415 IDEA创建Java的过程如图:一个大工程里面包含了各个模块,每个模块…

【Spring Security编程】Spring Security自定义配置

一、基于内存的用户认证 1.1 创建自定义配置 实际开发的过程中,我们需要应用程序更加灵活,可以在SpringSecurity中创建自定义配置文件 官方文档: Java自定义配置(https://docs.spring.io/spring-security/reference/servlet/configuration/java.html) UserDetailsService用来…

linux(ubantu)虚拟机上运行c语言程序保姆级教程(附sudo apt-get update 报错连接失败的一种解决方法)

虚拟机使用的是VMware Workstation+Ubuntu 1.安装GCC 在桌面上右键打开终端然后分别输入 sudo apt-get update sudo apt-get install build-essential 注意:输入后会让你输入password,此时输入任何字符屏幕上会什么都没有,但是实际上已经输入进去了,所以直接盲输完密码按回…