app/controllers/caboose/roles_controller.rb in caboose-cms-0.9.194 vs app/controllers/caboose/roles_controller.rb in caboose-cms-0.9.195

- old
+ new

@@ -22,11 +22,11 @@ end # @route GET /admin/roles/:id def edit return unless user_is_allowed('roles', 'edit') - @role = Role.find(params[:id]) + @role = get_edit_role(params[:id], @site.id) end # @route POST /admin/roles def create return unless user_is_allowed('roles', 'add') @@ -54,11 +54,11 @@ # @route PUT /admin/roles/:id def update return unless user_is_allowed('roles', 'edit') resp = StdClass.new - role = Role.find(params[:id]) + role = get_edit_role(params[:id], @site.id) save = true params.each do |name,value| case name when "name" @@ -97,28 +97,30 @@ end # @route DELETE /admin/roles/:id def destroy return unless user_is_allowed('roles', 'delete') - @role = Role.find(params[:id]) + @role = get_edit_role(params[:id], @site.id) @role.destroy render json: { 'redirect' => '/admin/roles' } end # @route POST /admin/roles/:id/permissions/:permission_id def add_permission return if !user_is_allowed('roles', 'edit') - if !RolePermission.where(:role_id => params[:id], :permission_id => params[:permission_id], ).exists? - RolePermission.create(:role_id => params[:id], :permission_id => params[:permission_id]) + role = get_edit_role(params[:id], @site.id) + if role && !RolePermission.where(:role_id => role.id, :permission_id => params[:permission_id], ).exists? + RolePermission.create(:role_id => role.id, :permission_id => params[:permission_id]) end render :json => true end # @route DELETE /admin/roles/:id/permissions/:permission_id def remove_permission return if !user_is_allowed('roles', 'edit') - RolePermission.where(:role_id => params[:id], :permission_id => params[:permission_id]).destroy_all + role = get_edit_role(params[:id], @site.id) + RolePermission.where(:role_id => role.id, :permission_id => params[:permission_id]).destroy_all if role render :json => true end # @route_priority 1 # @route GET /admin/roles/options @@ -141,7 +143,18 @@ role.children.each do |kid| arr += add_role_options(kid, level + 1) end return arr end + + + private + + def get_edit_role(role_id, site_id) + role = Role.find(role_id) + return role if role && (role.site_id == site_id || logged_in_user.is_super_admin?) + return nil + end + + end end