iugusdk 1.0.0.alpha.21 → 1.0.0.alpha.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. data/app/assets/stylesheets/iugu-sdk.css.sass +9 -1
  2. data/app/assets/stylesheets/settings.sass +13 -1
  3. data/app/controllers/iugu/account_controller.rb +58 -8
  4. data/app/controllers/iugu/invitations_controller.rb +5 -7
  5. data/app/controllers/iugu/plan_controller.rb +4 -3
  6. data/app/controllers/iugu/pricing_controller.rb +1 -1
  7. data/app/controllers/iugu/registrations_controller.rb +8 -1
  8. data/app/controllers/iugu/sessions_controller.rb +10 -2
  9. data/app/mailers/iugu_mailer.rb +4 -4
  10. data/app/models/account.rb +37 -0
  11. data/app/models/user.rb +24 -9
  12. data/app/models/user_invitation.rb +2 -0
  13. data/app/views/iugu/account/payment_history.html.haml +10 -2
  14. data/app/views/iugu/account_domains/index.html.haml +49 -31
  15. data/app/views/iugu/account_domains/instructions.html.haml +24 -5
  16. data/app/views/iugu/account_roles/edit.html.haml +22 -10
  17. data/app/views/iugu/account_users/index.html.haml +33 -20
  18. data/app/views/iugu/invitations/edit.html.haml +6 -1
  19. data/app/views/iugu/invitations/new.html.haml +21 -15
  20. data/app/views/iugu/plan/index.html.haml +14 -7
  21. data/app/views/iugu/registrations/new.html.haml +2 -0
  22. data/app/views/iugu/sessions/new.html.haml +2 -0
  23. data/app/views/iugu/settings/account.html.haml +61 -29
  24. data/app/views/iugu/settings/accounts.html.haml +21 -25
  25. data/config/locales/iugu.en.yml +20 -0
  26. data/config/locales/iugu.pt-BR.yml +21 -1
  27. data/config/routes.rb +3 -0
  28. data/db/migrate/20130723173704_add_used_to_user_invitation.rb +5 -0
  29. data/lib/iugusdk/version.rb +1 -1
  30. data/lib/iugusdk.rb +1 -1
  31. metadata +99 -87
@@ -88,7 +88,7 @@
88
88
  float: none
89
89
  display: inline
90
90
  text-decoration: underline
91
- color: #090
91
+ font-weight: bold
92
92
 
93
93
  .text
94
94
  display: block
@@ -141,6 +141,14 @@
141
141
  .tabbed .container
142
142
  overflow: hidden
143
143
 
144
+ .form_no_margin_bottom
145
+ form
146
+ margin-bottom: 20px
147
+
148
+ .plan
149
+ td
150
+ line-height: 44px
151
+
144
152
  @include for-small-screens(390px)
145
153
  .iugu-ui,.iugu-ui.settings
146
154
  .wrapper
@@ -1,3 +1,6 @@
1
+ @import "iugu-ux/core"
2
+ @import "compass/utilities/general/clearfix"
3
+
1
4
  .container
2
5
  .header
3
6
  position: relative
@@ -9,4 +12,13 @@
9
12
  position: absolute
10
13
  top: 18px
11
14
  right: 18px
12
- width: 160px
15
+ width: 180px
16
+
17
+ @include for-small-screens(390px)
18
+ .container
19
+ .header
20
+ #btn-settings-back
21
+ display: block
22
+ width: 100%
23
+ top: -53px
24
+ left: 0px
@@ -4,6 +4,7 @@ class Iugu::AccountController < Iugu::AccountSettingsController
4
4
  before_filter(:only => [:generate_new_token]) { |c| c.must_be :owner, :account_id }
5
5
 
6
6
  def index
7
+ @accounts = current_user.accounts.order(:created_at)
7
8
  render 'iugu/settings/accounts'
8
9
  end
9
10
 
@@ -13,10 +14,16 @@ class Iugu::AccountController < Iugu::AccountSettingsController
13
14
  else
14
15
  @account = current_user_account.account
15
16
  end
17
+
18
+ @has_subscription = false
19
+
16
20
  if IuguSDK::enable_subscription_features
