diff --git a/app/policies/users/registration_policy.rb b/app/policies/users/registration_policy.rb new file mode 100644 index 0000000..285371a --- /dev/null +++ b/app/policies/users/registration_policy.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class Users::RegistrationPolicy < ApplicationPolicy + def update? + !account&.user.nil? + end +end diff --git a/app/views/settings/_nav_sidebar.html.erb b/app/views/settings/_nav_sidebar.html.erb index 4a045c5..57137bd 100644 --- a/app/views/settings/_nav_sidebar.html.erb +++ b/app/views/settings/_nav_sidebar.html.erb @@ -6,10 +6,12 @@ "#{:active if tab == :profile}" %> <% end %> - <%= link_to translate(:credentials, scope: %i[nav_tabs settings]), - edit_user_registration_path, - class: 'list-group-item list-group-item-action ' \ - "#{:active if tab == :credentials}" %> + <% if policy(%i[users registration]).edit? %> + <%= link_to translate(:credentials, scope: %i[nav_tabs settings]), + edit_user_registration_path, + class: 'list-group-item list-group-item-action ' \ + "#{:active if tab == :credentials}" %> + <% end %> <% if policy(%i[settings account_telegram_contact]).index? %> <%= link_to translate(:telegram_contacts, scope: %i[nav_tabs settings]), diff --git a/spec/policies/users/registration_policy_spec.rb b/spec/policies/users/registration_policy_spec.rb new file mode 100644 index 0000000..1a4756a --- /dev/null +++ b/spec/policies/users/registration_policy_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe Users::RegistrationPolicy do + pending "add some examples to (or delete) #{__FILE__}" +end