mirror of
https://github.com/ENSL/ensl.org.git
synced 2024-12-27 04:51:14 +00:00
72 lines
1.6 KiB
Ruby
72 lines
1.6 KiB
Ruby
|
class GroupsController < ApplicationController
|
||
|
before_filter :get_group, :except => [:index, :new, :create]
|
||
|
|
||
|
def index
|
||
|
@groups = Group.all
|
||
|
end
|
||
|
|
||
|
def show
|
||
|
end
|
||
|
|
||
|
def new
|
||
|
@group = Group.new
|
||
|
raise AccessError unless @group.can_create? cuser
|
||
|
end
|
||
|
|
||
|
def edit
|
||
|
@group.users.all
|
||
|
raise AccessError unless @group.can_update? cuser
|
||
|
end
|
||
|
|
||
|
def create
|
||
|
@group = Group.new params[:group]
|
||
|
@group.founder = cuser
|
||
|
raise AccessError unless @group.can_create? cuser
|
||
|
if @group.save
|
||
|
flash[:notice] = t(:groups_create)
|
||
|
redirect_to @group
|
||
|
else
|
||
|
render :action => "new"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def update
|
||
|
raise AccessError unless @group.can_update? cuser
|
||
|
if @group.update_attributes params[:group]
|
||
|
flash[:notice] = t(:groups_update)
|
||
|
redirect_to @group
|
||
|
else
|
||
|
render :action => "edit"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def destroy
|
||
|
raise AccessError unless @group.can_destroy? cuser
|
||
|
@group.destroy
|
||
|
redirect_to groups_url
|
||
|
end
|
||
|
|
||
|
def addUser
|
||
|
@user = User.first :conditions => {:username => params[:username]}
|
||
|
raise AccessError unless @group.can_update? cuser
|
||
|
raise Error, t(:duplicate_user) if @group.users.include? @user
|
||
|
|
||
|
@group.users << @user if @user
|
||
|
redirect_to edit_group_url(@group, :groupTab => "groupTabMembers")
|
||
|
end
|
||
|
|
||
|
def delUser
|
||
|
@user = User.find params[:id2]
|
||
|
raise AccessError unless @group.can_update? cuser
|
||
|
|
||
|
@group.users.delete @user
|
||
|
redirect_to edit_group_url(@group, :groupTab => "groupTabMembers")
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def get_group
|
||
|
@group = Group.find params[:id]
|
||
|
end
|
||
|
end
|