teams_controller.rb revision d62eba79f306957dd89ea9d3313600e98e2a8beb
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd#
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd# Displays all teams of the current users and creates new ones.
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd#
855892326cdb610d90dcf860a8d2cb05e2f8fddfndclass TeamsController < InheritedResources::Base
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd before_filter :authenticate_user!
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd before_filter :check_team_admin!, :only => [:edit, :update, :destroy]
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd def show
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd team_users = resource.team_users.joins(:user).order(:name).all
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd @permission_list = PermissionList.new [resource, :team_users],
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd :model => TeamUser,
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd :collection => team_users,
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd :editable => team_admin?,
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd :scope => User
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd end
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd def create
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd build_resource.admin_user = current_user
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd super
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd end
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd protected
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd def permission_list
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd raise NotImplementedError
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd # you need to override this method with something like:
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd # @permission_list ||= PermissionList.new ...
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd end
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd def check_team_admin!
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd unless team_admin?
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd flash[:error] = "You are not admin of this team!"
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd redirect_to resource_path
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd end
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd end
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd # is the current user admin for the current team?
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd helper_method :team_admin?
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd def team_admin?
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd @team_admin ||= resource.admin?(current_user)
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd end
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd def collection
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd @team_users ||= current_user.team_users
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd end
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd
855892326cdb610d90dcf860a8d2cb05e2f8fddfndend
855892326cdb610d90dcf860a8d2cb05e2f8fddfnd