enju_circulation 0.0.40 → 0.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -142,7 +142,7 @@ en:
142
142
  extend: "Extend"
143
143
  returned: "Returned"
144
144
  my_checkout: "My checkout"
145
- remove_all: "Remove all checkout history"
145
+ remove_all_history: "Remove all checkout history"
146
146
  checkin:
147
147
  item_not_found: "Item not found."
148
148
  enter_item_identifier: "Enter item identifier."
@@ -140,7 +140,7 @@ ja:
140
140
  extend: "貸出期間の延長"
141
141
  returned: "返却済み"
142
142
  my_checkout: "自分の貸出"
143
- remove_all: "すべての貸出履歴を削除"
143
+ remove_all_history: "すべての貸出履歴を削除"
144
144
  checkin:
145
145
  item_not_found: "資料が見つかりません。"
146
146
  enter_item_identifier: "所蔵情報番号を入力してください。"
@@ -1,3 +1,3 @@
1
1
  module EnjuCirculation
2
- VERSION = "0.0.40"
2
+ VERSION = "0.0.41"
3
3
  end
@@ -411,6 +411,7 @@ describe CheckoutsController do
411
411
  describe "DELETE destroy" do
412
412
  before(:each) do
413
413
  @checkout = checkouts(:checkout_00003)
414
+ @returned_checkout = checkouts(:checkout_00012)
414
415
  end
415
416
 
416
417
  describe "When logged in as Administrator" do
@@ -420,16 +421,16 @@ describe CheckoutsController do
420
421
  delete :destroy, :id => @checkout.id
421
422
  end
422
423
 
423
- it "redirects to the checkouts list" do
424
+ it "should not destroy the checkout that is not checked in" do
424
425
  delete :destroy, :id => @checkout.id
425
- response.should redirect_to(user_checkouts_url(@checkout.user))
426
+ response.should be_forbidden
426
427
  end
427
428
 
428
- it "should destroy other user's checkout" do
429
- delete :destroy, :id => 3
430
- response.should redirect_to user_checkouts_url(@checkout.user)
429
+ it "redirects to the checkouts list" do
430
+ delete :destroy, :id => @returned_checkout.id
431
+ response.should redirect_to(user_checkouts_url(@returned_checkout.user))
431
432
  end
432
-
433
+
433
434
  it "should not destroy missing checkout" do
434
435
  delete :destroy, :id => 'missing'
435
436
  response.should be_missing
@@ -443,15 +444,14 @@ describe CheckoutsController do
443
444
  delete :destroy, :id => @checkout.id
444
445
  end
445
446
 
446
- it "redirects to the checkouts list" do
447
+ it "should not destroy the checkout that is not checked in" do
447
448
  delete :destroy, :id => @checkout.id
448
- response.should redirect_to(user_checkouts_url(@checkout.user))
449
+ response.should be_forbidden
449
450
  end
450
451
 
451
- it "should destroy other user's checkout" do
452
- user = Checkout.find(1).user
453
- delete :destroy, :id => 1
454
- response.should redirect_to user_checkouts_url(user)
452
+ it "redirects to the checkouts list" do
453
+ delete :destroy, :id => @returned_checkout.id
454
+ response.should redirect_to(user_checkouts_url(@returned_checkout.user))
455
455
  end
456
456
  end
457
457
 
@@ -468,7 +468,7 @@ describe CheckoutsController do
468
468
  end
469
469
 
470
470
  it "should destroy my checkout" do
471
- delete :destroy, :id => 3
471
+ delete :destroy, :id => 13
472
472
  response.should redirect_to user_checkouts_url(users(:user1))
473
473
  end
474
474
  end
@@ -9,7 +9,6 @@ class Ability
9
9
  CarrierTypeHasCheckoutType,
10
10
  CheckedItem,
11
11
  Checkin,
12
- Checkout,
13
12
  CheckoutStatHasManifestation,
14
13
  CheckoutStatHasUser,
15
14
  CheckoutType,
@@ -23,6 +22,10 @@ class Ability
23
22
  UserGroupHasCheckoutType,
24
23
  UserReserveStat
25
24
  ]
25
+ can [:read, :create, :update, :remove_all], Checkout
26
+ can :destroy, Checkout do |checkout|
27
+ checkout.checkin
28
+ end
26
29
  can [:read, :update], [
27
30
  CirculationStatus,
28
31
  LendingPolicy,
@@ -42,11 +45,14 @@ class Ability
42
45
  Basket,
43
46
  CheckedItem,
44
47
  Checkin,
45
- Checkout,
46
48
  ManifestationCheckoutStat,
47
49
  ManifestationReserveStat,
48
50
  Reserve
49
51
  ]
