Skip to content
This repository has been archived by the owner on Jul 24, 2020. It is now read-only.

Commit

Permalink
Merge pull request #1195 from YaleSTC/1144_navbar_preapp
Browse files Browse the repository at this point in the history
resolves #1144
  • Loading branch information
orenyk committed Mar 23, 2015
2 parents 4405f6e + a101505 commit be799db
Show file tree
Hide file tree
Showing 12 changed files with 40 additions and 31 deletions.
4 changes: 2 additions & 2 deletions app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ def load_configs
end

def seen_app_configs
return if AppConfig.first.viewed || current_user.nil?
return if AppConfig.check(:viewed) || current_user.nil?
if can? :edit, :app_config
flash[:notice] = 'Since this is your first time viewing the '\
'application configurations, we recommend that you take some time '\
Expand Down Expand Up @@ -125,7 +125,7 @@ def make_cart_compatible

# check to see if the guest user functionality is disabled
def guests_disabled?
AppConfig.first && !AppConfig.first.enable_guests
!AppConfig.check(:enable_guests)
end

# check to see if we should skip authentication; either looks to see if the
Expand Down
10 changes: 5 additions & 5 deletions app/controllers/reservations_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def set_filter

@filters = [:reserved, :checked_out, :overdue, :returned, :upcoming,
:requested, :approved_requests, :denied_requests]
@filters << :missed unless AppConfig.first.res_exp_time
@filters << :missed unless AppConfig.check(:res_exp_time)

# if filter in session set it
if session[:filter]
Expand Down Expand Up @@ -118,11 +118,11 @@ def new # rubocop:disable MethodLength, PerceivedComplexity
flash[:error] = 'Please review the errors below. If uncorrected, '\
'any reservations with errors will be filed as a request, and '\
'subject to administrator approval.'
if AppConfig.first.request_text.empty?
if AppConfig.get(:request_text).empty?
@request_text = 'Please give a short justification for this '\
'equipment request.'
else
@request_text = AppConfig.first.request_text
@request_text = AppConfig.get(:request_text)
end
end
end
Expand All @@ -146,11 +146,11 @@ def create # rubocop:disable all
flash[:error] = 'Please give a short justification for this '\
"reservation #{requested ? 'request' : 'override'}"
@notes_required = true
if AppConfig.first.request_text.empty?
if AppConfig.get(:request_text).empty?
@request_text = 'Please give a short justification for this '\
'equipment request.'
else
@request_text = AppConfig.first.request_text
@request_text = AppConfig.get(:request_text)
end
render(:new) && return
end
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/users_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def show
past: @user_reservations.returned,
past_overdue: @user_reservations.returned_overdue }
@show_equipment[:missed] =
@user_reservations.missed unless AppConfig.first.res_exp_time
@user_reservations.missed unless AppConfig.check(:res_exp_time)
@has_pending = @user_reservations.requested.count > 0
end

Expand Down
9 changes: 3 additions & 6 deletions app/mailers/admin_mailer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,23 @@ class AdminMailer < ActionMailer::Base

def notes_reservation_notification(notes_reservations_out,
notes_reservations_in)
@app_configs = AppConfig.first
@notes_reservations_out = notes_reservations_out
@notes_reservations_in = notes_reservations_in
mail(to: @app_configs.admin_email,
mail(to: AppConfig.get(:admin_email),
subject: '[Reservations] Notes for '\
+ (Time.zone.today - 1.day).strftime('%m/%d/%y'))
end

def overdue_checked_in_fine_admin(overdue_checked_in)
return if overdue_checked_in.equipment_model.late_fee == 0
@app_configs = AppConfig.first
@overdue_checked_in = overdue_checked_in
mail(to: @app_configs.admin_email,
mail(to: AppConfig.get(:admin_email),
subject: '[Reservations] Overdue equipment fine')
end

def request_filed(request)
@app_configs = AppConfig.first
@reservation = request
mail(to: @app_configs.admin_email,
mail(to: AppConfig.get(:admin_email),
subject: '[Reservations] Request submitted')
end
end
4 changes: 2 additions & 2 deletions app/mailers/notifications_mailer.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class NotificationsMailer < ActionMailer::Base
def new_message(message)
@message = message
mail(to: AppConfig.first.contact_link_location,
subject: "[#{AppConfig.first.site_title}] #{message.subject}",
mail(to: AppConfig.get(:contact_link_location),
subject: "[#{AppConfig.get(:site_title)}] #{message.subject}",
from: @message.email)
end
end
2 changes: 1 addition & 1 deletion app/mailers/user_mailer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class UserMailer < ActionMailer::Base
if AppConfig.first.nil?
default from: 'no-reply@reservations.app'
else
default from: AppConfig.first.admin_email, cc: AppConfig.first.admin_email
default from: AppConfig.get(:admin_email), cc: AppConfig.get(:admin_email)
end

# checks the status of the current reservation and sends the appropriate email
Expand Down
18 changes: 9 additions & 9 deletions app/models/ability.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,46 +8,46 @@ def initialize(user) # rubocop:disable all
can :manage, :all
when 'admin'
can :manage, :all
cannot :renew, Reservation unless AppConfig.first.enable_renewals
cannot :renew, Reservation unless AppConfig.check(:enable_renewals)
cannot :appoint, :superuser
cannot :access, :rails_admin
cannot [:destroy, :update], User, role: 'superuser'
when 'checkout'
can :manage, Reservation
cannot :archive, Reservation
cannot :renew, Reservation unless AppConfig.first.enable_renewals
cannot :renew, Reservation unless AppConfig.check(:enable_renewals)
cannot :destroy, Reservation do |r|
!r.checked_out.nil?
end
unless AppConfig.first.checkout_persons_can_edit
unless AppConfig.check(:checkout_persons_can_edit)
cannot :update, Reservation
end
can [:read, :update, :find, :autocomplete_user_last_name], User
if AppConfig.first.enable_new_users
if AppConfig.check(:enable_new_users)
can [:create, :quick_new, :quick_create], User
end
can :read, EquipmentItem
can :read, EquipmentModel
can :override, :reservation_errors if AppConfig.first.override_on_create
can :override, :checkout_errors if AppConfig.first.override_at_checkout
can :override, :reservation_errors if AppConfig.get(:override_on_create)
can :override, :checkout_errors if AppConfig.get(:override_at_checkout)
when 'normal' || 'checkout'
can [:update, :show], User, id: user.id
can :read, EquipmentModel
can [:read, :create], Reservation, reserver_id: user.id
can :destroy, Reservation, reserver_id: user.id, checked_out: nil
if AppConfig.first.enable_renewals
if AppConfig.check(:enable_renewals)
can :renew, Reservation, reserver_id: user.id
end
can :update_cart, :all
can :update_index_dates, Reservation
can :view_all_dates, Reservation
when 'guest'
# rubocop:disable BlockNesting
if AppConfig.first && AppConfig.first.enable_guests
if AppConfig.check(:enable_guests)
can :read, EquipmentModel
can :empty_cart, :all
can :update_cart, :all
can :create, User if AppConfig.first.enable_new_users
can :create, User if AppConfig.check(:enable_new_users)
end
# rubocop:enable BlockNesting
when 'banned'
Expand Down
13 changes: 13 additions & 0 deletions app/models/app_config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,17 @@ class AppConfig < ActiveRecord::Base
validates :admin_email,
format: { with: /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i }
validates :default_per_cat_page, numericality: { only_integer: true }

def self.check(prop, val = false)
# Check the property given in prop
# return val (default false) if AppConfig.first is nil
ap = AppConfig.first
return val unless ap
ap.send(prop)
end

def self.get(prop, val = false)
# alias for semantics
AppConfig.check(prop, val)
end
end
3 changes: 1 addition & 2 deletions app/models/user.rb
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,7 @@ class User < ActiveRecord::Base

# ------- validations -------- #
def skip_phone_validation?
return true unless AppConfig.first
return true unless AppConfig.first.require_phone
return true unless AppConfig.check(:require_phone)
return true if missing_phone
!@csv_import.nil?
end
Expand Down
2 changes: 1 addition & 1 deletion app/views/devise/sessions/new.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<div class="row">
<div class="col-md-offset-2 col-md-10">
<%= f.button :submit, 'Sign in' %>
<% if AppConfig.first.enable_new_users %>
<% if AppConfig.check(:enable_new_users) %>
<%= link_to 'Register', new_user_path, class: 'btn btn-default' %>
<% end %>
<%= link_to 'Forgot your password?', new_password_path(resource_name), class: 'btn btn-default' %>
Expand Down
2 changes: 1 addition & 1 deletion app/views/reservations/_index_nav.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<%= render partial: 'index_nav_tab', locals: {filter: :requested, text: 'Requested'} %>
<%= render partial: 'index_nav_tab', locals: {filter: :checked_out, text: 'Checked Out'} %>
<%= render partial: 'index_nav_tab', locals: {filter: :overdue, text: 'Overdue'} %>
<% unless AppConfig.first.res_exp_time %>
<% unless AppConfig.check(:res_exp_time) %>
<%= render partial: 'index_nav_tab', locals: {filter: :missed, text: 'Missed'} %>
<% end %>
<%= render partial: 'index_nav_tab', locals: {filter: :returned, text: 'Returned'} %>
Expand Down
2 changes: 1 addition & 1 deletion app/views/users/_form.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<%= f.input :first_name %>
<%= f.input :last_name %>
<%= f.input :nickname %>
<% if AppConfig.first.require_phone %>
<% if AppConfig.check(:require_phone) %>
<%= f.input :phone, required: true, hint: 'Format like (555) 555-5555' %>
<% else %>
<%= f.input :phone, hint: 'Format like (555) 555-5555' %>
Expand Down

0 comments on commit be799db

Please sign in to comment.