17
- subscription = Iugu::Api::Subscription.find @account.subscription_id
18
- plan = Iugu::Api::Plan.find_by_identifier subscription.plan_identifier
19
- @plan_name = plan.try :name
21
+ unless @account.subscription_id.blank?
22
+ @has_subscription = true
23
+ @subscription = @account.subscription
24
+ plan = Iugu::Api::Plan.find_by_identifier @subscription.plan_identifier
25
+ @plan_name = plan.try :name
26
+ end
20
27
  end
21
28
  @primary_domain = @account.account_domains.where(:primary => true).first if @account
22
29
  render 'iugu/settings/account'
@@ -54,7 +61,13 @@ class Iugu::AccountController < Iugu::AccountSettingsController
54
61
  end
55
62
 
56
63
  def create
57
- current_user.accounts << Account.create
64
+ create_parameters = {}
65
+ if IuguSDK::enable_subscription_features
66
+ plan_identifier = params[:plan] || IuguSDK::default_subscription_name
67
+ currency = locale_to_currency I18n.locale
68
+ create_parameters = {plan_identifier: plan_identifier, currency: currency, email: current_user.email}
69
+ end
70
+ current_user.accounts << Account.create(create_parameters)
58
71
  redirect_to account_settings_path
59
72
  end
60
73
 
@@ -72,22 +85,59 @@ class Iugu::AccountController < Iugu::AccountSettingsController
72
85
  else
73
86
  raise ActionController::RoutingError.new('Not found')
74
87
  end
88
+ end
75
89
 
90
+ def remove_token
91
+ if IuguSDK::enable_account_api
92
+ account = current_user.accounts.find params[:account_id]
93
+ token = account.tokens.find params[:token]
94
+ if token.destroy
95
+ notice = I18n.t("iugu.notices.token_removed")
96
+ else
97
+ notice = token.errors.full_messages
98
+ end
99
+ flash[:group] = :api_token
100
+ redirect_to account_view_path(params[:account_id]), :notice => notice
101
+ else
102
+ raise ActionController::RoutingError.new('Not found')
103
+ end
76
104
  end
77
105
 
78
106
  def payment_history
79
107
  get_account
80
- subscription = Iugu::Api::Subscription.find @account.subscription_id
108
+ subscription = Iugu::Api::Subscription.find @account.subscription_id.to_uuid.to_s
81
109
  customer = Iugu::Api::Customer.find subscription.customer_id
82
- @invoices = customer.invoices({status_filter: ["pending", "paid"]})
110
+ @invoices = Iugu::Api::Invoice.find :all, params: {hl: current_user.locale, customer_id: customer.id.to_param, status_filter: ["pending", "paid"], limit: 10}
83
111
  render 'iugu/account/payment_history'
84
112
  end
85
113
 
114
+ def activate
115
+ get_account
116
+ if @account.subscription.try :activate
117
+ notice = I18n.t("iugu.notices.account_activated")
118
+ @account.clear_cached_subscription_active
119
+ else
120
+ notice = I18n.t("iugu.notices.error_activating_account")
121
+ end
122
+ redirect_to account_view_path(params[:account_id]), :notice => notice
123
+ end
124
+
125
+ def suspend
126
+ get_account
127
+ if @account.subscription.try :suspend
128
+ notice = I18n.t("iugu.notices.account_suspended")
129
+ @account.clear_cached_subscription_active
130
+ else
131
+ notice = I18n.t("iugu.notices.error_suspending_account")
132
+ end
133
+ redirect_to account_view_path(params[:account_id]), :notice => notice
134
+ end
135
+
86
136
  private
87
137
 
88
138
  def get_account
89
- if params[:id]
90
- @account = current_user.accounts.find(params[:id])
139
+ if params[:account_id]
140
+ @account = current_user.accounts.find(params[:account_id])
91
141
  else
92
142
  @account = current_user_account.account
93
143
  end
@@ -1,6 +1,8 @@
1
1
  class Iugu::InvitationsController < Iugu::SettingsController
2
2
 
3
+ skip_before_filter :authenticate_user!, :only => :edit
3
4
  before_filter(:only => [:new, :create]) { |c| c.must_be [:owner, :admin], :account_id }
5
+ after_filter :select_account, :only => [:update]
4
6
 
5
7
  def new
6
8
  @user_invitation = UserInvitation.new
@@ -21,17 +23,14 @@ class Iugu::InvitationsController < Iugu::SettingsController
21
23
  end
