mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 05:09:38 +02:00
Implement invitation codes
This commit is contained in:
parent
533e6690c2
commit
b3a792c47d
11 changed files with 149 additions and 9 deletions
25
app/models/invite_code.rb
Normal file
25
app/models/invite_code.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
class InviteCode < ApplicationRecord
|
||||
before_validation :generate_token, on: :create
|
||||
|
||||
class << self
|
||||
def claim!(token)
|
||||
if invite_code = find_by(token: token&.downcase)
|
||||
invite_code.destroy!
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
def generate!
|
||||
create!.token
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def generate_token
|
||||
loop do
|
||||
self.token = SecureRandom.hex(4)
|
||||
break token unless self.class.exists?(token: token)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue