User role and sub_role simple interface complete

This commit is contained in:
Matthew Fu 2012-01-19 17:47:52 +08:00
parent f1a3008e2b
commit d284e1e26b
4 changed files with 88 additions and 12 deletions

View File

@ -19,6 +19,49 @@ class Admin::AppAuthsController < ApplicationController
end end
end end
def create
app_auth = AppAuth.find_or_create_by(module_app_id: params[:module_app_id])
params[:new].each do |item|
field = item[0]
field_value = item[1]
if field_value!=''
case field
when 'role'
app_auth.send("add_#{field}",(Role.find field_value)) rescue nil
when 'sub_role'
app_auth.send("add_#{field}",(SubRole.find field_value)) rescue nil
when 'privilege_user'
app_auth.add_user_to_privilege_list (User.find field_value) rescue nil
when 'blocked_user'
app_auth.add_user_to_black_list (User.find field_value) rescue nil
end
end
end
app = ModuleApp.find params[:module_app_id] rescue nil
redirect_to edit_admin_module_app_path(app)
end
def remove
app_auth = AppAuth.find( params[:id] )
type = params[:type]
field_value = params[:target_id]
if field_value!=''
case type
when 'role'
app_auth.remove_role(Role.find field_value) rescue nil
when 'sub_role'
app_auth.remove_sub_role(SubRole.find field_value) rescue nil
when 'privilege_user'
app_auth.remove_user_from_privilege_list (User.find field_value) rescue nil
when 'blocked_user'
app_auth.remove_user_from_black_list (User.find field_value) rescue nil
end
end
app = ModuleApp.find params[:module_app_id] rescue nil
redirect_to edit_admin_module_app_path(app)
end
def edit def edit
@module_app = ModuleApp.find(params[:id]) @module_app = ModuleApp.find(params[:id])
end end

View File

@ -18,7 +18,6 @@ class Admin::ModuleAppsController < ApplicationController
def edit def edit
@module_app = ModuleApp.find(params[:id]) @module_app = ModuleApp.find(params[:id])
end end
@ -91,7 +90,7 @@ class Admin::ModuleAppsController < ApplicationController
private private
def user_has_manager_privilege? def user_has_manager_privilege?
@module_app = ModuleApp.find(params[:id]) @module_app = ModuleApp.find(params[:id])
@assign_to_user = User.find params[:manager_id] rescue nil @assign_to_user = User.find params[:manager][:id] rescue nil
if current_user.admin? #only admin can assign app's manager if current_user.admin? #only admin can assign app's manager
return return
end end
@ -103,7 +102,7 @@ class Admin::ModuleAppsController < ApplicationController
def user_has_sub_manager_privilege? def user_has_sub_manager_privilege?
@module_app = ModuleApp.find(params[:id]) @module_app = ModuleApp.find(params[:id])
@assign_to_user = User.find params[:sub_manager_id] rescue nil @assign_to_user = User.find params[:sub_manager][:id] rescue nil
if current_user.admin? || @module_app.managing_users.include?(current_user) #admin or app's manager can assign app's subanager if current_user.admin? || @module_app.managing_users.include?(current_user) #admin or app's manager can assign app's subanager
return return
end end

View File

@ -6,9 +6,11 @@
<br /> <br />
<br /> <br />
<!-- Remove if CSS done--> <!-- Remove if CSS done-->
<h3><%= @module_app.title %></h3>
<div id="manager_management"> <div id="manager_management">
<h1><%= @module_app.title %></h1> <h1>Manager</h1>
<dl id="manager"> <dl id="manager">
<dt>Manager</ht> <dt>Manager</ht>
<% @module_app.managers.each do |manager| %> <% @module_app.managers.each do |manager| %>
@ -16,13 +18,11 @@
<% end %> <% end %>
<dd>Add: <dd>Add:
<%= form_tag(assign_manager_admin_module_app_path) do %> <%= form_tag(assign_manager_admin_module_app_path) do %>
<%= text_field_tag 'manager_id','Enter User ID here',:disabled => !if_permit_to_assign(:manager)%> <%= collection_select(:manager,:id, User.all, :id, :name, :prompt => true,:disabled => !if_permit_to_assign(:manager))%>
<%= submit_tag 'Add Manager' %> <%= submit_tag 'Add Manager' %>
<% end %> <% end %>
</dd> </dd>
</dl> </dl>
<dl id="sub_manager"> <dl id="sub_manager">
<dt>Sub Manager</ht> <dt>Sub Manager</ht>
<% @module_app.sub_managers.each do |manager| %> <% @module_app.sub_managers.each do |manager| %>
@ -30,12 +30,40 @@
<% end %> <% end %>
<dd>Add: <dd>Add:
<%= form_tag(assign_sub_manager_admin_module_app_path) do %> <%= form_tag(assign_sub_manager_admin_module_app_path) do %>
<%= text_field_tag 'sub_manager_id','Enter User ID here',:disabled => !if_permit_to_assign(:sub_manager)%> <%= collection_select(:sub_manager,:id, User.all, :id, :name, :prompt => true,:disabled => !if_permit_to_assign(:sub_manager))%>
<%= submit_tag 'Add Sub Manager' %> <%= submit_tag 'Add Sub Manager' %>
<% end %> <% end %>
</dd> </dd>
</dl> </dl>
</div> </div>
<div id="user_role_management">
<h1>User Role</h1>
<%= form_tag(admin_module_app_app_auths_path(@module_app),:method => :post) do %>
<%= collection_select(:new,:role, Role.all, :id, :key, :prompt => true) %>
<%= submit_tag 'Add Role' %><br/>
<%= collection_select(:new,:sub_role, SubRole.all, :id, :key, :prompt => true) %>
<%= submit_tag 'Add SubRole' %><br/>
<%= collection_select(:new,:privilege_user, User.all, :id, :name, :prompt => true) %>
<%= submit_tag 'Add PrivilegeList' %><br/>
<%= collection_select(:new,:blocked_user, User.all, :id, :name, :prompt => true) %>
<%= submit_tag 'Add BlockedList' %><br/>
<% end %>
<ul>Roles </ul>
<% unless @module_app.app_auth.nil? %>
<% @module_app.app_auth.roles.each do |role| %>
<li> <%= role.key %> Build in:<%= role.built_in ? 'Yes' : 'No' %> <%= link_to '[X]',remove_admin_module_app_app_auth_path(@module_app,@module_app.app_auth,'role',role),:method => :delete %></li>
<% end %>
<ul>Sub Roles </ul>
<% @module_app.app_auth.sub_roles.each do |role| %>
<li> <%= role.key %> Build in:<%= role.built_in ? 'Yes' : 'No' %> </li><%= link_to '[X]',remove_admin_module_app_app_auth_path(@module_app,@module_app.app_auth,'sub_role',role),:method => :delete %>
<% end %>
<ul>PrivilegeList </ul>
<% @module_app.app_auth.privilege_users.each do |user| %>
<li> <%= user.name %> <%= link_to '[X]',remove_admin_module_app_app_auth_path(@module_app,@module_app.app_auth,'privilege_user',user),:method => :delete %> </li>
<% end %>
<ul>BlockedList </ul>
<% @module_app.app_auth.blocked_users.each do |user| %>
<li> <%= user.name %><%= link_to '[X]',remove_admin_module_app_app_auth_path(@module_app,@module_app.app_auth,'blocked_user',user),:method => :delete %> </li>
<% end %>
<% end %>
</div>

View File

@ -39,6 +39,12 @@ PrototypeR4::Application.routes.draw do
end end
end end
resources :module_apps do resources :module_apps do
resources :app_auths do
member do
match 'remove/:type/:target_id' ,:action=> 'remove',:via => "delete",:as =>:remove
end
end
member do member do
match 'assign_manager' ,:action=> 'assign_manager',:via => "post",:as =>:assign_manager match 'assign_manager' ,:action=> 'assign_manager',:via => "post",:as =>:assign_manager
match 'assign_sub_manager' ,:action=> 'assign_sub_manager',:via => "post",:as =>:assign_sub_manager match 'assign_sub_manager' ,:action=> 'assign_sub_manager',:via => "post",:as =>:assign_sub_manager