22
24
 
23
25
  def edit
24
- if @user_invitation = UserInvitation.find_by_invitation_token(params[:invitation_token])
25
- @inviter = User.find(@user_invitation.invited_by)
26
- else
27
- raise ActionController::RoutingError.new('Not Found')
28
- end
26
+ raise ActionController::RoutingError.new('Not Found') unless @user_invitation = UserInvitation.find_by_invitation_token(params[:invitation_token])
27
+ @inviter = User.find(@user_invitation.invited_by)
29
28
  end
30
29
 
31
30
  def update
32
31
  if @user_invitation = UserInvitation.find_by_invitation_token(params[:invitation_token])
33
32
  if @user_invitation.accept(current_user)
34
- redirect_to root_path
33
+ redirect_to IuguSDK::app_main_url
35
34
  else
36
35
  redirect_to root_path, :notice => I18n.t("iugu.notices.you_are_already_member_of_this_account")
37
36
  end
@@ -39,5 +38,4 @@ class Iugu::InvitationsController < Iugu::SettingsController
39
38
  raise ActionController::RoutingError.new('Not Found')
40
39
  end
41
40
  end
42
-
43
41
  end
@@ -9,8 +9,8 @@ class Iugu::PlanController < Iugu::AccountSettingsController
9
9
  return unless params[:plan]
10
10
  params[:id] ? @account = current_user.accounts.find(params[:id]) : @account = current_user_account.account
11
11
 
12
- subscription = Iugu::Api::Subscription.find @account.subscription_id
13
- subscription.change_plan params[:plan]
12
+ subscription = Iugu::Api::Subscription.find @account.subscription_id.to_uuid.to_s
13
+ @account.clear_cached_subscription_features if subscription.change_plan params[:plan]
14
14
 
15
15
  get_index_data
16
16
  render 'iugu/plan/index'
@@ -21,6 +21,7 @@ class Iugu::PlanController < Iugu::AccountSettingsController
21
21
  def get_index_data
22
22
  @currency = locale_to_currency I18n.locale
23
23
  @plans = Iugu::Api::Plan.with_currency @currency
24
- @subscription = Iugu::Api::Subscription.find @account.subscription_id
24
+
25
+ @subscription = Iugu::Api::Subscription.find @account.subscription_id.to_uuid.to_s
25
26
  end
26
27
  end
@@ -2,7 +2,7 @@ class Iugu::PricingController < ApplicationController
2
2
  before_filter :verify_api_key, :only => [ :index ]
3
3
 
4
4
  def index
5
- @plans = Iugu::Api::Plan.all
5
+ @plans = Iugu::Api::Plan.all params: {hl: current_user.locale}
6
6
  end
7
7
 
8
8
  end
@@ -17,6 +17,10 @@ class Iugu::RegistrationsController < Devise::RegistrationsController
17
17
  end
18
18
 
19
19
  def create
20
+ if !params[:user][:user_invitation].blank?
21
+ invite = UserInvitation.find_by_invitation_token(params[:user][:user_invitation])
22
+ return invalid_invitation if !invite or invite.try(:used)
23
+ end
20
24
  params[:user][:locale] = @matched_locale_from_browser unless params[:user][:locale]
21
25
  super
22
26
  end
@@ -29,7 +33,6 @@ class Iugu::RegistrationsController < Devise::RegistrationsController
29
33
  select_account
30
34
  flash[:notice] = I18n.t("iugu.notices.guest_login")
31
35
  redirect_to IuguSDK::app_main_url
32
- #respond_with @user, :location => sign_up_path_for(@user)
33
36
  else
34
37
  raise ActionController::RoutingError.new("Not found")
35
38
  end
@@ -41,6 +44,10 @@ class Iugu::RegistrationsController < Devise::RegistrationsController
41
44
 
42
45
  private
43
46
 
47
+ def invalid_invitation
48
+ redirect_to new_user_registration_path
49
+ end
50
+
44
51
  def verify_private_api_secret
45
52
  if request.format.json?
46
53
  render :json=>{:errors=>"Unauthorized"}, :status=>401 unless params[:private_api_secret] == IuguSDK::private_api_secret
@@ -1,13 +1,21 @@
1
1
  class Iugu::SessionsController < Devise::SessionsController