52
+ can [:read, :create, :update, :remove_all], Checkout
53
+ can :destroy, Checkout do |checkout|
54
+ checkout.checkin
55
+ end
50
56
  can [:read, :create, :update], UserCheckoutStat
51
57
  can [:read, :create, :update], UserReserveStat
52
58
  can :read, [
@@ -72,9 +78,12 @@ class Ability
72
78
  end
73
79
  when 'User'
74
80
  can [:index, :create, :remove_all], Checkout
75
- can [:show, :update, :destroy], Checkout do |checkout|
81
+ can [:show, :update], Checkout do |checkout|
76
82
  checkout.user == user
77
83
  end
84
+ can :destroy, Checkout do |checkout|
85
+ checkout.user == user && checkout.checkin
86
+ end
78
87
  can :index, Reserve
79
88
  can :create, Reserve do |reserve|
80
89
  user.user_number.present?
Binary file
Binary file
@@ -119,6 +119,30 @@ checkout_00011:
119
119
  due_date: <%= 180.days.ago.beginning_of_day %>
120
120
  created_at: 2007-09-08 01:39:03.210081 +09:00
121
121
  basket_id: 7
122
+ checkout_00012:
123
+ item_id: 6
124
+ updated_at: 2007-09-09 21:15:11.648996 +09:00
125
+ lock_version: 0
126
+ user_id: 3
127
+ id: 12
128
+ librarian_id: 1
129
+ checkout_renewal_count: 1
130
+ due_date: <%= 180.days.ago.beginning_of_day %>
131
+ created_at: 2007-09-08 01:39:03.210081 +09:00
132
+ basket_id: 8
133
+ checkin_id: 5
134
+ checkout_00013:
135
+ item_id: 7
136
+ updated_at: 2007-09-09 21:15:11.648996 +09:00
137
+ lock_version: 0
138
+ user_id: 3
139
+ id: 13
140
+ librarian_id: 1
141
+ checkout_renewal_count: 1
142
+ due_date: <%= 180.days.ago.beginning_of_day %>
143
+ created_at: 2007-09-08 01:39:03.210081 +09:00
144
+ basket_id: 8
145
+ checkin_id: 4
122
146
 
123
147
  # == Schema Information
124
148
  #
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enju_circulation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.40
4
+ version: 0.0.41
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -713,7 +713,6 @@ files:
713
713
  - spec/fixtures/user_has_roles.yml
714
714
  - spec/fixtures/user_reserve_stats.yml
715
715
  - spec/fixtures/users.yml
716
- - spec/models/basket_spec.rb
717
716
  - spec/models/carrier_type_has_checkout_type_spec.rb
718
717
  - spec/models/checked_item_spec.rb
719
718
  - spec/models/checkin_spec.rb
@@ -944,7 +943,6 @@ test_files:
944
943
  - spec/fixtures/user_has_roles.yml
945
944
  - spec/fixtures/user_reserve_stats.yml
946
945
  - spec/fixtures/users.yml
947
- - spec/models/basket_spec.rb
948
946
  - spec/models/carrier_type_has_checkout_type_spec.rb
949
947
  - spec/models/checked_item_spec.rb
950
948
  - spec/models/checkin_spec.rb
@@ -1,39 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- require 'spec_helper'
3
-
4
- describe Basket do
5
- fixtures :all
6
-
7
- it "should not create basket when user is not active" do
8
- Basket.create(:user => users(:user4)).id.should be_nil
9
- end
10
-
11
- it "should not check out items that are already checked out" do
12
- items(:item_00021).checkouts.count.should eq 0
13
- basket_1 = Basket.create(:user => users(:admin))
14
- checked_item_1 = basket_1.checked_items.new
15
- checked_item_1.item = items(:item_00011)
16
- checked_item_1.save
17
- basket_2 = Basket.create(:user => users(:user1))
18
- checked_item_2 = basket_2.checked_items.new
19
- checked_item_2.item = items(:item_00011)
20
- checked_item_2.save
21
- basket_1.basket_checkout(users(:librarian1))
22
- lambda{basket_2.basket_checkout(users(:librarian1))}.should raise_exception ActiveRecord::RecordInvalid
23
- items(:item_00011).checkouts.first.user.should eq users(:admin)
24
- end
25
- end
26
-
27
- # == Schema Information
28
- #
29
- # Table name: baskets
30
- #
31
- # id :integer not null, primary key
32
- # user_id :integer
33
- # note :text
34
- # type :string(255)
35
- # lock_version :integer default(0), not null
36
- # created_at :datetime
37
- # updated_at :datetime
38
- #
39
-