Module: PermissionHelper

Defined in:
app/helpers/permission_helper.rb

Instance Method Summary collapse

Instance Method Details

#grant_permission_user_picker(item, perm) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'app/helpers/permission_helper.rb', line 34

def grant_permission_user_picker(item, perm)
  callback = case AeUsers.js_framework
  when "prototype"
    prototype_grant_callback(item, perm)
  when "jquery"
    jquery_grant_callback(item, perm)
  end
  
  user_picker "#{perm}_grantee", :roles => true, :callback => callback
end

#grant_url(item, perm) ⇒ Object



2
3
4
5
# File 'app/helpers/permission_helper.rb', line 2

def grant_url(item, perm)
  url_for(:controller => 'permission', :action => 'grant', :perm => full_permission_name(item, perm), 
          :item_klass => item.class.name, :item_id => item.id, :escape => false)
end

#jquery_grant_callback(item, perm) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
# File 'app/helpers/permission_helper.rb', line 22

def jquery_grant_callback(item, perm)
  return "  $('#\#{perm}_nobody').remove();\n  $.get('\#{grant_url(item, perm)}',\n    { 'klass': klass, 'id': id },\n    function(data) {\n      $('#\#{perm}_insert_grants_here').append(data);\n    }\n  );\n  EOF\nend\n"

#prototype_grant_callback(item, perm) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/helpers/permission_helper.rb', line 7

def prototype_grant_callback(item, perm)
  return "  nobody = $('\#{perm}_nobody');\n  if (nobody) {\n    nobody.remove();\n  }\n  new Ajax.Updater('\#{perm}_insert_grants_here', '\#{grant_url(item, perm)}',\n        {\n          parameters: { 'klass': klass, 'id': id },\n          insertion: Insertion.Bottom,\n        }\n      );\n  EOF\nend\n"