2
2
  after_filter :select_account, :only => :create
3
3
 
4
+ layout IuguSDK.alternative_layout
5
+
4
6
  def after_sign_in_path_for(resource_or_scope)
5
- IuguSDK::app_main_url
7
+ puts params
8
+ params[:user].try(:[], :user_invitation).blank? ? IuguSDK::app_main_url : invitation_url
6
9
  end
7
10
 
8
11
  def after_sign_out_path_for(resource_or_scope)
9
12
  IuguSDK::app_root_url
10
13
  end
11
14
 
12
- layout IuguSDK.alternative_layout
15
+ private
16
+
17
+ def invitation_url
18
+ edit_invite_url(:invitation_token => params[:user][:user_invitation])
19
+ end
20
+
13
21
  end
@@ -1,7 +1,7 @@
1
1
  class IuguMailer < Devise::Mailer
2
2
 
3
- default from: "iugu <do-not-respond@iugu.com>",
4
- reply_to: "iugu <do-not-respond@iugu.com>"
3
+ default from: "Iugu <no-reply@iugu.com>",
4
+ reply_to: "Iugu <no-reply@iugu.com>"
5
5
 
6
6
  def template_paths
7
7
  "iugu/mailer"
@@ -17,7 +17,7 @@ class IuguMailer < Devise::Mailer
17
17
  user = User.find(user_invitation.invited_by)
18
18
  set_locale(user)
19
19
  @user_invitation = user_invitation
20
- mail(to: @user_invitation.email, :subject => I18n.t("user_invitation")) do |format|
20
+ mail(to: @user_invitation.email, :subject => I18n.t("user_invitation", account_name: @user_invitation.account.try(:name))) do |format|
21
21
  format.html { render "iugu/mailer/invitation" }
22
22
  end
23
23
  set_default_locale
@@ -26,7 +26,7 @@ class IuguMailer < Devise::Mailer
26
26
  def welcome(user)
27
27
  set_locale(user)
28
28
  @user = user
29
- mail(to: @user.email, :subject => I18n.t("user_welcome")) do |format|
29
+ mail(to: @user.email, :subject => I18n.t("user_welcome", application_title: IuguSDK::application_title)) do |format|
30
30
  format.html { render "iugu/mailer/welcome" }
31
31
  end
32
32
  set_default_locale
@@ -53,6 +53,43 @@ class Account < ActiveRecord::Base
53
53
  def name
54
54
  (super.blank? ? "#{I18n.t('iugu.account')} ##{id}" : super)
55
55
  end
56
+
57
+ def subscription
58
+ return nil unless subscription_id
59
+ Iugu::Api::Subscription.find subscription_id.to_uuid.to_s
60
+ end
61
+
62
+ def cached_subscription_active?
63
+ key = [self, "subscription_active?"]
64
+ if Rails.cache.exist? key
65
+ Rails.cache.read key
66
+ else
67
+ active = subscription_active?
68
+ active ? time = 1.day : time = 5.minutes
69
+ Rails.cache.write key, active, expires_in: time
70
+ active
71
+ end
72
+ end
73
+
74
+ def clear_cached_subscription_active
75
+ Rails.cache.delete [self, "subscription_active?"]
76
+ end
77
+
78
+ def cached_subscription_features
79
+ Rails.cache.fetch([self, "subscription_features"], expires_in: 1.day) { JSON.parse(subscription_features.to_json) || {} }
80
+ end
81
+
82
+ def clear_cached_subscription_features
83
+ Rails.cache.delete [self, "subscription_features"]
84
+ end
85
+
86
+ def subscription_active?
87
+ subscription.try :active
88
+ end
89
+
90
+ def subscription_features
91
+ subscription.try :features
92
+ end
56
93
 
57
94
  private
58
95
 
data/app/models/user.rb CHANGED
@@ -20,11 +20,11 @@ class User < ActiveRecord::Base
20
20
  :recoverable, :rememberable, :validatable, :omniauthable
21
21
 
22
22
  # Setup accessible (or protected) attributes for your model
23
- attr_accessible :email, :password, :password_confirmation, :remember_me, :locale, :name, :birthdate, :guest, :account_alias, :plan_identifier, :currency
23
+ attr_accessible :email, :password, :password_confirmation, :remember_me, :locale, :name, :birthdate, :guest, :account_alias, :plan_identifier, :currency, :user_invitation
24
24
 
