radiant-reader-extension 3.0.13 → 3.0.14

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.
@@ -1,6 +1,9 @@
1
1
  - include_stylesheet 'admin/reader_group'
2
2
  - include_javascript 'admin/reader'
3
+ - group ||= @group
3
4
  - groupee ||= @page
5
+ - if group && groupee.new_record?
6
+ - groupee.groups = [group]
4
7
 
5
8
  - groups = Group.find(:all)
6
9
  - if groups.any?
@@ -11,6 +14,7 @@
11
14
  = link_to t('reader_extension.access_open'), '#groups_popup', :class => 'popup unrestricted', :id => 'group_status_flag'
12
15
  - else
13
16
  = link_to t('reader_extension.access_restricted'), '#groups_popup', :class => 'popup restricted', :id => 'group_status_flag'
17
+
14
18
  - fields_for groupee do |f|
15
- = f.hidden_field :group_ids
19
+ = f.hidden_field :group_id_list
16
20
 
@@ -6,9 +6,9 @@
6
6
  = t('reader_extension.access_control')
7
7
  %p
8
8
  = t('reader_extension.page_access_explanation')
9
- %form.group_selection
9
+ %form.group_selection{:rel => "#{groupee.class.to_s.downcase}_group_id_list"}
10
10
  = render :partial => 'admin/groups/chooser', :object => groupee
11
11
  .buttons
12
- = submit_tag t('reader_extension.set_access'), :class=>'button', :id=>'add_page_field_button'
12
+ = submit_tag t('reader_extension.set_access'), :class=>'button', :id=>'update_groups_button'
13
13
  = t('or')
14
14
  = link_to_function t('cancel'), "$(this).closePopup()", :class=>"cancel"
@@ -37,7 +37,4 @@
37
37
  = save_model_button(@message)
38
38
  = save_model_and_continue_editing_button(@message)
39
39
  = t('or')
40
- = link_to t("cancel"), @message.new_record? ? admin_messages_url : admin_message_url(@message)
41
-
42
- - form_bottom.edit_popups do
43
- = render :partial => 'admin/groups/popup', :locals => {:groupee => @message}
40
+ = link_to t("cancel"), @message.new_record? ? admin_messages_url : admin_message_url(@message)
@@ -2,7 +2,6 @@
2
2
 
3
3
  = render_region :top
4
4
  - render_region :main do |main|
5
-
6
5
  - main.edit_header do
7
6
  %h1
8
7
  = t('reader_extension.edit_message')
@@ -11,5 +10,8 @@
11
10
  - form_for :message, @message, :url => admin_message_url(@message), :html => {:id => 'message_form', :method => 'put'} do |f|
12
11
  = render :partial => 'form', :object => f
13
12
 
13
+ - main.edit_popups do
14
+ = render :partial => 'admin/groups/popup', :locals => {:groupee => @message}
15
+
14
16
  - main.edit_footer do
15
17
  = render :partial => 'help'
@@ -11,5 +11,8 @@
11
11
  - form_for :message, @message, :url => admin_messages_url, :html => {:id => 'message_form', :method => 'post'} do |f|
12
12
  = render :partial => 'form', :object => f
13
13
 
14
+ - main.edit_popups do
15
+ = render :partial => 'admin/groups/popup', :locals => {:groupee => @message}
16
+
14
17
  - main.edit_footer do
15
18
  = render :partial => 'help'
@@ -112,7 +112,7 @@ module ControllerExtensions # for inclusion into ApplicationController
112
112
  flash[:notice] = e.message
113
113
  render :template => 'shared/not_allowed'
114
114
  }
115
- format.js {
115
+ format.js {
116
116
  render :text => @message, :status => 403
117
117
  }
118
118
  end
data/lib/grouped_model.rb CHANGED
@@ -163,8 +163,12 @@ module GroupedModel
163
163
  self.groups << group unless self.has_group?(group)
164
164
  end
165
165
 
166
- def group_ids=(ids)
167
- self.groups = Group.from_list(ids)
166
+ def group_id_list
167
+ self.groups.map(&:id).join(',')
168
+ end
169
+
170
+ def group_id_list=(ids)
171
+ self.groups = Group.find_these(ids.split(/,\s*/))
168
172
  end
169
173
  end
170
174
  end
@@ -1,5 +1,5 @@
1
1
  module RadiantReaderExtension
2
- VERSION = '3.0.13'
2
+ VERSION = '3.0.14'
3
3
  SUMMARY = %q{Reader/viewer/visitor registration, login and access-control for Radiant CMS}
4
4
  DESCRIPTION = %q{Provides reader/member/user registration and management functions including password-reminder, group-based page access control and administrative email.}
5
5
  URL = "http://radiant.spanner.org/reader"
@@ -59,9 +59,9 @@ module ReaderAdminUI
59
59
  def load_default_message_regions
60
60
  OpenStruct.new.tap do |message|
61
61
  message.edit = Radiant::AdminUI::RegionSet.new do |edit|
62
- edit.main.concat %w{edit_header edit_form}
62
+ edit.main.concat %w{edit_header edit_form edit_popups}
63
63
  edit.form.concat %w{edit_subject edit_body edit_function edit_groups}
64
- edit.form_bottom.concat %w{edit_timestamp edit_buttons edit_popups}
64
+ edit.form_bottom.concat %w{edit_timestamp edit_buttons}
65
65
  end
66
66
  message.index = Radiant::AdminUI::RegionSet.new do |index|
67
67
  index.thead.concat %w{subject_header function_header groups_header sent_header modify_header}
@@ -5,17 +5,16 @@ module SiteControllerExtensions
5
5
  # NB. to control access without disabling the cache we have overridden Page.cache?
6
6
  # to return false for any page that has a group association.
7
7
 
8
- def find_page_with_group_check(url)
9
- page = find_page_without_group_check(url)
10
- if page
11
- raise ReaderError::LoginRequired, t("reader_extension.page_not_public") if page.restricted? && !current_reader
12
- raise ReaderError::ActivationRequired, t("reader_extension.page_not_public") if page.restricted? && !current_reader.activated?
13
- raise ReaderError::AccessDenied, t("reader_extension.page_permission_denied") unless page.visible_to?(current_reader)
8
+ def find_page_with_group_check(path)
9
+ page = find_page_without_group_check(path)
10
+ if page && page.restricted?
11
+ raise ReaderError::LoginRequired, t("reader_extension.page_not_public") unless current_reader
12
+ raise ReaderError::ActivationRequired, t("reader_extension.page_not_public") unless current_reader.activated?
13
+ raise ReaderError::AccessDenied, t("reader_extension.page_permission_denied") unless page.visible_to?(current_reader)
14
14
  end
15
15
  page
16
16
  end
17
17
  alias_method_chain :find_page, :group_check
18
-
19
18
  }
