mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-03-25 01:14:43 +00:00
Compare commits
2 Commits
61dc5e3cdd
...
6b5308360e
| Author | SHA1 | Date | |
|---|---|---|---|
| 6b5308360e | |||
| 9ca6572d9b |
@@ -1,6 +1,20 @@
|
||||
class Ability
|
||||
include CanCan::Ability
|
||||
|
||||
def school_permission_key_check(school_permission_key)
|
||||
# Can read school if tournament is public or a valid school permission key is provided
|
||||
can :read, School do |school|
|
||||
school.tournament.is_public ||
|
||||
(school_permission_key.present? && school.permission_key == school_permission_key)
|
||||
end
|
||||
|
||||
# Can manage school if a valid school permission key is provided
|
||||
# school_permission_key comes from app/controllers/application_controller.rb
|
||||
can :manage, School do |school|
|
||||
(school_permission_key.present? && school.permission_key == school_permission_key)
|
||||
end
|
||||
end
|
||||
|
||||
def initialize(user, school_permission_key = nil)
|
||||
if user
|
||||
# LOGGED IN USER PERMISSIONS
|
||||
@@ -46,6 +60,8 @@ class Ability
|
||||
school.tournament.delegates.map(&:user_id).include?(user.id) ||
|
||||
school.tournament.user_id == user.id
|
||||
end
|
||||
|
||||
school_permission_key_check(school_permission_key)
|
||||
else
|
||||
# NON LOGGED IN USER PERMISSIONS
|
||||
|
||||
@@ -58,18 +74,7 @@ class Ability
|
||||
|
||||
# SCHOOL PERMISSIONS
|
||||
# wrestler permissions are included with school permissions
|
||||
|
||||
# Can read school if tournament is public or a valid school permission key is provided
|
||||
can :read, School do |school|
|
||||
school.tournament.is_public ||
|
||||
(school_permission_key.present? && school.permission_key == school_permission_key)
|
||||
end
|
||||
|
||||
# Can read school if a valid school permission key is provided
|
||||
# school_permission_key comes from app/controllers/application_controller.rb
|
||||
can :manage, School do |school|
|
||||
(school_permission_key.present? && school.permission_key == school_permission_key)
|
||||
end
|
||||
school_permission_key_check(school_permission_key)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -25,9 +25,11 @@ docker-compose -f ${project_dir}/deploy/docker-compose-test.yml run --rm app bin
|
||||
docker-compose -f ${project_dir}/deploy/docker-compose-test.yml run --rm app bin/rails db:migrate:queue
|
||||
docker-compose -f ${project_dir}/deploy/docker-compose-test.yml run --rm app bin/rails db:migrate:cable
|
||||
|
||||
# Start all services (will start app and others, db is already running)
|
||||
echo "Stopping all services..."
|
||||
docker-compose -f ${project_dir}/deploy/docker-compose-test.yml down
|
||||
|
||||
echo "Starting application services..."
|
||||
docker-compose -f ${project_dir}/deploy/docker-compose-test.yml up -d
|
||||
docker-compose -f ${project_dir}/deploy/docker-compose-test.yml up --force-recreate --remove-orphans -d
|
||||
|
||||
# DISABLE_DATABASE_ENVIRONMENT_CHECK=1 is needed because this is "destructive" action on production
|
||||
echo Resetting the db with seed data
|
||||
|
||||
@@ -373,12 +373,26 @@ Some Guy
|
||||
success
|
||||
end
|
||||
|
||||
test "logged in user without delegation can get show page when using valid school_permission_key" do
|
||||
sign_in_non_owner
|
||||
@tournament.update(is_public: false)
|
||||
get_show(school_permission_key: @school_permission_key)
|
||||
success
|
||||
end
|
||||
|
||||
test "non logged in user cannot get show page when using invalid school_permission_key" do
|
||||
@tournament.update(is_public: false)
|
||||
get_show(school_permission_key: "invalid-key")
|
||||
redirect
|
||||
end
|
||||
|
||||
test "logged in user without delegation can edit school with valid school_permission_key" do
|
||||
sign_in_non_owner
|
||||
@tournament.update(is_public: false)
|
||||
get_edit(school_permission_key: @school_permission_key)
|
||||
success
|
||||
end
|
||||
|
||||
test "non logged in user can edit school with valid school_permission_key" do
|
||||
@tournament.update(is_public: false)
|
||||
get_edit(school_permission_key: @school_permission_key)
|
||||
|
||||
Reference in New Issue
Block a user