--- src/app/controllers/application_controller.rb | 7 ++++++ src/app/controllers/catalog_entries_controller.rb | 1 + src/app/controllers/deployables_controller.rb | 25 +++++++++++++++++++++ src/app/controllers/permissions_controller.rb | 5 ++- src/app/views/catalog_entries/show.html.haml | 8 ++++-- src/app/views/permissions/_permissions.html.haml | 7 +++-- src/config/routes.rb | 2 + src/features/catalog_entries.feature | 2 +- 8 files changed, 48 insertions(+), 9 deletions(-) create mode 100644 src/app/controllers/deployables_controller.rb
diff --git a/src/app/controllers/application_controller.rb b/src/app/controllers/application_controller.rb index 56f59d5..0cf9378 100644 --- a/src/app/controllers/application_controller.rb +++ b/src/app/controllers/application_controller.rb @@ -282,6 +282,13 @@ class ApplicationController < ActionController::Base %w[asc desc].include?(params[:order_dir]) ? params[:order_dir] : "asc" end
+ def add_permissions_inline(perm_obj, path_prefix = "") + @permission_object = perm_obj + @path_prefix = path_prefix + @roles = Role.find_all_by_scope(@permission_object.class.name) + set_permissions_header + end + def add_permissions_tab(perm_obj, path_prefix = "") @path_prefix = path_prefix if "permissions" == params[:details_tab] diff --git a/src/app/controllers/catalog_entries_controller.rb b/src/app/controllers/catalog_entries_controller.rb index 7b6940f..a8adbb6 100644 --- a/src/app/controllers/catalog_entries_controller.rb +++ b/src/app/controllers/catalog_entries_controller.rb @@ -56,6 +56,7 @@ class CatalogEntriesController < ApplicationController save_breadcrumb(catalog_catalog_entry_path(@catalog_entry.catalog, @catalog_entry), @catalog_entry.deployable.name) @providers = Provider.all @catalogs_options = Catalog.all.map {|c| [c.name, c.id]} + add_permissions_inline(@catalog_entry.deployable) end
def create diff --git a/src/app/controllers/deployables_controller.rb b/src/app/controllers/deployables_controller.rb new file mode 100644 index 0000000..6e96439 --- /dev/null +++ b/src/app/controllers/deployables_controller.rb @@ -0,0 +1,25 @@ +# +# Copyright (C) 2011 Red Hat, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. A copy of the GNU General Public License is +# also available at http://www.gnu.org/copyleft/gpl.html. + +class DeployablesController < ApplicationController + def show + flash.keep + @deployable = Deployable.find(params[:id]) + redirect_to catalog_entry_path(@deployable.catalog_entries.first) + end +end diff --git a/src/app/controllers/permissions_controller.rb b/src/app/controllers/permissions_controller.rb index 12e3ed6..995b467 100644 --- a/src/app/controllers/permissions_controller.rb +++ b/src/app/controllers/permissions_controller.rb @@ -180,6 +180,7 @@ class PermissionsController < ApplicationController obj_type = params[:permission_object_type] id = params[:permission_object_id] @path_prefix = params[:path_prefix] + @use_tabs = params[:use_tabs] unless obj_type or id @permission_object = BasePermissionObject.general_permission_scope end @@ -191,8 +192,8 @@ class PermissionsController < ApplicationController else @return_path = send("#{@path_prefix}polymorphic_path", @permission_object, - :details_tab => :permissions, - :only_tab => true) + @use_tabs == "yes" ? {:details_tab => :permissions, + :only_tab => true} : {}) end require_privilege(required_role, @permission_object) end diff --git a/src/app/views/catalog_entries/show.html.haml b/src/app/views/catalog_entries/show.html.haml index 5162796..177d494 100644 --- a/src/app/views/catalog_entries/show.html.haml +++ b/src/app/views/catalog_entries/show.html.haml @@ -51,6 +51,8 @@ = @catalog_entry.catalog.pool.pool_family.name
- %section.roles - %header - %h2= t('.roles') + - if check_privilege(Privilege::PERM_VIEW,@permission_object) + %section.roles + %header + %h2= t('users.users') + = render :partial => 'permissions/permissions' diff --git a/src/app/views/permissions/_permissions.html.haml b/src/app/views/permissions/_permissions.html.haml index 55c6d9e..8846dd8 100644 --- a/src/app/views/permissions/_permissions.html.haml +++ b/src/app/views/permissions/_permissions.html.haml @@ -1,11 +1,12 @@ - content_for :form_header do - if check_privilege(Privilege::PERM_SET) - %li= link_to t('permissions.form.grant_access'), new_permission_path(:permission_object_type => @permission_object.class.name, :permission_object_id => @permission_object.id, :path_prefix => @path_prefix), { :class => 'button primary', :id => 'new_permission_button'} + %li= link_to t('permissions.form.grant_access'), new_permission_path(:permission_object_type => @permission_object.class.name, :permission_object_id => @permission_object.id, :path_prefix => @path_prefix, :use_tabs => @use_tabs ? @use_tabs : (@tabs ? 'yes' : 'no')), { :class => 'button primary', :id => 'new_permission_button'} %li= restful_submit_tag t('permissions.revoke_access'), "destroy", multi_destroy_permissions_path, 'DELETE', :id => 'revoke_button', :class => 'button danger' - %li= restful_submit_tag t('edit'), "multi_update", multi_update_permissions_path, 'POST', :id => 'edit_button', :class => 'hidden' + %li= restful_submit_tag t('edit'), "multi_update", multi_update_permissions_path, 'POST', :id => 'perm_edit_button', :class => 'hidden' = hidden_field_tag :permission_object_type, @permission_object.class.name = hidden_field_tag :permission_object_id, @permission_object.id = hidden_field_tag :path_prefix, @path_prefix + = hidden_field_tag :use_tabs, @use_tabs ? @use_tabs : (@tabs ? 'yes' : 'no')
= filter_table(@permission_list_header, @permission_object.permissions) do |permission| %tr{:class => cycle('nostripe','stripe')} @@ -19,7 +20,7 @@ - if check_privilege(Privilege::PERM_SET) %td= select_tag "permission_role_selected[]", options_for_select(@roles.map {|r| [ r.name, "#{permission.id},#{r.id}" ] }, :selected => "#{permission.id},#{permission.role.id}", :disabled => @permission_object.permissions.where(["user_id = ? and role_id != ?", permission.user_id, permission.role_id]).collect {|p| "#{permission.id},#{p.role.id}"}), :id => "permission_role_selected_#{permission.id}" :javascript - $("#permission_role_selected_#{permission.id}").change(function () { $("#edit_button").click(); } ); + $("#permission_role_selected_#{permission.id}").change(function () { $("#perm_edit_button").click(); } );
-else %td= permission.role.name diff --git a/src/config/routes.rb b/src/config/routes.rb index 81c5112..515d6b7 100644 --- a/src/config/routes.rb +++ b/src/config/routes.rb @@ -210,6 +210,8 @@ Conductor::Application.routes.draw do
resources :catalog_entries
+ resources :deployables + resources :images do collection do post 'edit_xml' diff --git a/src/features/catalog_entries.feature b/src/features/catalog_entries.feature index 80893fa..d950c50 100644 --- a/src/features/catalog_entries.feature +++ b/src/features/catalog_entries.feature @@ -40,7 +40,7 @@ Feature: Manage Catalog Entries And I should see "Image" And I should see "Build" And I should see "Catalogs" - And I should see "Roles" + And I should see "Users"
Scenario: Launch a deployment Given there is a "default" catalog
On Tue, Nov 29, 2011 at 11:57:57AM -0500, Scott Seago wrote:
src/app/controllers/application_controller.rb | 7 ++++++ src/app/controllers/catalog_entries_controller.rb | 1 + src/app/controllers/deployables_controller.rb | 25 +++++++++++++++++++++ src/app/controllers/permissions_controller.rb | 5 ++- src/app/views/catalog_entries/show.html.haml | 8 ++++-- src/app/views/permissions/_permissions.html.haml | 7 +++-- src/config/routes.rb | 2 + src/features/catalog_entries.feature | 2 +- 8 files changed, 48 insertions(+), 9 deletions(-) create mode 100644 src/app/controllers/deployables_controller.rb
ACK.
I had two nits, but it turns out that neither is related to your patch. I'm mentioning them here anyway before going to look at them, but neither seems to be caused by your patch, so push away.
Both are incidentally shown in this screenshot: http://lts.cr/BKoD
The first is that the flash message is ultra-confusing: "These User Roles were modified: admin Deployable User from Deployable Owner"
It's not necessarily incorrect, it's just that mechnanically stringing together various fragments results in something that's confusing in English and might make even less sense upon translation.
The other is that the "Launch" button is all messed up, in both Chrome and Firefox.
But again, these aren't actually caused by your patch, so ACK. I'm going to take a quick gander at fixing these two tangential nits now...
-- Matt
On 11/29/2011 03:54 PM, Matt Wagner wrote:
On Tue, Nov 29, 2011 at 11:57:57AM -0500, Scott Seago wrote:
src/app/controllers/application_controller.rb | 7 ++++++ src/app/controllers/catalog_entries_controller.rb | 1 + src/app/controllers/deployables_controller.rb | 25 +++++++++++++++++++++ src/app/controllers/permissions_controller.rb | 5 ++- src/app/views/catalog_entries/show.html.haml | 8 ++++-- src/app/views/permissions/_permissions.html.haml | 7 +++-- src/config/routes.rb | 2 + src/features/catalog_entries.feature | 2 +- 8 files changed, 48 insertions(+), 9 deletions(-) create mode 100644 src/app/controllers/deployables_controller.rb
ACK.
I had two nits, but it turns out that neither is related to your patch. I'm mentioning them here anyway before going to look at them, but neither seems to be caused by your patch, so push away.
Both are incidentally shown in this screenshot: http://lts.cr/BKoD
The first is that the flash message is ultra-confusing: "These User Roles were modified: admin Deployable User from Deployable Owner"
It's not necessarily incorrect, it's just that mechnanically stringing together various fragments results in something that's confusing in English and might make even less sense upon translation.
The other is that the "Launch" button is all messed up, in both Chrome and Firefox.
But again, these aren't actually caused by your patch, so ACK. I'm going to take a quick gander at fixing these two tangential nits now...
-- Matt
Pushed the patch.
Scott
aeolus-devel@lists.fedorahosted.org