* Add consumable invites * Add UI for generating invite codes * Add tests * Display max uses and expiration in invites table, delete invite * Remove unused column and redundant validator - Default follows not used, probably bad idea - InviteCodeValidator is redundant because RegistrationsController checks invite code validity * Add admin setting to disable invites * Add admin UI for invites, configurable role for invite creation - Admin UI that lists everyone's invites, always available - Admin setting min_invite_role to control who can invite people - Non-admin invite UI only visible if users are allowed to * Do not remove invites from database, expire them instantly
		
			
				
	
	
		
			15 lines
		
	
	
	
		
			444 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			15 lines
		
	
	
	
		
			444 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| class CreateInvites < ActiveRecord::Migration[5.1]
 | |
|   def change
 | |
|     create_table :invites do |t|
 | |
|       t.belongs_to :user, foreign_key: { on_delete: :cascade }
 | |
|       t.string :code, null: false, default: ''
 | |
|       t.datetime :expires_at, null: true, default: nil
 | |
|       t.integer :max_uses, null: true, default: nil
 | |
|       t.integer :uses, null: false, default: 0
 | |
| 
 | |
|       t.timestamps
 | |
|     end
 | |
| 
 | |
|     add_index :invites, :code, unique: true
 | |
|   end
 | |
| end
 |