diff options
| -rw-r--r-- | app/models/user.rb | 27 | ||||
| -rw-r--r-- | spec/models/user_spec.rb | 8 |
2 files changed, 6 insertions, 29 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 64d66883f..c2aa14bda 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -29,29 +29,6 @@ class User < ActiveRecord::Base scope :with_organisation, -> { where.not(organisation_id: nil) } - def self.destructive_permissions_for(models) - models.product( %w{create destroy update} ).map{ |model_action| model_action.join('.') } - end - - @@edit_offer_permissions = - destructive_permissions_for( %w[ - access_points - connection_links - calendars - footnotes - journey_patterns - referentials - routes - routing_constraint_zones - time_tables - vehicle_journeys - ]) << 'boiv:edit-offer' - - mattr_reader :edit_offer_permissions - - def self.all_permissions - edit_offer_permissions - end # Callback invoked by DeviseCasAuthenticable::Model#authernticate_with_cas_ticket def cas_extra_attributes=(extra_attributes) @@ -59,7 +36,7 @@ class User < ActiveRecord::Base self.name = extra[:full_name] self.email = extra[:email] self.organisation = Organisation.sync_update extra[:organisation_code], extra[:organisation_name], extra[:functional_scope] - self.permissions = extra[:permissions].include?('boiv:edit-offer') ? @@edit_offer_permissions : [] + self.permissions = Stif::PermissionTranslator.translate(extra[:permissions]) end def self.portail_api_request @@ -87,7 +64,7 @@ class User < ActiveRecord::Base user.locked_at = el['locked_at'] user.organisation = Organisation.sync_update el['organization_code'], el['organization_name'], el['functional_scope'] user.synced_at = Time.now - user.permissions = el['permissions'].include?('boiv:edit-offer') ? @@edit_offer_permissions : [] + user.permissions = Stif::PermissionTranslator.translate(el['permissions']) user.save end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 6f98e5ce7..3a9ae37e9 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1,6 +1,4 @@ -require 'spec_helper' - -describe User, :type => :model do +RSpec.describe User, :type => :model do # it { should validate_uniqueness_of :email } # it { should validate_presence_of :name } @@ -116,9 +114,11 @@ describe User, :type => :model do end context 'permissions' do + let( :all_permissions ){ Stif::PermissionTranslator.translate(%w{boiv:edit-offer}) } + it 'should give edit permissions to user if user has "edit offer" permission in portail' do User.portail_sync - expect(User.find_by(username: 'vlatka.pavisic').permissions).to include_all(User.edit_offer_permissions) + expect(User.find_by(username: 'vlatka.pavisic').permissions).to eq(all_permissions) expect(User.find_by(username: 'pierre.vabre').permissions).to be_empty end end |
