Dopo la conferma admin la card restava su «Paga con bonifico»; la società parte da Free, l'owner è staff trasmissione e le mail non bloccano se manca SMTP. Co-authored-by: Cursor <cursoragent@cursor.com>
35 lines
1.0 KiB
Ruby
35 lines
1.0 KiB
Ruby
module Teams
|
|
class StaffAssignment
|
|
def self.call(team:, user:, staff_kind: "transmission", membership: nil)
|
|
new(team: team, user: user, staff_kind: staff_kind, membership: membership).call
|
|
end
|
|
|
|
def initialize(team:, user:, staff_kind: "transmission", membership: nil)
|
|
@team = team
|
|
@user = user
|
|
@staff_kind = "transmission"
|
|
@membership = membership
|
|
end
|
|
|
|
def call
|
|
StaffEmailValidator.assert_available!(
|
|
team: @team, email: @user.email, except_user: @user
|
|
)
|
|
|
|
ut = @membership || @user.user_teams.find_by!(team: @team)
|
|
return ut if ut.staff_kind == "transmission"
|
|
|
|
Entitlements.new(@team).assert_can_invite!
|
|
ut.update!(staff_kind: "transmission")
|
|
ut
|
|
end
|
|
|
|
def self.designate_club_owner!(team:, user:)
|
|
membership = user.user_teams.find_or_initialize_by(team: team)
|
|
membership.role = "member" if membership.new_record?
|
|
membership.save!
|
|
call(team: team, user: user, membership: membership)
|
|
end
|
|
end
|
|
end
|