mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-01-29 19:51:00 -05:00
Limited plantings to member's own garden, and approved crops
This commit is contained in:
@@ -39,8 +39,8 @@ class PlantingsController < ApplicationController
|
||||
@planting = Planting.new('planted_at' => Time.zone.today)
|
||||
|
||||
# using find_by_id here because it returns nil, unlike find
|
||||
@crop = Crop.find_by(id: params[:crop_id]) || Crop.new
|
||||
@garden = Garden.find_by(id: params[:garden_id]) || Garden.new
|
||||
@crop = Crop.approved.find_by(id: params[:crop_id]) || Crop.new
|
||||
@garden = Garden.find_by(owner: current_member, id: params[:garden_id]) || Garden.new
|
||||
|
||||
respond_to do |format|
|
||||
format.html # new.html.erb
|
||||
|
||||
@@ -89,8 +89,8 @@ class Ability
|
||||
can :destroy, Garden, owner_id: member.id
|
||||
|
||||
can :create, Planting
|
||||
can :update, Planting, garden: { owner_id: member.id }
|
||||
can :destroy, Planting, garden: { owner_id: member.id }
|
||||
can :update, Planting, garden: { owner_id: member.id }, crop: { approval_status: 'approved' }
|
||||
can :destroy, Planting, garden: { owner_id: member.id }, crop: { approval_status: 'approved' }
|
||||
|
||||
can :create, Harvest
|
||||
can :update, Harvest, owner_id: member.id
|
||||
|
||||
@@ -62,13 +62,33 @@ describe PlantingsController do
|
||||
assigns(:crop).should be_a_new(Crop)
|
||||
end
|
||||
|
||||
it "picks up garden from params" do
|
||||
member = FactoryGirl.create(:member)
|
||||
it "picks up member's garden from params" do
|
||||
garden = FactoryGirl.create(:garden, owner: member)
|
||||
get :new, garden_id: garden.id
|
||||
assigns(:garden).should eq(garden)
|
||||
end
|
||||
|
||||
it "Doesn't display another member's garden on planting form" do
|
||||
member = FactoryGirl.create(:member) # over-riding member from login_member()
|
||||
garden = FactoryGirl.create(:garden, owner: member)
|
||||
get :new, garden_id: garden.id
|
||||
assigns(:garden).should_not eq(garden)
|
||||
end
|
||||
|
||||
it "Doesn't display un-approved crops on planting form" do
|
||||
crop = FactoryGirl.create(:crop, approval_status: 'pending')
|
||||
garden = FactoryGirl.create(:garden, owner: member)
|
||||
get :new, crop_id: crop.id
|
||||
assigns(:crop).should_not eq(crop)
|
||||
end
|
||||
|
||||
it "Doesn't display rejected crops on planting form" do
|
||||
crop = FactoryGirl.create(:crop, approval_status: 'rejected', reason_for_rejection: 'nope')
|
||||
garden = FactoryGirl.create(:garden, owner: member)
|
||||
get :new, crop_id: crop.id
|
||||
assigns(:crop).should_not eq(crop)
|
||||
end
|
||||
|
||||
it "doesn't die if no garden specified" do
|
||||
get :new, {}
|
||||
assigns(:garden).should be_a_new(Garden)
|
||||
|
||||
Reference in New Issue
Block a user