25
25
  attr_accessor :plan_identifier, :currency
26
26
 
27
- mattr_accessor :account_alias
27
+ mattr_accessor :account_alias, :user_invitation
28
28
 
29
29
  before_destroy :destroy_private_accounts
30
30
 
@@ -32,10 +32,16 @@ class User < ActiveRecord::Base
32
32
 
33
33
  after_create :init_token, :if => Proc.new { IuguSDK::enable_user_api }
34
34
 
35
- after_create :create_account_for_user
35
+ after_create :create_account_for_user, :if => Proc.new { accountable? && !user_invitation }
36
+
37
+ after_create :accept_invitation, :if => Proc.new { |user| !user.user_invitation.blank? }
36
38
 
37
39
  after_create :send_welcome_mail, :if => Proc.new { |r| IuguSDK::enable_welcome_mail && !r.email.blank? }
38
40
 
41
+ after_rollback do
42
+ Rails.logger.info errors.full_messages
43
+ end
44
+
39
45
  before_save :skip_reconfirmation!, :unless => Proc.new { IuguSDK::enable_email_reconfirmation }
40
46
 
41
47
  validates :email, :email => true, :unless => :guest?
@@ -155,8 +161,20 @@ class User < ActiveRecord::Base
155
161
 
156
162
  private
157
163
 
164
+ def accept_invitation
165
+ @invite = UserInvitation.find_by_invitation_token(user_invitation)
166
+ @invite.accept(self) if @invite
167
+ end
168
+
158
169
  def init_token
159
- self.token = ApiToken.create(tokenable: self, api_type: "USER", description: "User")
170
+ for i in 0..256 do
171
+ begin
172
+ self.token = ApiToken.create(tokenable: self, api_type: "USER", description: "User")
173
+ break unless token.nil?
174
+ rescue
175
+ next
176
+ end
177
+ end
160
178
  end
161
179
 
162
180
  def destroy_private_accounts
@@ -181,11 +199,8 @@ class User < ActiveRecord::Base
181
199
  @reconfirmable = true
182
200
 
183
201
  def create_account_for_user
184
- if accountable?
185
- new_account = Account.create( :subdomain => account_alias, plan_identifier: plan_identifier, currency: currency, email: email)
186
- account_user = new_account.account_users.create( { :user => self } )
187
- end
202
+ new_account = Account.create( :subdomain => account_alias, plan_identifier: plan_identifier, currency: currency, email: email)
203
+ account_user = new_account.account_users.create( { :user => self } )
188
204
  end
189
205
 
190
-
191
206
  end
@@ -28,6 +28,8 @@ class UserInvitation < ActiveRecord::Base
28
28
  if account.account_users.where(:user_id => user.id).empty?
29
29
  account_user = account.account_users.create(:user => user)
30
30
  account_user.set_roles(roles.split(',')) if roles
31
+ self.used = true
32
+ save
31
33
  true
32
34
  else
33
35
  false
@@ -1,13 +1,21 @@
1
+ %h3
2
+ Histórico de Pagamentos
3
+
1
4
  %table
2
5
  %tr
3
6
  %th ID
4
7
  %th Total
8
+ %th Vencimento
5
9
  %th Status
6
10
  - @invoices.each do |invoice|
7
11
  %tr
8
12
  %td
9
- = invoice.id
13
+ = link_to invoice.id[-8,8], invoice.secure_url, :target => "_blank"
10
14
  %td
11
15
  = invoice.total
12
16
  %td
13
- = invoice.status
17
+ = I18n.l invoice.due_date.to_date, format: :short
18
+ %td
19
+ = I18n.t "invoice_status.#{invoice.status}"
20
+
21
+ = link_to I18n.t("iugu.back"), account_view_path(id: params[:account_id]), class: "button no-bottom-margin"
@@ -1,59 +1,77 @@
1
1
  %h2
2
- = I18n.t("iugu.account_domains") + " (##{@account.id})"
2
+ = I18n.t("iugu.account_domains")
3
+
3
4
  - if flash[:group] == :account_domain
4
- = flash[:notice]
5
+ .notice.notice-green
6
+ = flash[:notice]
5
7
 