20
19
  end
21
20
  end
@@ -9,7 +9,6 @@ Toggle.SelectAllBehavior = Behavior.create(Toggle.CheckboxBehavior, {
9
9
 
10
10
  // This checkbox, when checked, will check and disable all others within the same containing element.
11
11
  // It's useful in a tree view when the checked property will be inherited.
12
- // For now I'm also using it to populate a hidden form field, but something more general would be preferable.
13
12
  //
14
13
  Treebox = Behavior.create({
15
14
  onclick: function(e) {
@@ -28,17 +27,14 @@ GroupSelection = Behavior.create({
28
27
  onsubmit : function(e) {
29
28
  if (e) e.stop();
30
29
  var group_list = this.element.getInputs('checkbox').collect(function(i) { if (i.checked && !i.disabled) return i.value; }).compact();
31
- console.log('group_list: ', group_list);
30
+ var flag = $('group_status_flag');
32
31
  if (group_list.length == 0) {
33
- $('group_status_flag').removeClassName('restricted');
34
- $('group_status_flag').addClassName('unrestricted');
35
- $('group_status_flag').update('Open');
32
+ flag.removeClassName('restricted').addClassName('unrestricted').update('Open');
36
33
  } else {
37
- $('group_status_flag').removeClassName('unrestricted');
38
- $('group_status_flag').addClassName('restricted');
39
- $('group_status_flag').update('Restricted');
34
+ flag.removeClassName('unrestricted').addClassName('restricted').update('Restricted');
40
35
  }
41
- $('page_group_ids').value = group_list.join(',');
36
+ field = $(this.element.readAttribute('rel'));
37
+ field.value = group_list.join(',');
42
38
  this.element.closePopup();
43
39
  }
44
40
  });
@@ -1,5 +1,24 @@
1
1
  @import compass
2
2
 
3
+ #content form p.access a
4
+ text-decoration: none
5
+ &.restricted
6
+ color: #a14242
7
+ font-weight: bold
8
+ &.unrestricted
9
+ color: #8de489
10
+ &:hover
11
+ color: white
12
+
13
+ #groups_popup
14
+ width: 300px
15
+ ul
16
+ padding-left: 0
17
+ ul
18
+ padding-left: 20px
19
+ label
20
+ display: inline
21
+
3
22
  #content
4
23
  table
5
24
  &#groups
@@ -272,11 +291,15 @@ ul.help
272
291
  color: #c00
273
292
  font-size: 115%
274
293
 
275
-
276
294
  #content
277
295
  form
278
296
  p
279
297
  textarea
280
298
  width: 100%
281
- height: 8em
299
+ height: 24em
282
300
 
301
+ table#pages.index td.access
302
+ font-size: 80%
303
+ color: #999
304
+ span.restricted
305
+ color: #c00
@@ -55,8 +55,8 @@ describe SiteController do
55
55
  describe "getting a grouped page to which she doesn't have access" do
56
56
  it "should redirect to the permission-denied page" do
57
57
  get :show_page, :url => 'news/'
58
- response.should be_redirect
59
- response.should redirect_to(reader_permission_denied_url)
58
+ response.should be_success
59
+ response.should render_template('shared/not_allowed')
60
60
  end
61
61
  end
62
62
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: radiant-reader-extension
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 3
8
8
  - 0
9
- - 13
10
- version: 3.0.13
9
+ - 14
10
+ version: 3.0.14
11
11
  platform: ruby
12
12
  authors:
13
13
  - William Ross
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-10-11 00:00:00 Z
18
+ date: 2011-10-12 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: radiant-layouts-extension
@@ -328,7 +328,6 @@ files:
328
328
  - public/stylesheets/sass/admin/reader.sass
329
329
  - public/stylesheets/sass/admin/reader_group.sass
330
330
  - public/stylesheets/sass/reader.sass
331
- - radiant-reader-extension-3.0.13.gem
332
331
  - radiant-reader-extension.gemspec
333
332
  - Rakefile
334
333
  - reader_extension.rb
@@ -357,7 +356,7 @@ files:
357
356
  homepage: http://radiant.spanner.org/reader
358
357
  licenses: []
359
358
 
360
- post_install_message: "\n Add this to your radiant project with a line in your Gemfile:\n\n gem 'radiant-reader-extension', '~> 3.0.13'\n\n and if you haven't already, remember to enable ActionMailer in your\n project's config/environment.rb.\n "
359
+ post_install_message: "\n Add this to your radiant project with a line in your Gemfile:\n\n gem 'radiant-reader-extension', '~> 3.0.14'\n\n and if you haven't already, remember to enable ActionMailer in your\n project's config/environment.rb.\n "
361
360
  rdoc_options: []
362
361
 
363
362
  require_paths: