Add pickups role
This commit is contained in:
parent
4c41a99fde
commit
ac11ba1cc1
14 changed files with 42 additions and 15 deletions
BIN
app/assets/images/role-pickups.png
Normal file
BIN
app/assets/images/role-pickups.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 446 B |
|
|
@ -68,9 +68,11 @@ class ApplicationController < ActionController::Base
|
|||
when "admin" then current_user.role_admin?
|
||||
when "finance" then current_user.role_finance?
|
||||
when "article_meta" then current_user.role_article_meta?
|
||||
when "pickups" then current_user.role_pickups?
|
||||
when "suppliers" then current_user.role_suppliers?
|
||||
when "orders" then current_user.role_orders?
|
||||
when "finance_or_orders" then (current_user.role_finance? || current_user.role_orders?)
|
||||
when "pickups_or_orders" then (current_user.role_pickups? || current_user.role_orders?)
|
||||
when "any" then true # no role required
|
||||
else false # any unknown role will always fail
|
||||
end
|
||||
|
|
@ -81,19 +83,23 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def authenticate_admin
|
||||
authenticate('admin')
|
||||
end
|
||||
|
||||
|
||||
def authenticate_finance
|
||||
authenticate('finance')
|
||||
end
|
||||
|
||||
|
||||
def authenticate_article_meta
|
||||
authenticate('article_meta')
|
||||
end
|
||||
|
||||
def authenticate_pickups
|
||||
authenticate('pickups')
|
||||
end
|
||||
|
||||
def authenticate_suppliers
|
||||
authenticate('suppliers')
|
||||
end
|
||||
|
|
@ -106,6 +112,10 @@ class ApplicationController < ActionController::Base
|
|||
authenticate('finance_or_orders')
|
||||
end
|
||||
|
||||
def authenticate_pickups_or_orders
|
||||
authenticate('pickups_or_orders')
|
||||
end
|
||||
|
||||
# checks if the current_user is member of given group.
|
||||
# if fails the user will redirected to startpage
|
||||
def authenticate_membership_or_admin(group_id = params[:id])
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@
|
|||
# Normal ordering actions of members of order groups is handled by the OrderingController.
|
||||
class OrdersController < ApplicationController
|
||||
|
||||
before_filter :authenticate_orders
|
||||
before_filter :authenticate_pickups_or_orders
|
||||
before_filter :authenticate_orders, except: [:receive, :receive_on_order_article_create, :receive_on_order_article_update, :show]
|
||||
before_filter :remove_empty_article, only: [:create, :update]
|
||||
|
||||
# List orders
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
class PickupsController < ApplicationController
|
||||
|
||||
before_filter :authenticate_pickups
|
||||
|
||||
def index
|
||||
@orders = Order.finished_not_closed.order('pickup DESC').group_by { |o| o.pickup }
|
||||
end
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ module ApplicationHelper
|
|||
end
|
||||
|
||||
def format_roles(record, icon=false)
|
||||
roles = %w(suppliers article_meta orders finance invoices admin)
|
||||
roles = %w(suppliers article_meta orders pickups finance invoices admin)
|
||||
roles.select! {|role| record.send "role_#{role}?"}
|
||||
names = Hash[roles.map{|r| [r, I18n.t("helpers.application.role_#{r}")]}]
|
||||
if icon
|
||||
|
|
|
|||
|
|
@ -159,17 +159,22 @@ class User < ActiveRecord::Base
|
|||
def role_article_meta?
|
||||
groups.detect {|group| group.role_article_meta?}
|
||||
end
|
||||
|
||||
|
||||
# Checks the suppliers role
|
||||
def role_suppliers?
|
||||
groups.detect {|group| group.role_suppliers?}
|
||||
end
|
||||
|
||||
|
||||
# Checks the invoices role
|
||||
def role_pickups?
|
||||
groups.detect {|group| group.role_pickups?}
|
||||
end
|
||||
|
||||
# Checks the orders role
|
||||
def role_orders?
|
||||
groups.detect {|group| group.role_orders?}
|
||||
end
|
||||
|
||||
|
||||
def ordergroup_name
|
||||
ordergroup ? ordergroup.name : I18n.t('model.user.no_ordergroup')
|
||||
end
|
||||
|
|
@ -178,7 +183,7 @@ class User < ActiveRecord::Base
|
|||
def member_of?(group)
|
||||
group.users.exists?(self.id)
|
||||
end
|
||||
|
||||
|
||||
#Returns an array with the users groups (but without the Ordergroups -> because tpye=>"")
|
||||
def member_of_groups()
|
||||
self.groups.where(type: '')
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
= f.input :role_suppliers
|
||||
= f.input :role_article_meta
|
||||
= f.input :role_orders
|
||||
= f.input :role_pickups
|
||||
= f.input :role_finance
|
||||
= f.input :role_invoices
|
||||
= f.input :role_admin
|
||||
|
|
|
|||
|
|
@ -24,10 +24,7 @@
|
|||
%tr
|
||||
%td
|
||||
= check_box_tag "orders[]", order.id, true #, style: 'float:left'
|
||||
- if current_user.role_orders?
|
||||
= link_to order.name, order_path(order)
|
||||
- else
|
||||
= order.name
|
||||
= link_to order.name, order_path(order)
|
||||
%td= truncate order.note
|
||||
%td{style:'white-space:nowrap'}
|
||||
= render 'shared/order_download_button', order: order, klass: 'btn-small'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue