Remove the internal API
* Bind sessions to identities * Remove references to the identity token * Move email changes to identity * Move account menu into a turbo-frame * Create tenants from a tenanted route
This commit is contained in:
committed by
Stanko K.R.
parent
440631c790
commit
98755844a1
+11
-13
@@ -1,18 +1,12 @@
|
||||
class Identity < UntenantedRecord
|
||||
include EmailAddressChangeable, Transferable
|
||||
|
||||
has_many :memberships, dependent: :destroy
|
||||
has_many :magic_links, dependent: :delete_all
|
||||
has_many :magic_links, dependent: :destroy
|
||||
has_many :sessions, dependent: :destroy
|
||||
|
||||
normalizes :email_address, with: ->(value) { value.strip.downcase }
|
||||
|
||||
class << self
|
||||
def link(email_address:, to:)
|
||||
find_or_create_by!(email_address: email_address).tap { |identity| identity.link_to(to) }
|
||||
end
|
||||
|
||||
def unlink(email_address:, from:)
|
||||
find_by(email_address: email_address)&.unlink_from(from)
|
||||
end
|
||||
end
|
||||
validates :email_address, presence: true
|
||||
|
||||
def send_magic_link
|
||||
magic_links.create!.tap do |magic_link|
|
||||
@@ -20,13 +14,17 @@ class Identity < UntenantedRecord
|
||||
end
|
||||
end
|
||||
|
||||
def link_to(tenant)
|
||||
def link_to(tenant, context: nil)
|
||||
memberships.find_or_create_by!(tenant: tenant) do |membership|
|
||||
membership.account_name = ApplicationRecord.with_tenant(membership.tenant) { Account.sole.name }
|
||||
membership.context = context
|
||||
end
|
||||
end
|
||||
|
||||
def unlink_from(tenant)
|
||||
memberships.find_by(tenant: tenant)&.destroy
|
||||
end
|
||||
|
||||
def staff?
|
||||
email_address.ends_with?("@37signals.com") || email_address.ends_with?("@basecamp.com")
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user