MrDoc v0.2.10,新增注册邀请码功能

不知不觉,MrDoc的更新已经走过了十几版。虽然更新不是很频繁,但是每次的更新都有功能的新增或是使用体验上的优化。

在本次v0.2.10的更新中,州的先生(zmister.com)为MrDoc加入了注册邀请码的功能。注册邀请码的功能,在一些小众或行业性质网站上的运用还是比较多的,主要用来限制和控制注册用户。

在之前的版本中MrDoc只有全站开启或关闭注册的功能,有些小伙伴既不想手动添加用户,又有开放给一部分人使用的需求,所以注册邀请码功能就来了。

一、开启注册邀请码

在后台管理界面的【站点管理】中,我们可以开启注册邀请码的功能(默认情况下,此功能是关闭的)。并且需要注意的是,如果开启了【禁止注册】的选项,那么【启用注册码】选项的设置是无效的,【禁止注册】的优先级高于【启用注册码】。

启用之后,注册页面的表单就会多出一个【注册码】的输入框,如下图所示:

二、添加和删除邀请码

在开启注册邀请码功能之后,我们需要创建注册邀请码,这一操作同样在后台管理页面进行操作。

点击此链接,会有一个页面专门管理注册邀请码:

点击左上角的【新增注册码】按钮,会弹出一个信息框,供我们新增一个注册码:

注册码的默认最大使用次数为1,如果需要设置其他的,可以自行输入。注册邀请码在后台随机生成,也不需要自己填写。

创建好之后,注册码就可以在新用户注册的时候使用了。每成功注册一个用户,注册码的已使用次数就会累加1,如果注册码的已使用次数等于注册码的最大使用次数,那么此注册码的状态就会变成【失效】状态。这个时候用户注册时使用此注册码会提示“注册码失效”。

同时,我们可以点击注册码条目最后的【删除】按钮,将此注册码删除。

注册码的功能的控制比较简单,所以交互操作也比较少,以上就是注册码功能使用的全部介绍了。

下面来介绍一下它的内部结构。

三、模型结构

注册码的模型结构很简单,这个模型表里面一共7个字段,分别是:

  • 注册邀请码
  • 有效注册数量
  • 已使用数量
  • 注册码状态
  • 使用此注册码的用户
  • 创建人
  • 创建时间

其在Django ORM模型中的定义如下:

这些字段对于目前的场景来说,基本够用了,如果后期出现了其他需求和情况,再看如何进行设计和扩展。

四、注册码生成原理

最后再来介绍一下注册码的生成。前面说了,注册码是后台自动生成的。其原理主要就是:

  • 定义一个包含数字、大写字母、小写字母的字符串组合;
  • 使用random库的choices()方法随机获取10个单字符组成一个字符串;
  • 在数据库中查询其是否存在,如果存在,则继续生成一个并查询,如果不存在,就选择它。

其核心代码如下图所示:

五、最后

以上就是MrDoc本次新增的注册邀请码功能的全部介绍了,更加详细的细节,欢迎大家前往MrDoc项目源码托管的Gitee页面进行下载、点星和提Bug。

或者前往MrDoc的示例站点http://mrdoc.zmister.com进行体验。

 

猜你也喜欢

发表评论

电子邮件地址不会被公开。