6
8
  - if IuguSDK::enable_account_alias == true
7
9
  %div
8
10
  = simple_form_for @account, :url => update_subdomain_path(:id => @account.id), :method => :put do |f|
9
11
  - if @account.errors.any?
10
- #error_explanation{ :style => "margin-bottom: 15px" }
12
+ .notice.notice-red
11
13
  %ul
12
14
  - @account.errors.full_messages.each do |msg|
13
15
  %li
14
16
  = msg
15
-
16
- = f.label :subdomain
17
- = f.text_field :subdomain
18
- = f.submit I18n.t("iugu.save")
17
+
18
+ .clearfix
19
+ .left{ :style => "width:60%;float:left" }
20
+ = f.label :subdomain, "Subdomínio"
21
+ = f.text_field :subdomain
22
+ .right{ :style => "width:40%;float:right;padding-top:30px" }
23
+ %div{ :style => "padding-left:10px" }
24
+ = "." + IuguSDK::application_main_host
25
+ = f.submit I18n.t("iugu.save"), :class => "button full-width"
19
26
 
20
27
  - if IuguSDK::enable_custom_domain == true
21
28
 
22
29
  %div
23
30
  = simple_form_for @account_domain, :url => create_domain_path(@account.id) do |f|
31
+
24
32
  - if @account_domain.errors.any?
25
- #error_explanation{ :style => "margin-bottom: 15px" }
33
+ .notice.notice-red{ :style => "margin-bottom: 15px" }
26
34
  %ul
27
35
  - @account_domain.errors.full_messages.each do |msg|
28
36
  %li
29
37
  = msg
30
38
 
31
- = f.text_field :url
32
- = f.submit I18n.t("iugu.add")
33
- %br
34
- %div
35
- - @account_domains.each do |domain|
36
- %div
37
-
38
- = domain.url
39
+ = f.text_field :url, :placeholder => "Domínio"
40
+ = f.submit I18n.t("iugu.add"), :class => "button full-width no-margin-bottom"
39
41
 
40
- - if domain.primary
41
- |
42
- = I18n.t("iugu.primary")
43
- - else
44
- - if domain.verified
45
- |
46
- = link_to I18n.t("iugu.set_primary"), primary_domain_path(:account_id => @account.id, :domain_id => domain.id), :method => :post
42
+ - if @account_domains.count > 0
43
+ %table.table
44
+ %thead
45
+ %tr
46
+ %th
47
+ Domínio
48
+ %th
47
49
 
48
- |
49
- - if domain.verified
50
- = I18n.t("iugu.verified")
51
- - else
52
- = link_to I18n.t("iugu.not_verified"), account_domains_instructions_path(:account_id => @account.id, :domain_id => domain.id)
50
+ %tbody
51
+ - @account_domains.each do |domain|
52
+ %tr
53
+ %td{ :style => "text-align:center;width:60%" }
54
+ %h4.no-bottom-margin
55
+ = domain.url
56
+ %div{ :style => "color:#090;text-align:center;font-weight:bold;text-transform:uppercase;font-size:10px" }
57
+ - if domain.primary
58
+ = "#{I18n.t("iugu.primary")}"
53
59
 
54
- - if current_user.is?(:owner, @account)
55
- |
56
- = link_to I18n.t("iugu.remove"), account_domains_destroy_path(:account_id => @account.id, :domain_id => domain.id), :method => :delete
60
+ - if domain.verified
61
+ = I18n.t("iugu.verified")
62
+ - unless domain.verified
63
+ %div{ :style => "color:#900;text-align:center;font-weight:bold;text-transform:uppercase;font-size:10px" }
64
+ = I18n.t("iugu.not_verified")
65
+ %td{ :style => "width:40%" }
66
+ .group
67
+ - unless domain.primary
68
+ - if domain.verified
69
+ = link_to I18n.t("iugu.set_primary"), primary_domain_path(:account_id => @account.id, :domain_id => domain.id), :method => :post, :class => "button small"
57
70
 
71
+ - unless domain.verified
72
+ = link_to I18n.t("iugu.verify_domain"), account_domains_instructions_path(:account_id => @account.id, :domain_id => domain.id), :class => "button small"
58
73
 
