Change authorization to accept other than category
This commit is contained in:
parent
0c208d0020
commit
da1d70efcb
|
@ -5,27 +5,26 @@ class Admin::AuthorizationsController < OrbitBackendController
|
||||||
def index
|
def index
|
||||||
@module_apps ||= ModuleApp.where(is_authorizable: true).order_by([:title, :asc])
|
@module_apps ||= ModuleApp.where(is_authorizable: true).order_by([:title, :asc])
|
||||||
if @module_apps && @module_apps.include?(@module_app)
|
if @module_apps && @module_apps.include?(@module_app)
|
||||||
|
if @type
|
||||||
case @type
|
case @type
|
||||||
when 'category'
|
when 'category', 'approval'
|
||||||
type = 'submit'
|
if @module_app.has_category
|
||||||
when 'approval'
|
@objects = @module_app.categories
|
||||||
type = 'fact_check'
|
else
|
||||||
|
@error = t(:no_category)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
@objects = @klass.all
|
||||||
|
end
|
||||||
|
unless @objects.blank?
|
||||||
|
@object ||= @objects.first
|
||||||
|
@users = @object.get_object_auth_by_title("#{@type}_#{@module_app.key}").auth_users
|
||||||
|
else
|
||||||
|
@error = t(:no_data)
|
||||||
|
end
|
||||||
else
|
else
|
||||||
@users = @module_app.managing_users
|
@users = @module_app.managing_users
|
||||||
end
|
end
|
||||||
if type
|
|
||||||
if @module_app.has_category
|
|
||||||
@categories = @module_app.categories
|
|
||||||
unless @categories.blank?
|
|
||||||
@category ||= @categories.first
|
|
||||||
@users = @category.get_object_auth_by_title("#{type}_#{@module_app.key}").auth_users
|
|
||||||
else
|
|
||||||
@error = t(:no_category)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
@error = t(:no_category)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elsif @module_apps
|
elsif @module_apps
|
||||||
@module_app = @module_apps.first
|
@module_app = @module_apps.first
|
||||||
redirect_to admin_authorizations_url(@module_app.key)
|
redirect_to admin_authorizations_url(@module_app.key)
|
||||||
|
@ -36,21 +35,15 @@ class Admin::AuthorizationsController < OrbitBackendController
|
||||||
|
|
||||||
def add(users)
|
def add(users)
|
||||||
unless users.blank?
|
unless users.blank?
|
||||||
case @type
|
if @type
|
||||||
when 'category'
|
if @object
|
||||||
type = 'submit'
|
object_auth = @object.get_object_auth_by_title("#{@type}_#{@module_app.key}")
|
||||||
when 'approval'
|
|
||||||
type = 'fact_check'
|
|
||||||
else
|
|
||||||
add_managers(users) unless users.blank?
|
|
||||||
end
|
|
||||||
if type
|
|
||||||
if @category
|
|
||||||
object_auth = @category.get_object_auth_by_title("#{type}_#{@module_app.key}")
|
|
||||||
add_users_to_object_auth(object_auth, users)
|
add_users_to_object_auth(object_auth, users)
|
||||||
else
|
else
|
||||||
@error = t(:no_category)
|
@error = t(:no_data)
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
add_managers(users) unless users.blank?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@users = users
|
@users = users
|
||||||
|
@ -74,9 +67,8 @@ class Admin::AuthorizationsController < OrbitBackendController
|
||||||
def modal_select
|
def modal_select
|
||||||
existing_users = User.find(params[:ids]) rescue []
|
existing_users = User.find(params[:ids]) rescue []
|
||||||
roles = Role.all
|
roles = Role.all
|
||||||
case @type
|
if @type
|
||||||
when 'category', 'approval'
|
@object_id = @object.id if @object
|
||||||
@category_id = @category.id if @category
|
|
||||||
@sorted_users = roles.inject({}) do |users, role|
|
@sorted_users = roles.inject({}) do |users, role|
|
||||||
users[role] = role.users.where(admin: false).not_guest_user - existing_users - @module_app.managing_users
|
users[role] = role.users.where(admin: false).not_guest_user - existing_users - @module_app.managing_users
|
||||||
users
|
users
|
||||||
|
@ -92,18 +84,16 @@ class Admin::AuthorizationsController < OrbitBackendController
|
||||||
def remove_users
|
def remove_users
|
||||||
@users = User.find(params[:ids]) rescue []
|
@users = User.find(params[:ids]) rescue []
|
||||||
unless @users.blank?
|
unless @users.blank?
|
||||||
case @type
|
if @type
|
||||||
when 'category'
|
if @object
|
||||||
type = 'submit'
|
object_auth = @object.get_object_auth_by_title("#{@type}_#{@module_app.key}")
|
||||||
when 'approval'
|
remove_users_form_object_auth(object_auth, @users)
|
||||||
type = 'fact_check'
|
else
|
||||||
|
@error = t(:no_data)
|
||||||
|
end
|
||||||
else
|
else
|
||||||
remove_managers(@users)
|
remove_managers(@users)
|
||||||
end
|
end
|
||||||
if type
|
|
||||||
object_auth = @category.get_object_auth_by_title("#{type}_#{@module_app.key}")
|
|
||||||
remove_users_form_object_auth(object_auth, @users)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
render 'admin/authorizations/remove_users'
|
render 'admin/authorizations/remove_users'
|
||||||
end
|
end
|
||||||
|
@ -144,8 +134,11 @@ class Admin::AuthorizationsController < OrbitBackendController
|
||||||
|
|
||||||
def setup_vars
|
def setup_vars
|
||||||
@module_app = ModuleApp.first(conditions: {:key => params[:module]} ) if params[:module]
|
@module_app = ModuleApp.first(conditions: {:key => params[:module]} ) if params[:module]
|
||||||
@category = Category.find(params[:id]) rescue nil
|
@type = params[:type].underscore if params[:type]
|
||||||
@type = params[:type]
|
if @type
|
||||||
|
@klass = @type.classify.constantize
|
||||||
|
@object = @klass.find(params[:id]) rescue nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def user_is_manager?
|
def user_is_manager?
|
||||||
|
|
|
@ -410,7 +410,7 @@ class ApplicationController < ActionController::Base
|
||||||
if check_permission(:manager)
|
if check_permission(:manager)
|
||||||
object.create_user_id != current_user.id
|
object.create_user_id != current_user.id
|
||||||
else
|
else
|
||||||
!object.category.authed_users('fact_check').include?(current_user) rescue false
|
!object.category.authed_users("approval_#{@module_app.key}").include?(current_user) rescue false
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
false
|
false
|
||||||
|
|
|
@ -12,13 +12,13 @@ module OrbitBackendHelper
|
||||||
|
|
||||||
def show_form_status_field(object)
|
def show_form_status_field(object)
|
||||||
#by_object = (!object.is_expired? and object.is_pending?)
|
#by_object = (!object.is_expired? and object.is_pending?)
|
||||||
by_user = ((object.category.authed_users("fact_check_#{@module_app.key}").include?(current_user) rescue nil) or is_manager? or is_admin?)
|
by_user = ((object.category.authed_users("approval_#{@module_app.key}").include?(current_user) rescue nil) or is_manager? or is_admin?)
|
||||||
by_user
|
by_user
|
||||||
end
|
end
|
||||||
|
|
||||||
def show_approval_link(object)
|
def show_approval_link(object)
|
||||||
by_object = (!object.is_expired? and object.is_pending?)
|
by_object = (!object.is_expired? and object.is_pending?)
|
||||||
by_user = ((object.category.authed_users("fact_check_#{@module_app.key}").include?(current_user) rescue nil) or is_manager? or is_admin?)
|
by_user = ((object.category.authed_users("approval_#{@module_app.key}").include?(current_user) rescue nil) or is_manager? or is_admin?)
|
||||||
by_object and by_user
|
by_object and by_user
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -279,6 +279,10 @@ module OrbitBackendHelper
|
||||||
if show_approval_link(object)
|
if show_approval_link(object)
|
||||||
content_tag :li, link_to(t(quick[:translation] || :approval_), eval("#{quick[:link]}('#{object.id}')"), class: "preview_trigger #{quick[:class]}")
|
content_tag :li, link_to(t(quick[:translation] || :approval_), eval("#{quick[:link]}('#{object.id}')"), class: "preview_trigger #{quick[:class]}")
|
||||||
end
|
end
|
||||||
|
when 'authorization'
|
||||||
|
if authorization
|
||||||
|
content_tag :li, link_to(t(quick[:translation] || :authorization_), eval("#{quick[:link]}"), class: "preview_trigger #{quick[:class]}")
|
||||||
|
end
|
||||||
when 'edit'
|
when 'edit'
|
||||||
if authorization || approvable
|
if authorization || approvable
|
||||||
content_tag :li, link_to(t(quick[:translation] || :edit), eval("#{quick[:link]}('#{object.id}')"), class: quick[:class])
|
content_tag :li, link_to(t(quick[:translation] || :edit), eval("#{quick[:link]}('#{object.id}')"), class: quick[:class])
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<ul class="nav nav-pills nav-stacked">
|
<ul class="nav nav-pills nav-stacked">
|
||||||
<% @module_apps.each do |module_app| %>
|
<% @module_apps.each do |module_app| %>
|
||||||
<li class="<%= @module_app == module_app ? 'active' : '' %>">
|
<li class="<%= @module_app == module_app ? 'active' : '' %>">
|
||||||
<%= link_to content_tag(:i, nil, class: (module_app.get_registration.get_icon_class rescue nil)) + ' ' + module_app.title, admin_authorizations_path(module_app.key, @type) %>
|
<%= link_to content_tag(:i, nil, class: (module_app.get_registration.get_icon_class rescue nil)) + ' ' + module_app.title, admin_authorizations_path(module_app.key, (@type if module_app.authorizable_models.include?(@type.camelize))) %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -14,12 +14,14 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="mini-layout-body span10">
|
<div class="mini-layout-body span10">
|
||||||
<%= link_to t(:module_authorization), admin_authorizations_path(@module_app.key) %>
|
<%= link_to t(:module_authorization), admin_authorizations_path(@module_app.key) %>
|
||||||
<%= link_to t(:category_auth), admin_authorizations_path(@module_app.key, type: 'category') %>
|
<% @module_app.authorizable_models.each do |authorizable_model| %>
|
||||||
<%= link_to t(:approval_), admin_authorizations_path(@module_app.key, type: 'approval') %>
|
<%= link_to (authorizable_model.eql?('Category') ? t(:category_auth) : "#{authorizable_model.underscore.humanize} #{t(:authorization_)}"), admin_authorizations_path(@module_app.key, type: authorizable_model) %>
|
||||||
|
<% end %>
|
||||||
|
<%= link_to t(:approval_), admin_authorizations_path(@module_app.key, type: 'approval') if @module_app.is_approvable %>
|
||||||
<% if @error %>
|
<% if @error %>
|
||||||
<%= @error %>
|
<%= @error %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= select_tag :category, options_from_collection_for_select(@categories, "id", "title", @category.id), :onchange => "window.location.href = '/admin/authorizations/'+'#{@module_app.key}/#{@type}/'+$(this).val();" if @categories %>
|
<%= select_tag @type.underscore.humanize, options_from_collection_for_select(@objects, "id", "title", @object.id), :onchange => "window.location.href = '/admin/authorizations/'+'#{@module_app.key}/#{@type}/'+$(this).val();" if @objects %>
|
||||||
<ul id="card-list" class="checkbox-card clearfix">
|
<ul id="card-list" class="checkbox-card clearfix">
|
||||||
<%= render partial: 'user', collection: @users %>
|
<%= render partial: 'user', collection: @users %>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -30,7 +32,7 @@
|
||||||
<!-- footer -->
|
<!-- footer -->
|
||||||
<div class="bottomnav clearfix">
|
<div class="bottomnav clearfix">
|
||||||
<div class="action pull-right">
|
<div class="action pull-right">
|
||||||
<%= link_to content_tag(:i, nil, class: "icons-plus") + ' ' + t(:add), '#', class: 'btn btn-primary select_user_modal', rel: admin_modal_select_authorizations_path(@module_app.key, @type, @category) %>
|
<%= link_to content_tag(:i, nil, class: "icons-plus") + ' ' + t(:add), '#', class: 'btn btn-primary select_user_modal', rel: admin_modal_select_authorizations_path(@module_app.key, @type, @object) %>
|
||||||
<%= link_to content_tag(:i, nil, class: "icon-trash") + ' ' + t(:delete), '#', id: 'remove_users', class: 'btn btn-danger', rel: admin_remove_users_authorizations_path(@module_app.key, @type, @category) %>
|
<%= link_to content_tag(:i, nil, class: "icon-trash") + ' ' + t(:delete), '#', id: 'remove_users', class: 'btn btn-danger', rel: admin_remove_users_authorizations_path(@module_app.key, @type, @object) %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
$("#select_user").html("<%= j render partial: 'admin/member_selects/modal_select', locals: {role_form_url: admin_add_roles_authorizations_path(@module_app.key, @type, @category_id), user_form_url: admin_add_users_authorizations_path(@module_app.key, @type, @category_id)} %>");
|
$("#select_user").html("<%= j render partial: 'admin/member_selects/modal_select', locals: {role_form_url: admin_add_roles_authorizations_path(@module_app.key, @type, @object_id), user_form_url: admin_add_users_authorizations_path(@module_app.key, @type, @cobject_id)} %>");
|
||||||
$("#member-filter").modal();
|
$("#member-filter").modal();
|
|
@ -5,6 +5,7 @@ en:
|
||||||
add_to_default: Add to default
|
add_to_default: Add to default
|
||||||
alternative: Alternative
|
alternative: Alternative
|
||||||
approval_setting: Approval Setting
|
approval_setting: Approval Setting
|
||||||
|
authorization_: Authorization
|
||||||
change: Change
|
change: Change
|
||||||
change_file: Change file
|
change_file: Change file
|
||||||
create:
|
create:
|
||||||
|
@ -31,8 +32,10 @@ en:
|
||||||
next: Next
|
next: Next
|
||||||
no_app: No module
|
no_app: No module
|
||||||
no_category: No Available Category
|
no_category: No Available Category
|
||||||
|
no_data: No data
|
||||||
no_date: No date
|
no_date: No date
|
||||||
no_file: No file
|
no_file: No file
|
||||||
|
path: Path
|
||||||
previous: Previous
|
previous: Previous
|
||||||
remove: Remove
|
remove: Remove
|
||||||
remove_default: Remove default
|
remove_default: Remove default
|
||||||
|
|
|
@ -53,7 +53,7 @@ namespace :new_ui do
|
||||||
when 'fact_check'
|
when 'fact_check'
|
||||||
new_object_auth = new_category.get_object_auth_by_title("approval_#{module_app.key}")
|
new_object_auth = new_category.get_object_auth_by_title("approval_#{module_app.key}")
|
||||||
else
|
else
|
||||||
new_object_auth = new_category.get_object_auth_by_title("submit_#{module_app.key}")
|
new_object_auth = new_category.get_object_auth_by_title("category_#{module_app.key}")
|
||||||
end
|
end
|
||||||
object_auth.auth_users.each do |user|
|
object_auth.auth_users.each do |user|
|
||||||
new_object_auth.add_user_to_privilege_list(user)
|
new_object_auth.add_user_to_privilege_list(user)
|
||||||
|
@ -85,4 +85,10 @@ namespace :new_ui do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
task :change_auth_naming => :environment do
|
||||||
|
ObjectAuth.where(title: /submit_/).each do |auth|
|
||||||
|
auth.update_attribute(:title, auth.title.gsub('submit_', 'category_'))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Reference in New Issue