ae_users_legacy 0.6.3 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.3
1
+ 0.6.5
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ae_users_legacy}
8
- s.version = "0.6.3"
8
+ s.version = "0.6.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nat Budin"]
12
- s.date = %q{2011-01-13}
12
+ s.date = %q{2011-03-29}
13
13
  s.description = %q{Don't use this gem. Use something written in the last couple years instead.}
14
14
  s.email = %q{natbudin@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -95,6 +95,7 @@ Gem::Specification.new do |s|
95
95
  "install.rb",
96
96
  "lib/ae_users.rb",
97
97
  "rails/init.rb",
98
+ "schema.sql",
98
99
  "tasks/ae_users_tasks.rake",
99
100
  "test/ae_users_test.rb",
100
101
  "uninstall.rb"
@@ -102,16 +103,17 @@ Gem::Specification.new do |s|
102
103
  s.homepage = %q{http://github.com/nbudin/ae_users}
103
104
  s.rdoc_options = ["--charset=UTF-8"]
104
105
  s.require_paths = ["lib"]
105
- s.rubygems_version = %q{1.4.2}
106
+ s.rubygems_version = %q{1.3.6}
106
107
  s.summary = %q{Legacy authentication/authorization framework}
107
108
  s.test_files = [
108
109
  "test/ae_users_test.rb"
109
110
  ]
110
111
 
111
112
  if s.respond_to? :specification_version then
113
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
112
114
  s.specification_version = 3
113
115
 
114
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
116
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
115
117
  s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
116
118
  s.add_runtime_dependency(%q<ruby-openid>, [">= 2.0.4"])
117
119
  else
@@ -123,4 +125,3 @@ Gem::Specification.new do |s|
123
125
  s.add_dependency(%q<ruby-openid>, [">= 2.0.4"])
124
126
  end
125
127
  end
126
-
@@ -29,8 +29,9 @@ class PermissionController < ApplicationController
29
29
  end
30
30
 
31
31
  def auto_complete_for_permission_grantee
32
- if params[:q]
33
- query = params[:q].strip.downcase
32
+ raw_query = params[:q] || params[:term]
33
+ if raw_query
34
+ query = raw_query.strip.downcase
34
35
  liketerm = "%#{query}%"
35
36
  terms = query.split
36
37
 
@@ -58,6 +59,7 @@ class PermissionController < ApplicationController
58
59
  end
59
60
 
60
61
  @grantees.uniq!
62
+ @grantees.compact!
61
63
  else
62
64
  @grantees = []
63
65
  end
@@ -1,2 +1,44 @@
1
1
  module PermissionHelper
2
+ def grant_url(item, perm)
3
+ url_for(:controller => 'permission', :action => 'grant', :perm => full_permission_name(item, perm),
4
+ :item_klass => item.class.name, :item_id => item.id, :escape => false)
5
+ end
6
+
7
+ def prototype_grant_callback(item, perm)
8
+ return <<-EOF
9
+ nobody = $('#{perm}_nobody');
10
+ if (nobody) {
11
+ nobody.remove();
12
+ }
13
+ new Ajax.Updater('#{perm}_insert_grants_here', '#{grant_url(item, perm)}',
14
+ {
15
+ parameters: { 'klass': klass, 'id': id },
16
+ insertion: Insertion.Bottom,
17
+ }
18
+ );
19
+ EOF
20
+ end
21
+
22
+ def jquery_grant_callback(item, perm)
23
+ return <<-EOF
24
+ $('##{perm}_nobody').remove();
25
+ $.get('#{grant_url(item, perm)}',
26
+ { 'klass': klass, 'id': id },
27
+ function(data) {
28
+ $('##{perm}_insert_grants_here').append(data);
29
+ }
30
+ );
31
+ EOF
32
+ end
33
+
34
+ def grant_permission_user_picker(item, perm)
35
+ callback = case AeUsers.js_framework
36
+ when "prototype"
37
+ prototype_grant_callback(item, perm)
38
+ when "jquery"
39
+ jquery_grant_callback(item, perm)
40
+ end
41
+
42
+ user_picker "#{perm}_grantee", :roles => true, :callback => callback
43
+ end
2
44
  end
@@ -39,9 +39,12 @@
39
39
  </ul>
40
40
 
41
41
  <% elsif AeUsers.js_framework == "jquery" -%>
42
+ <%= @grantees.collect do |grantee|
43
+ lbl = grantee.name
44
+ lbl << " (#{pluralize grantee.people.count, "person"})" if grantee.kind_of? Role
42
45
 
43
- <% for grantee in @grantees do -%>
44
- <%=grantee.name %><% if grantee.kind_of? Role %> (<%= pluralize(grantee.people.count, "person") %>)<% end %>|<%=grantee.class.name %>:<%= grantee.id %>
45
- <% end -%>
46
-
46
+ value = "#{grantee.class.name}:#{grantee.id}"
47
+
48
+ { 'label' => lbl, 'value' => value }
49
+ end.to_json %>
47
50
  <% end -%>
@@ -41,7 +41,7 @@ div.auto_complete {
41
41
  <% if logged_in? and logged_in_person.permitted?(item, "change_permissions") and not (grant.grantee == logged_in_person) -%>
42
42
  <%= link_to_remote "Remove",
43
43
  { :url => { :controller => "permission", :action => "revoke", :id => grant.id, :format => "js" },
44
- :success => "$('grant_#{grant.id}').remove();",
44
+ :success => update_page { |page| page["grant_#{grant.id}"].remove },
45
45
  :confirm => "Are you sure you want to revoke that permission?",
46
46
  :failure => "alert(request.responseText)" },
47
47
  { :class => "permission_action" } %>
@@ -54,24 +54,18 @@ div.auto_complete {
54
54
  <% if logged_in? and logged_in_person.permitted?(item, "change_permissions") -%>
55
55
  <div id="<%= perm %>_insert_grants_here" style="display: inline;"></div>
56
56
  | <span id="grant_open_<%=perm%>">
57
- <%= link_to_function "Add", "$('grant_open_#{perm}').toggle(); $('grant_#{perm}').toggle(); $('#{perm}_grantee_shim').focus();",
58
- :class => "permission_action" %>
57
+ <%= link_to_function "Add", :class => "permission_action" do |page|
58
+ page["grant_open_#{perm}"].toggle
59
+ page["grant_#{perm}"].toggle
60
+ page["#{perm}_grantee_shim"].focus
61
+ end %>
59
62
  </span>
60
63
  <span id="grant_<%=perm %>" style="display: none;">
61
- <%= link_to_function "&laquo;", "$('grant_open_#{perm}').toggle(); $('grant_#{perm}').toggle();",
62
- :class => "permission_action" %>
63
- <%= user_picker "#{perm}_grantee", :roles => true,
64
- :callback => "nobody = $('#{perm}_nobody');
65
- if (nobody) {
66
- nobody.remove();
67
- }
68
- new Ajax.Updater('#{perm}_insert_grants_here', '#{url_for :controller => 'permission', :action => 'grant', :perm => full_permission_name(item, perm),
69
- :item_klass => item.class.name, :item_id => item.id, :escape => false}',
70
- {
71
- parameters: { 'klass': klass, 'id': id },
72
- insertion: Insertion.Bottom,
73
- }
74
- );" %>
64
+ <%= link_to_function "&laquo;", :class => "permission_action" do |page|
65
+ page["grant_open_#{perm}"].toggle
66
+ page["grant_#{perm}"].toggle
67
+ end %>
68
+ <%= grant_permission_user_picker(item, perm) %>
75
69
  </span>
76
70
  <% end -%>
77
71
  </li>
data/lib/ae_users.rb CHANGED
@@ -662,18 +662,24 @@ module AeUsers
662
662
  :url => "#{auto_complete_url}") %>
663
663
  ENDRHTML
664
664
  elsif AeUsers.js_framework == "jquery"
665
+ jq_domid = "##{domid}"
665
666
  rhtml << <<-ENDRHTML
666
667
  <script type="text/javascript">
667
- $(function() {
668
- jq_domid = "\##{domid.gsub(/(\W)/, '\\\\\\\\\1')}";
669
- $(jq_domid + "_shim").autocomplete('#{auto_complete_url}',
668
+ jQuery(function() {
669
+ jQuery("#{jq_domid}_shim").autocomplete(
670
670
  {
671
- formatItem: function(data, i, n, value) {
672
- return value;
673
- },
674
- }).bind('result', function(e, data) {
675
- $(jq_domid).val(data[1]);
676
- #{options[:callback]}
671
+ source: '#{auto_complete_url}',
672
+ select: function(e, ui) {
673
+ if (ui.item != null) {
674
+ jQuery('#{jq_domid}_shim').val(ui.item.label);
675
+
676
+ kid = ui.item.value.split(':');
677
+ klass = kid[0];
678
+ id = kid[1];
679
+
680
+ #{options[:callback]}
681
+ }
682
+ }
677
683
  }
678
684
  );
679
685
  });
data/rails/init.rb CHANGED
@@ -5,6 +5,7 @@ require 'ae_users'
5
5
  ActiveRecord::Base.send(:include, AeUsers::Acts::Permissioned)
6
6
  ActionController::Base.send(:include, AeUsers::ControllerExtensions::RequirePermission)
7
7
  ActionView::Base.send(:include, AeUsers::HelperFunctions)
8
+ ActionView::Base.send(:include, PermissionHelper)
8
9
 
9
10
  infl = begin
10
11
  Inflector
data/schema.sql ADDED
@@ -0,0 +1,52 @@
1
+ CREATE TABLE `accounts` (
2
+ `id` int(11) NOT NULL AUTO_INCREMENT,
3
+ `password` varchar(255) NOT NULL,
4
+ `active` tinyint(1) DEFAULT NULL,
5
+ `activation_key` varchar(255) DEFAULT NULL,
6
+ `created_at` datetime DEFAULT NULL,
7
+ `updated_at` datetime DEFAULT NULL,
8
+ `person_id` int(11) DEFAULT NULL,
9
+ PRIMARY KEY (`id`)
10
+ ) ENGINE=InnoDB AUTO_INCREMENT=759 DEFAULT CHARSET=latin1;
11
+
12
+ CREATE TABLE `email_addresses` (
13
+ `id` int(11) NOT NULL AUTO_INCREMENT,
14
+ `address` varchar(255) NOT NULL,
15
+ `primary` tinyint(1) DEFAULT NULL,
16
+ `created_at` datetime DEFAULT NULL,
17
+ `updated_at` datetime DEFAULT NULL,
18
+ `person_id` int(11) DEFAULT NULL,
19
+ PRIMARY KEY (`id`)
20
+ ) ENGINE=InnoDB AUTO_INCREMENT=791 DEFAULT CHARSET=latin1;
21
+
22
+ CREATE TABLE `open_id_identities` (
23
+ `id` int(11) NOT NULL AUTO_INCREMENT,
24
+ `person_id` int(11) DEFAULT NULL,
25
+ `identity_url` varchar(4000) DEFAULT NULL,
26
+ PRIMARY KEY (`id`)
27
+ ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1;
28
+
29
+ CREATE TABLE `people` (
30
+ `id` int(11) NOT NULL AUTO_INCREMENT,
31
+ `firstname` varchar(255) DEFAULT NULL,
32
+ `lastname` varchar(255) DEFAULT NULL,
33
+ `gender` varchar(255) DEFAULT NULL,
34
+ `nickname` varchar(255) DEFAULT NULL,
35
+ `phone` varchar(255) DEFAULT NULL,
36
+ `best_call_time` varchar(255) DEFAULT NULL,
37
+ `birthdate` datetime DEFAULT NULL,
38
+ `created_at` datetime DEFAULT NULL,
39
+ `updated_at` datetime DEFAULT NULL,
40
+ PRIMARY KEY (`id`)
41
+ ) ENGINE=InnoDB AUTO_INCREMENT=760 DEFAULT CHARSET=latin1;
42
+
43
+ CREATE TABLE `people_roles` (
44
+ `person_id` int(11) NOT NULL,
45
+ `role_id` int(11) NOT NULL
46
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
47
+
48
+ CREATE TABLE `roles` (
49
+ `id` int(11) NOT NULL AUTO_INCREMENT,
50
+ `name` varchar(255) NOT NULL,
51
+ PRIMARY KEY (`id`)
52
+ ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ae_users_legacy
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 6
9
- - 3
10
- version: 0.6.3
8
+ - 5
9
+ version: 0.6.5
11
10
  platform: ruby
12
11
  authors:
13
12
  - Nat Budin
@@ -15,18 +14,16 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2011-01-13 00:00:00 -05:00
17
+ date: 2011-03-29 00:00:00 -04:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: thoughtbot-shoulda
23
22
  prerelease: false
24
23
  requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
24
  requirements:
27
25
  - - ">="
28
26
  - !ruby/object:Gem::Version
29
- hash: 3
30
27
  segments:
31
28
  - 0
32
29
  version: "0"
@@ -36,11 +33,9 @@ dependencies:
36
33
  name: ruby-openid
37
34
  prerelease: false
38
35
  requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
36
  requirements:
41
37
  - - ">="
42
38
  - !ruby/object:Gem::Version
43
- hash: 7
44
39
  segments:
45
40
  - 2
46
41
  - 0
@@ -136,6 +131,7 @@ files:
136
131
  - install.rb
137
132
  - lib/ae_users.rb
138
133
  - rails/init.rb
134
+ - schema.sql
139
135
  - tasks/ae_users_tasks.rake
140
136
  - test/ae_users_test.rb
141
137
  - uninstall.rb
@@ -149,27 +145,23 @@ rdoc_options:
149
145
  require_paths:
150
146
  - lib
151
147
  required_ruby_version: !ruby/object:Gem::Requirement
152
- none: false
153
148
  requirements:
154
149
  - - ">="
155
150
  - !ruby/object:Gem::Version
156
- hash: 3
157
151
  segments:
158
152
  - 0
159
153
  version: "0"
160
154
  required_rubygems_version: !ruby/object:Gem::Requirement
161
- none: false
162
155
  requirements:
163
156
  - - ">="
164
157
  - !ruby/object:Gem::Version
165
- hash: 3
166
158
  segments:
167
159
  - 0
168
160
  version: "0"
169
161
  requirements: []
170
162
 
171
163
  rubyforge_project:
172
- rubygems_version: 1.4.2
164
+ rubygems_version: 1.3.6
173
165
  signing_key:
174
166
  specification_version: 3
175
167
  summary: Legacy authentication/authorization framework