diff --git a/Gemfile b/Gemfile index 317fa97..cd72c65 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,6 @@ -source "http://rubygems.org" +# frozen_string_literal: true + +source 'http://rubygems.org' # Declare your gem's dependencies in samfundet_auth.gemspec. # Bundler will treat runtime dependencies like base dependencies, and diff --git a/Rakefile b/Rakefile old mode 100644 new mode 100755 index 19e59d4..2f38c9a --- a/Rakefile +++ b/Rakefile @@ -1,4 +1,6 @@ #!/usr/bin/env rake +# frozen_string_literal: true + begin require 'bundler/setup' rescue LoadError @@ -20,11 +22,9 @@ RDoc::Task.new(:rdoc) do |rdoc| rdoc.rdoc_files.include('lib/**/*.rb') end -APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__) +APP_RAKEFILE = File.expand_path('test/dummy/Rakefile', __dir__) load 'rails/tasks/engine.rake' - - Bundler::GemHelper.install_tasks require 'rake/testtask' @@ -36,5 +36,4 @@ Rake::TestTask.new(:test) do |t| t.verbose = false end - -task :default => :test +task default: :test diff --git a/app/models/member.rb b/app/models/member.rb index ce86481..59ab93e 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -1,16 +1,16 @@ +# frozen_string_literal: true + class Member < ActiveRecord::Base self.primary_key = :medlem_id - has_many :members_roles, :dependent => :destroy - has_many :roles, :through => :members_roles + has_many :members_roles, dependent: :destroy + has_many :roles, through: :members_roles - attr_accessor :passord if %w(production staging).include? Rails.env + attr_accessor :passord if %w[production staging].include? Rails.env validates_presence_of :fornavn, :etternavn, :mail, :telefon - if Rails.env.development? - validates_presence_of :passord - end + validates_presence_of :passord if Rails.env.development? def firstname fornavn @@ -25,7 +25,7 @@ def full_name end def self.authenticate(member_id_or_email, password) - if %w(production staging).include? Rails.env + if %w[production staging].include? Rails.env authenticate_production member_id_or_email, password else authenticate_development member_id_or_email, password @@ -37,13 +37,11 @@ def self.authenticate(member_id_or_email, password) def self.authenticate_production(member_id_or_email, password) Rails.logger.silence do # Prevents passwords from showing up in the logs. member_id = connection.select_value sanitize_sql([ - "SELECT * FROM sett_lim_utvidet_medlemsinfo(?, ?)", - member_id_or_email.to_s, - password + 'SELECT * FROM sett_lim_utvidet_medlemsinfo(?, ?)', + member_id_or_email.to_s, + password ]) - unless member_id.nil? - Member.find member_id - end + Member.find member_id unless member_id.nil? end end @@ -51,8 +49,8 @@ def self.authenticate_development(member_id_or_email, password) # There are no SQL standard for lower case search, # and that's why there's no help from ruby or rails. member = Member.find_by_medlem_id(member_id_or_email) || - Member.where("lower(mail) = ?", member_id_or_email.downcase).first + Member.where('lower(mail) = ?', member_id_or_email.downcase).first - member if member and member.passord == password + member if member && (member.passord == password) end end diff --git a/app/models/members_role.rb b/app/models/members_role.rb index 1242037..9d54370 100644 --- a/app/models/members_role.rb +++ b/app/models/members_role.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class MembersRole < ActiveRecord::Base validates_presence_of :member_id validates_presence_of :role_id diff --git a/app/models/role.rb b/app/models/role.rb index f607a01..e31c51c 100644 --- a/app/models/role.rb +++ b/app/models/role.rb @@ -1,13 +1,15 @@ +# frozen_string_literal: true + class Role < ActiveRecord::Base - validates_format_of :title, :with => /\A[a-z0-9\_\-]+\z/ + validates_format_of :title, with: /\A[a-z0-9\_\-]+\z/ validates_presence_of :name, :description attr_readonly :title default_scope { order(:title) } - has_many :members_roles, :dependent => :destroy - has_many :members, :through => :members_roles + has_many :members_roles, dependent: :destroy + has_many :members, through: :members_roles has_many :roles belongs_to :group belongs_to :role diff --git a/config/routes.rb b/config/routes.rb index 43a4d79..cd9fc03 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,2 +1,4 @@ +# frozen_string_literal: true + SamfundetAuth::Engine.routes.draw do end diff --git a/db/migrate/20121031220629_create_members.rb b/db/migrate/20121031220629_create_members.rb index d9335f2..9ac9ddb 100644 --- a/db/migrate/20121031220629_create_members.rb +++ b/db/migrate/20121031220629_create_members.rb @@ -1,6 +1,8 @@ +# frozen_string_literal: true + class CreateMembers < ActiveRecord::Migration def up - create_table :members, :primary_key => :medlem_id do |t| + create_table :members, primary_key: :medlem_id do |t| t.string :fornavn t.string :etternavn t.string :mail diff --git a/db/migrate/20121031220750_create_roles.rb b/db/migrate/20121031220750_create_roles.rb index 77367cb..94eb49e 100644 --- a/db/migrate/20121031220750_create_roles.rb +++ b/db/migrate/20121031220750_create_roles.rb @@ -1,10 +1,12 @@ +# frozen_string_literal: true + class CreateRoles < ActiveRecord::Migration def up create_table :roles do |t| t.string :name # The name is a generic name of that type of role. E.g. «Gjengsjef» is a name. t.string :title # The title of a role is unique and the properties gained from a role depends on its title. E.g. «mg_gjengsjef» is a title. t.text :description - t.boolean :show_in_hierarchy, :default => false + t.boolean :show_in_hierarchy, default: false t.references :role t.references :group diff --git a/db/migrate/20121031220820_create_members_roles.rb b/db/migrate/20121031220820_create_members_roles.rb index a512507..eefecc0 100644 --- a/db/migrate/20121031220820_create_members_roles.rb +++ b/db/migrate/20121031220820_create_members_roles.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class CreateMembersRoles < ActiveRecord::Migration def up create_table :members_roles do |t| diff --git a/db/migrate/20140322161444_add_foreign_keys_for_roles_and_member_roles.rb b/db/migrate/20140322161444_add_foreign_keys_for_roles_and_member_roles.rb index 93e3efb..9898304 100644 --- a/db/migrate/20140322161444_add_foreign_keys_for_roles_and_member_roles.rb +++ b/db/migrate/20140322161444_add_foreign_keys_for_roles_and_member_roles.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class AddForeignKeysForRolesAndMemberRoles < ActiveRecord::Migration def up add_foreign_key :roles, :roles diff --git a/lib/samfundet_auth.rb b/lib/samfundet_auth.rb index f833fe0..89c0960 100644 --- a/lib/samfundet_auth.rb +++ b/lib/samfundet_auth.rb @@ -1,5 +1,7 @@ -require "active_support/configurable" -require "samfundet_auth/engine" +# frozen_string_literal: true + +require 'active_support/configurable' +require 'samfundet_auth/engine' module SamfundetAuth include ActiveSupport::Configurable @@ -10,7 +12,7 @@ def setup database_path = "#{Rails.root}/config/database.yml" - if File.exists? database_path + if File.exist? database_path database_config = YAML.load_file database_path if config.domain_database @@ -23,9 +25,7 @@ def setup Member.establish_connection database_config[config.member_database.to_s] end - if config.member_table - Member.table_name = config.member_table.to_s - end + Member.table_name = config.member_table.to_s if config.member_table end end end diff --git a/lib/samfundet_auth/engine.rb b/lib/samfundet_auth/engine.rb index 5ba7734..00252ba 100644 --- a/lib/samfundet_auth/engine.rb +++ b/lib/samfundet_auth/engine.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module SamfundetAuth class Engine < ::Rails::Engine isolate_namespace SamfundetAuth diff --git a/lib/samfundet_auth/version.rb b/lib/samfundet_auth/version.rb index c01a866..ab3c28c 100644 --- a/lib/samfundet_auth/version.rb +++ b/lib/samfundet_auth/version.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module SamfundetAuth - VERSION = "0.2.0" + VERSION = '0.2.0' end diff --git a/lib/tasks/db_seed.rake b/lib/tasks/db_seed.rake index eabbf65..6f6448f 100644 --- a/lib/tasks/db_seed.rake +++ b/lib/tasks/db_seed.rake @@ -1,38 +1,38 @@ -# encoding: UTF-8 +# frozen_string_literal: true desc "Load the seed data from SamfundetAuth's db/seeds.rb" namespace :samfundet_auth_engine do namespace :db do - task :seed => :environment do + task seed: :environment do if Rake::Task.task_defined? 'samfundet_domain_engine:db:seed' Rake::Task['samfundet_domain_engine:db:seed'].invoke else - raise "SamfundetAuth depends upon SamfundetDomain. Have you forgotten to include it in your Gemfile?" + raise 'SamfundetAuth depends upon SamfundetDomain. Have you forgotten to include it in your Gemfile?' end - print "Deleting existing members and roles, and proceeding with creating new ones.. " + print 'Deleting existing members and roles, and proceeding with creating new ones.. ' tasks = [] [MembersRole, Member, Role].each do |model| - tasks << Proc.new do + tasks << proc do model.delete_all end end Group.all.each do |group| - tasks << Proc.new do + tasks << proc do Role.find_or_create_by(title: group.group_leader_role.to_s) do |role| - role.name = "Gjensjef" + role.name = 'Gjensjef' role.description = "Rolle for gjengsjef for #{group.name}" role.group = group end end - tasks << Proc.new do + tasks << proc do Role.find_or_create_by(title: group.short_name.parameterize) do |role| role.name = group.name, - role.description = "Rolle for alle medlemmer av #{group.name}." + role.description = "Rolle for alle medlemmer av #{group.name}." role.group = group role.role = Role.find_by_title(group.group_leader_role.to_s) end @@ -42,72 +42,35 @@ namespace :samfundet_auth_engine do # Just to make sure the variable will exist in this scope. lim_web_role = Role.new - tasks << Proc.new do + tasks << proc do lim_web_role = Role.create!( - :title => "lim_web", - :name => "Superuser", - :description => "Superrolle for alle i MG::Web." + title: 'lim_web', + name: 'Superuser', + description: 'Superrolle for alle i MG::Web.' ) end members = [ - { :fornavn => "Sondre", :etternavn => "Basma", :mail => "sondre1504@gmail.com" }, - { :fornavn => "Andreas", :etternavn => "Hammar", :mail => "ahammar@gmail.com" }, - { :fornavn => "Torstein", :etternavn => "Nicolaysen", :mail => "tnicolaysen@gmail.com" }, - { :fornavn => "Stig", :etternavn => "Hornang", :mail => "hornang@stud.ntnu.no" }, - { :fornavn => "Erik", :etternavn => "Smistad", :mail => "smistad@samfundet.no" }, - { :fornavn => "Olav", :etternavn => "Bjørkøy", :mail => "olav@bjorkoy.com" }, - { :fornavn => "Jonas", :etternavn => "Amundsen", :mail => "JonasBA@Gmail.com" }, - { :fornavn => "Jonas", :etternavn => "Myrlund", :mail => "myrlund@gmail.com" }, - { :fornavn => "Stian", :etternavn => "Møllersen", :mail => "themorn@gmail.com" }, - { :fornavn => "Håkon", :etternavn => "Sandsmark", :mail => "hsandsmark@gmail.com" }, - { :fornavn => "Lorents", :etternavn => "Gravås", :mail => "lorentso@stud.ntnu.no" }, - { :fornavn => "Anders", :etternavn => "Eldhuset", :mail => "anders.w.eldhuset@gmail.com" }, - { :fornavn => "Aleksander", :etternavn => "Burkow", :mail => "aleksanderburkow@gmail.com" }, - { :fornavn => "Rune", :etternavn => "Holmgren", :mail => "Raane.Holm@gmail.com" }, - { :fornavn => "Morten", :etternavn => "Lysgaard", :mail => "morten@lysgaard.no" }, - { :fornavn => "Dagrun", :etternavn => "Haugland", :mail => "dagrunh@gmail.com" }, - { :fornavn => "Christoffer",:etternavn => "Tønnessen", :mail => "chrto@samfundet.no" }, - { :fornavn => "Trygve", :etternavn => "Bærland", :mail => "trygve.baerland@gmail.com" }, - { :fornavn => "Odd", :etternavn => "Trondrud", :mail => "odd@gmali.com" }, - { :fornavn => "Asbjørn", :etternavn => "Steinskog", :mail => "asbjorn@steinskog.me" }, - { :fornavn => "Simon", :etternavn => "Randby", :mail => "simon@samfundet.no" }, - { :fornavn => "Alf", :etternavn => "Jonassen", :mail => "alf1337@gmail.com" }, - { :fornavn => "Glenn", :etternavn => "Aarøen", :mail => "glaar90@gmail.com" }, - { :fornavn => "Katrine", :etternavn => "Jordheim", :mail => "katrine@samfundet.no" }, - { :fornavn => "Simon", :etternavn => "Kvannli", :mail => "simonkvannli@gmail.com" }, - { :fornavn => "Filip", :etternavn => "Egge", :mail => "filip.egge@gmail.com" }, - { :fornavn => "Stian", :etternavn => "Steinbakken", :mail => "stiansteinbakken17@gmail.com" }, - { :fornavn => "Anders", :etternavn => "Sørby", :mail => "user8715@gmail.com" }, - { :fornavn => "Erlend", :etternavn => "Ekern", :mail => "erlendekern@gmail.com" }, - { :fornavn => "Kim Isak", :etternavn => "Olsen", :mail => "kimisakolsen@gmail.com" }, - { :fornavn => "Konstantin", :etternavn => "Mathisen", :mail => "konstantin@live.no" }, - { :fornavn => "Tollef", :etternavn => "Jørgensen", :mail => "tollefj@gmail.com" }, - { :fornavn => "Eivind", :etternavn => "Reime", :mail => "eivindreime@gmail.com" }, - { :fornavn => "Petter", :etternavn => "Foss", :mail => "petterfoss1@gmail.com" }, - { :fornavn => "Kevin", :etternavn => "Kristiansen", :mail => "kevikris@gmail.com" }, - { :fornavn => "Eirik", :etternavn => "Vale Aase", :mail => "e.v.aase@gmail.com" }, - { :fornavn => "Daria", :etternavn => "Barjaktarevic", :mail => "dariamidboe@gmail.com" } - + { fornavn: 'Alf', etternavn: 'Jonassen', mail: 'alf1337@gmail.com' } ] members.each do |member| - tasks << Proc.new do - Member.create! member.merge({:passord => "passord", :telefon => "22222222"}) + tasks << proc do + Member.create! member.merge(passord: 'passord', telefon: '22222222') end end members.each do |member| - tasks << Proc.new do + tasks << proc do Member.find_by(mail: member[:mail]).roles << lim_web_role end end - print "00%" + print '00%' tasks.each_with_index do |task, index| task.call - print "\b\b\b%02d%%" % (100 * (index.to_f + 1) / tasks.length.to_f) + print format("\b\b\b%02d%%", (100 * (index.to_f + 1) / tasks.length.to_f)) end print "\n" diff --git a/lib/tasks/samfundet_auth_tasks.rake b/lib/tasks/samfundet_auth_tasks.rake index 1d7ebf2..acf1a78 100644 --- a/lib/tasks/samfundet_auth_tasks.rake +++ b/lib/tasks/samfundet_auth_tasks.rake @@ -1,3 +1,4 @@ +# frozen_string_literal: true # desc "Explaining what the task does" # task :samfundet_auth do # # Task goes here diff --git a/samfundet_auth.gemspec b/samfundet_auth.gemspec index c8b9a2b..1e19e4a 100644 --- a/samfundet_auth.gemspec +++ b/samfundet_auth.gemspec @@ -1,21 +1,23 @@ -$:.push File.expand_path("../lib", __FILE__) +# frozen_string_literal: true + +$LOAD_PATH.push File.expand_path('lib', __dir__) # Maintain your gem's version: -require "samfundet_auth/version" +require 'samfundet_auth/version' # Describe your gem and declare its dependencies: Gem::Specification.new do |s| - s.name = "samfundet_auth" + s.name = 'samfundet_auth' s.version = SamfundetAuth::VERSION - s.authors = ["MG::Web", "Jonas Amundsen"] - s.email = ["mg-web@samfundet.no", "jonasba@gmail.com"] - s.homepage = "https://github.com/Samfundet/SamfundetAuth" - s.summary = "Authentication helper for applications of The student society of Trondheim." - s.description = "A mountable Rails engine which provides an application with the basic methods for authentication against the member database of The student society of Trondheim." + s.authors = ['MG::Web', 'Jonas Amundsen'] + s.email = ['mg-web@samfundet.no', 'jonasba@gmail.com'] + s.homepage = 'https://github.com/Samfundet/SamfundetAuth' + s.summary = 'Authentication helper for applications of The student society of Trondheim.' + s.description = 'A mountable Rails engine which provides an application with the basic methods for authentication against the member database of The student society of Trondheim.' - s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.md"] - s.test_files = Dir["test/**/*"] + s.files = Dir['{app,config,db,lib}/**/*'] + ['MIT-LICENSE', 'Rakefile', 'README.md'] + s.test_files = Dir['test/**/*'] - s.add_dependency "rails", "~> 5.2.0" + s.add_dependency 'rails', '~> 5.2.0' s.required_ruby_version = '~> 2.5.5' end diff --git a/script/rails b/script/rails index d51b9c2..3e215c3 100755 --- a/script/rails +++ b/script/rails @@ -1,8 +1,10 @@ #!/usr/bin/env ruby +# frozen_string_literal: true + # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. -ENGINE_ROOT = File.expand_path('../..', __FILE__) -ENGINE_PATH = File.expand_path('../../lib/samfundet_auth/engine', __FILE__) +ENGINE_ROOT = File.expand_path('..', __dir__) +ENGINE_PATH = File.expand_path('../lib/samfundet_auth/engine', __dir__) require 'rails/all' require 'rails/engine/commands'