Sha256: 1736151627ce9877377bf8be4af5f807907aadc4aa87061292cbe13ebce6e868

Contents?: true

Size: 1.78 KB

Versions: 2

Compression:

Stored size: 1.78 KB

Contents

class Admin::GroupsController < Admin::ResourceController
  model_class Group

  only_allow_access_to :add_page, :add_member, :remove_member, :new, :create, :update, :edit, :remove, :index,
    :when => [:admin],
    :denied_url => { :controller => 'page', :action => 'index' },
    :denied_message => 'You must have administrator privileges to perform this action.'

  def add_page
    page = Page.find params[:page_id]

    begin
      group = Group.find params[:group_id]
      page.group = group
      page.save
      flash[:notice] = "Group for \"#{page.title}\" set to #{group.name}."

    rescue ::ActiveRecord::RecordNotFound
      page.group = nil
      page.save
      flash[:notice] = "Group removed from \"#{page.title}\"."

    ensure
      redirect_to :controller => 'admin/page', :action => 'index'
    end
  end

  def add_member
    if request.post?
      @group = Group.find params[:id]
      @user = User.find params[:user_id]

      @group.users << @user
      @group.save
      flash[:notice] = "#{@user.name} added to #{@group.name}."
    end
  rescue ::ActiveRecord::RecordNotFound
    if @group.nil?
      flash[:error] = "Group not found for that id."
    elsif @user.nil?
      flash[:error] = "Please select a user to add to #{@group.name}."
    end
  ensure
    redirect_to admin_groups_url
  end

  def remove_member
    @group = Group.find params[:group_id]
    @user = User.find params[:id]
    
    if request.delete?
      @group.users.delete @user
      @group.save
      flash[:notice] = "#{@user.name} removed from #{@group.name}."
      redirect_to admin_groups_url
    end
  rescue
    if @group.nil?
      flash[:error] = "Group not found for that group id."
    elsif @user.nil?
      flash[:error] = "User not found for that user id."
    end
    redirect_to admin_groups_url
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
radiant-page_group_permissions-extension-1.0.1 app/controllers/admin/groups_controller.rb
radiant-page_group_permissions-extension-1.0.0 app/controllers/admin/groups_controller.rb