From a803d005a30850bbbc930f93e77fa5f0f8a221d5 Mon Sep 17 00:00:00 2001 From: benji Date: Wed, 11 Jan 2017 14:34:17 +0100 Subject: [PATCH] Authorize creating requests for users, and add links for pennings to zeus requests --- app/controllers/transactions_controller.rb | 1 + app/models/user.rb | 2 +- app/models/user_ability.rb | 2 +- app/views/application/_menu.html.haml | 4 ++++ 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/controllers/transactions_controller.rb b/app/controllers/transactions_controller.rb index fe4cdc3..d4d1a45 100644 --- a/app/controllers/transactions_controller.rb +++ b/app/controllers/transactions_controller.rb @@ -19,6 +19,7 @@ class TransactionsController < ApplicationController end else request = Request.new @transaction.info + authorize!(:create, request) if request.save render json: request, status: :created else diff --git a/app/models/user.rb b/app/models/user.rb index 28dfa11..df5aa07 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -47,7 +47,7 @@ class User < ActiveRecord::Base end def self.zeus - find_or_create_by name: 'Zeus' + @@zeus ||= find_or_create_by name: 'Zeus' end end diff --git a/app/models/user_ability.rb b/app/models/user_ability.rb index 49fe98b..1574f44 100644 --- a/app/models/user_ability.rb +++ b/app/models/user_ability.rb @@ -6,7 +6,7 @@ class UserAbility can :manage, :all if user.penning? can :read, user, id: user.id - can :manage, Request, user_id: user.id + can :manage, Request, creditor_id: user.id can :manage, Notification, user_id: user.id can :create, Transaction do |t| t.debtor == user && t.amount <= Rails.application.config.maximum_amount diff --git a/app/views/application/_menu.html.haml b/app/views/application/_menu.html.haml index c5d9fc2..09fe0ac 100644 --- a/app/views/application/_menu.html.haml +++ b/app/views/application/_menu.html.haml @@ -7,6 +7,10 @@ - if current_user.penning %li.pure-menu-item =link_to "Zeus", User.zeus, class: "pure-menu-link" + %li.pure-menu-item + = link_to "Requests (#{User.zeus.incoming_requests.size})", user_requests_path(User.zeus), class: 'pure-menu-link' + %li.pure-menu-item + = link_to "Notifications (#{User.zeus.notifications.size})", user_notifications_path(User.zeus), class: 'pure-menu-link' %li.pure-menu-item = link_to "Requests (#{current_user.incoming_requests.size})", user_requests_path(current_user), class: 'pure-menu-link' %li.pure-menu-item