# CensorBear Short description and motivation. ## Usage How to use my plugin. ## Installation Add this line to your application's Gemfile: ```ruby gem 'censor_bear' ``` And then execute: ```bash $ bundle ``` Or install it yourself as: ```bash $ gem install censor_bear ``` ## Authentication ### Devise ```ruby authenticate :user, ->(user) { user.admin? } do mount Blazer::Engine, at: "blazer" end ``` ### Other Specify a before_action method to run in `censor_bear.yml`. ```ruby before_action_method: require_admin ``` You can define this method in your ApplicationController. ``` def require_admin # depending on your auth, something like... redirect_to root_path unless current_user && current_user.admin? end ``` Be sure to render or redirect for unauthorized users. ## Migration ```bash rails censor_bear:install:migrations ``` ## 🦆 Methods ```ruby censor_delete # 删除内容 censor_approve # 通过审核 censor_show_path # 详情路由 censor_ban_user # 封禁用户 ``` ## Exceptions 检测到被ban的关键词,会抛出`NotPassedException`异常,禁止用户继续创建内容,可在controller捕获该方法处理好返回值。 ```ruby class NotPassedException < StandardError; end ``` ## 注意事项 1. 为 MOD 时,表示需要人工审核,需要被审查对象(UGC内容)支持`is_approved`字段(默认为`true`),此时内容自己能看到,别人暂时看不到,需审核通过后可见。 2. 被审查对象可以通过软删实现,隐藏(目的是防止错判,撤销),删除的内容对自己和别人都是不可见的。 3. 建立回收站机制,设定保护期,定时永久删除过期内容。 4. 忽略,表示因为某种原因暂时不做处理,针对待处理任务临时隐藏,可通过条件筛选重新查找处理。一些犹豫不觉得任务可以做搁置处理。此时用户状态是自己可见,别人不可见。 5. 对于UGC内容有审核机制(MOD状态),对于用户昵称、个人描述、头像等处罚后直接封禁或重置。 6. 被BAN掉的内容,无法创建,直接返回异常,速错。 ## Contributing Contribution directions go here. ## License The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).