Permalink
Browse files

generate-project-membership

# Granting read access to others

Now that we've got users owning their own projects, it seems wrong that any signed-up user can view any project. On the other hand it wouldn't make any sense to hide the project from everyone. What we need is a way for the project owner to grant others access.

We can model this with a ProjectMembership model that represents access for a specific user and project:

    $ hobo generate resource project_membership
  • Loading branch information...
bryanlarsen authored and iox committed Jun 3, 2013
1 parent b060468 commit 22555bae5acf2a0d7eafd0fd212799a7f07e8f0a
@@ -0,0 +1,7 @@
class ProjectMembershipsController < ApplicationController
hobo_model_controller
auto_actions :all
end
@@ -0,0 +1,28 @@
class ProjectMembership < ActiveRecord::Base
hobo_model # Don't put anything above this
fields do
timestamps
end
attr_accessible
# --- Permissions --- #
def create_permitted?
acting_user.administrator?
end
def update_permitted?
acting_user.administrator?
end
def destroy_permitted?
acting_user.administrator?
end
def view_permitted?(field)
true
end
end
@@ -0,0 +1,11 @@
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
# This model initially had no columns defined. If you add columns to the
# model remove the '{}' from the fixture names and add the columns immediately
# below each fixture, per the syntax in the comments below
#
one: {}
# column: value
#
two: {}
# column: value
@@ -0,0 +1,7 @@
require 'test_helper'
class ProjectMembershipsControllerTest < ActionController::TestCase
# test "the truth" do
# assert true
# end
end
@@ -0,0 +1,7 @@
require 'test_helper'
class ProjectMembershipTest < ActiveSupport::TestCase
# test "the truth" do
# assert true
# end
end

0 comments on commit 22555ba

Please sign in to comment.