前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【开源应用】MrDoc更新v0.2.10,新增注册邀请码功能

【开源应用】MrDoc更新v0.2.10,新增注册邀请码功能

作者头像
州的先生
发布2020-02-25 15:14:10
7950
发布2020-02-25 15:14:10
举报
文章被收录于专栏:州的先生州的先生

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

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

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

一、开启注册邀请码功能

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

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

二、管理注册邀请码

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

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

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

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

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

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

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

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

三、模型结构

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

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

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

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

四、注册码生成原理

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

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

其核心代码如下图所示:

五、最后

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 州的先生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档