Stub project access control for users

This commit is contained in:
Jeffrey Hardy
2024-09-17 15:10:18 -04:00
parent 5585f74e81
commit 995f937eef
5 changed files with 47 additions and 1 deletions
@@ -0,0 +1,12 @@
module ProjectScoped
extend ActiveSupport::Concern
included do
before_action :set_project
end
private
def set_project
@project = Current.user.projects.find(params[:project_id])
end
end
@@ -0,0 +1,24 @@
class Projects::UsersController < ApplicationController
include ProjectScoped
before_action :set_user, except: %i[ index ]
def index
@users = @project.users
end
def create
@project.accesses.create_or_find_by!(user: @user)
redirect_to project_users_url(@project)
end
def destroy
@project.accesses.destroy_by(user: @user)
redirect_to project_users_url(@project)
end
private
def set_user
@user = Current.account.users.find(params[:id])
end
end
+1
View File
@@ -9,6 +9,7 @@ class User < ApplicationRecord
has_many :accesses, dependent: :destroy
has_many :projects, through: :accesses
has_many :bubbles, through: :projects
normalizes :email_address, with: ->(value) { value.strip.downcase }
+7
View File
@@ -0,0 +1,7 @@
<h1>Users on <%= @project.name %></h1>
<ul>
<% @users.each do |user| %>
<li><%= user.name %> <%= link_to "X", project_user_path(@project, user), data: { turbo_method: :delete } %></li>
<% end %>
</ul>
+3 -1
View File
@@ -3,7 +3,9 @@ Rails.application.routes.draw do
resource :session
resources :projects
resources :projects do
resources :users, controller: "projects/users"
end
resources :bubbles do
resource :image, controller: "bubbles/images"