74
+ - if current_user.is?(:owner, @account)
75
+ = link_to I18n.t("iugu.remove"), account_domains_destroy_path(:account_id => @account.id, :domain_id => domain.id), :method => :delete, :class => "button small"
59
76
 
77
+ = link_to I18n.t("iugu.back"), account_view_path(id: params[:account_id]), class: "button no-bottom-margin"
@@ -1,7 +1,26 @@
1
1
  %div
2
- Token:
3
- = @domain.calculate_token
2
+ %h3
3
+ Confirmar a propriedade do domínio
4
+
5
+ %table
6
+ %tr
7
+ %td{ :style => "text-align:center" }
8
+ = @domain.url
9
+
10
+ %p
11
+ Para podermos ativar o domínio no #{IuguSDK::application_title}, precisamos confirmar se você é o proprietário. Fazemos isto por meio da confirmação da propriedade do domínio. Isso protege seu domínio, garantindo que somente sua organização possa ativar o uso em nosso sistema.
12
+
13
+ %p
14
+ Para confirmar seu domínio, você deve criar um registro CNAME em seu painel de gerenciamento de domínios (Consulte seu provedor de serviços DNS). Adicione uma entrada CNAME com token abaixo:
15
+ %table
16
+ %tr
17
+ %td{ :style => "text-align:center" }
18
+ = @domain.calculate_token
19
+ %p
20
+ Após inserir o registro em seu painel. Você pode continuar com a verificação do domínio
21
+ %div{ :style => "padding-bottom: 5px" }
22
+ = link_to I18n.t("iugu.verify_domain"), verify_domain_path(:account_id => @account.id, :domain_id => @domain.id), :method => :post, :class => "button full-width no-bottom-margin"
4
23
  %div
5
- = link_to I18n.t("iugu.verify_domain"), verify_domain_path(:account_id => @account.id, :domain_id => @domain.id), :method => :post
6
- %div
7
- = link_to I18n.t("iugu.verify_later"), account_domains_index_path(@account.id)
24
+ = link_to I18n.t("iugu.verify_later"), account_domains_index_path(@account.id), :class => "button full-width"
25
+
26
+ = link_to I18n.t("iugu.back"), account_domains_index_path(id: params[:account_id]), class: "button no-bottom-margin"
@@ -1,17 +1,29 @@
1
1
  = form_tag(account_roles_update_path(@account, :user_id => @account_user.user)) do
2
2
 
3
- - if current_user.is?(:owner, @account)
4
- - APP_ROLES['roles'].each do |role|
5
- %div
6
- = check_box_tag "roles[]", role, @account_user.is?(role), :id => "#{role}_checkbox"
7
- = label_tag "#{role}_checkbox", I18n.t("iugu.#{role}")
3
+ %h3
4
+ Permissões
8
5
 
9
- - elsif current_user.is?(:admin, @account)
10
- - APP_ROLES['roles'].each do |role|
11
- - unless role == APP_ROLES['owner_role'] || role == APP_ROLES['admin_role']
12
- %div
6
+ %table
7
+ %tbody
8
+ %tr
9
+ %td
10
+ = @account_user.user.email
11
+
12
+ %div{ :style => "margin-bottom:20px" }
13
+ - if current_user.is?(:owner, @account)
14
+ - APP_ROLES['roles'].each do |role|
15
+ %div{ :style => "margin-bottom: 5px" }
13
16
  = check_box_tag "roles[]", role, @account_user.is?(role), :id => "#{role}_checkbox"
14
17
  = label_tag "#{role}_checkbox", I18n.t("iugu.#{role}")
18
+
19
+ - elsif current_user.is?(:admin, @account)
20
+ - APP_ROLES['roles'].each do |role|
21
+ - unless role == APP_ROLES['owner_role'] || role == APP_ROLES['admin_role']
22
+ %div{ :style => "margin-bottom: 5px" }
23
+ = check_box_tag "roles[]", role, @account_user.is?(role), :id => "#{role}_checkbox"
24
+ = label_tag "#{role}_checkbox", I18n.t("iugu.#{role}")
15
25
 
16
26
  %div
17
- = submit_tag I18n.t("iugu.save")
27
+ = submit_tag I18n.t("iugu.save"), :class => "button full-width"
28
+
29
+ = link_to I18n.t("iugu.back"), account_users_index_path(account_id: params[:id]), class: "button no-bottom-margin"