refinerycms-members-ci 0.3.0 → 0.3.1

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.
@@ -0,0 +1,9 @@
1
+ class AddNeedLoginToPages < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :pages, :need_login, :boolean, :default => 0
4
+ end
5
+
6
+ def self.down
7
+ remove_column :pages, :need_login
8
+ end
9
+ end
@@ -0,0 +1,26 @@
1
+ class CreateMembers < ActiveRecord::Migration
2
+ def self.up
3
+ create_table(:members) do |t|
4
+
5
+ t.database_authenticatable :null => false
6
+ t.recoverable
7
+ t.rememberable
8
+ t.trackable
9
+
10
+ # t.confirmable
11
+ # t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
12
+ # t.token_authenticatable
13
+
14
+ t.timestamps
15
+ end
16
+
17
+ add_index :members, :email, :unique => true
18
+ add_index :members, :reset_password_token, :unique => true
19
+ # add_index :members, :confirmation_token, :unique => true
20
+ # add_index :members, :unlock_token, :unique => true
21
+ end
22
+
23
+ def self.down
24
+ drop_table :members
25
+ end
26
+ end
@@ -0,0 +1,6 @@
1
+ User.find(:all).each do |user|
2
+ if user.plugins.find_by_name('members').nil?
3
+ user.plugins.create(:name => 'members',
4
+ :position => (user.plugins.maximum(:position) || -1) +1)
5
+ end
6
+ end
@@ -0,0 +1,63 @@
1
+ @members
2
+ Feature: Members
3
+ In order to have members on my website
4
+ As an administrator
5
+ I want to manage members
6
+
7
+ Background:
8
+ Given I am a logged in refinery user
9
+ And I have no members
10
+
11
+ @members-list @list
12
+ Scenario: Members List
13
+ Given I have members titled foo@example.com, bar@example.com
14
+ When I go to the list of members
15
+ Then I should see "foo@example.com"
16
+ And I should see "bar@example.com"
17
+
18
+ @members-valid @valid
19
+ Scenario: Create Valid Member
20
+ When I go to the list of members
21
+ And I follow "Add New Member"
22
+ And I fill in "Email" with "foo@example.com"
23
+ And I press "Save"
24
+ Then I should see "'foo@example.com' was successfully added."
25
+ And I should have 1 member
26
+
27
+ @members-invalid @invalid
28
+ Scenario: Create Invalid Member (without email)
29
+ When I go to the list of members
30
+ And I follow "Add New Member"
31
+ And I press "Save"
32
+ Then I should see "Email can't be blank"
33
+ And I should have 0 members
34
+
35
+ @members-edit @edit
36
+ Scenario: Edit Existing Member
37
+ Given I have members titled "foo"
38
+ When I go to the list of members
39
+ And I follow "Edit this member" within ".actions"
40
+ Then I fill in "Email" with "bar"
41
+ And I press "Save"
42
+ Then I should see "'bar' was successfully updated."
43
+ And I should be on the list of members
44
+ And I should not see "foo"
45
+
46
+ @members-duplicate @duplicate
47
+ Scenario: Create Duplicate Member
48
+ Given I only have members titled UniqueTitleOne, UniqueTitleTwo
49
+ When I go to the list of members
50
+ And I follow "Add New Member"
51
+ And I fill in "Email" with "UniqueTitleTwo"
52
+ And I press "Save"
53
+ Then I should see "There were problems"
54
+ And I should have 2 members
55
+
56
+ @members-delete @delete
57
+ Scenario: Delete Member
58
+ Given I only have members titled UniqueTitleOne
59
+ When I go to the list of members
60
+ And I follow "Remove this member forever"
61
+ Then I should see "'UniqueTitleOne' was successfully removed."
62
+ And I should have 0 members
63
+
@@ -0,0 +1,60 @@
1
+ @members
2
+ Feature: Members
3
+ In order to be a member
4
+ As an User
5
+ I want to manage my own member account
6
+
7
+ Background:
8
+ Given I am a logged in refinery user
9
+ And I have no members
10
+
11
+ @member
12
+ Scenario: Create Valid Member
13
+ When I go to the signup page
14
+ Then I should see "Sign up"
15
+ And I fill in "Email" with "foo@example.com"
16
+ And I fill in "Password" with "123456"
17
+ And I fill in "Password confirmation" with "123456"
18
+ And I press "Sign up"
19
+ And I should have 1 member
20
+
21
+ @member @member-invalid
22
+ Scenario: Create Invalid Member (without email)
23
+ When I go to the signup page
24
+ And I press "Sign up"
25
+ Then I should see "Email can't be blank"
26
+ And I should see "Password can't be blank"
27
+ And I fill in "Email" with "foo@example.com"
28
+ And I press "Sign up"
29
+ Then I should see "Password can't be blank"
30
+ And I fill in "Email" with "foo@example.com"
31
+ And I fill in "Password" with "654321"
32
+ And I fill in "Password confirmation" with "123456"
33
+ And I press "Sign up"
34
+ Then I should see "Password doesn't match confirmation"
35
+ And I should have 0 members
36
+
37
+ @member @member-invalid
38
+ Scenario: Create Duplicate Member
39
+ Given I have one member "foo@example.com" with password "123456"
40
+ When I go to the signup page
41
+ And I fill in "Email" with "foo@example.com"
42
+ And I fill in "Password" with "123456"
43
+ And I fill in "Password confirmation" with "123456"
44
+ And I press "Sign up"
45
+ Then I should see "Email has already been taken"
46
+
47
+ @member @member-profile
48
+ Scenario: Edit Existing Member
49
+ Given I am a new, authenticated member "testing@example.com" with password "secretpass"
50
+ When I go to the profile page
51
+ Then the "member_email" field should contain "testing@example.com"
52
+ When I fill in "Email" with "foo@example.com"
53
+ And I press "Update"
54
+ Then I should be on the home page
55
+ Given I am not authenticated
56
+ When I go to the members login page
57
+ And I fill in "Email" with "foo@example.com"
58
+ And I fill in "Password" with "secretpass"
59
+ And I press "Sign in"
60
+ Then I should be on the home page
@@ -0,0 +1,36 @@
1
+ Given /^I have no members$/ do
2
+ Member.delete_all
3
+ end
4
+
5
+ Given /^I (only )?have members titled "?([^\"]*)"?$/ do |only, emails|
6
+ Member.delete_all if only
7
+ emails.split(', ').each do |email|
8
+ Member.create!(:email => email, :password => '123456', :password_confirmation => '123456')
9
+ end
10
+ end
11
+
12
+ Then /^I should have ([0-9]+) members?$/ do |count|
13
+ Member.count.should == count.to_i
14
+ end
15
+
16
+ #Devise
17
+
18
+ Given /^I am not authenticated$/ do
19
+ visit('/members/sign_out') # ensure that at least
20
+ end
21
+
22
+ Given /^I have one\s+member "([^\"]*)" with password "([^\"]*)"$/ do |email, password|
23
+ Member.new(:email => email,
24
+ :password => password,
25
+ :password_confirmation => password).save!
26
+ end
27
+
28
+ Given /^I am a new, authenticated member "([^\"]*)" with password "([^\"]*)"$/ do |email, password|
29
+
30
+ Given %{I have one member "#{email}" with password "#{password}"}
31
+ And %{I go to the members login page}
32
+ And %{I fill in "member_email" with "#{email}"}
33
+ And %{I fill in "member_password" with "#{password}"}
34
+ And %{I press "Sign in"}
35
+ end
36
+
@@ -0,0 +1,24 @@
1
+ module NavigationHelpers
2
+ module Refinery
3
+ module Members
4
+ def path_to(page_name)
5
+ case page_name
6
+ when /the home page/
7
+ root_path
8
+ when /the list of members/
9
+ admin_members_path
10
+ when /the new member form/
11
+ new_admin_member_path
12
+ when /the signup page/
13
+ new_member_registration_path
14
+ when /the members login page/
15
+ new_member_session_path
16
+ when /the profile page/
17
+ edit_member_registration_path
18
+ else
19
+ nil
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
data/readme.md ADDED
@@ -0,0 +1,36 @@
1
+ # Refinery CMS Member
2
+
3
+ Simple member engine for [Refinery CMS](http://refinerycms.com). It supports members management and page privilege setting.
4
+
5
+ This version of `refinerycms-member` supports Rails 3.0.x, development for RefineryCMS 0.9.9 and upper.
6
+
7
+ ## Requirements
8
+
9
+ Refinery CMS version 0.9.9 or above.
10
+
11
+ ## Install
12
+
13
+ Download the source code and place under folder "RAILS_ROOT/vendor/engines"
14
+
15
+ Open up your ``Gemfile`` and add at the bottom this line:
16
+
17
+ gem 'refinerycms-members', '1.0', :path => 'vendor/engines'
18
+
19
+ Now, run ``bundle install``
20
+
21
+ Next, to install the member plugin run:
22
+
23
+ rails generate refinerycms_members
24
+
25
+ Finally migrate your database and you're done.
26
+
27
+ rake db:migrate
28
+
29
+ ## How to build this engine as a gem
30
+
31
+ cd vendor/engines/members
32
+ gem build refinerycms-members.gempspec
33
+ gem install refinerycms-members.gem
34
+
35
+ # Sign up for a http://rubygems.org/ account and publish the gem
36
+ gem push refinerycms-members.gem
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe Member do
4
+
5
+ def reset_member(options = {})
6
+ @valid_attributes = {
7
+ :id => 1,
8
+ :email => 'foo@example.com',
9
+ :password => '123456',
10
+ :password_confirmation => '123456'
11
+ }
12
+
13
+ @member.destroy! if @member
14
+ @member = Member.create!(@valid_attributes.update(options))
15
+ end
16
+
17
+ before(:each) do
18
+ reset_member
19
+ end
20
+
21
+ context "validations" do
22
+
23
+ it "rejects empty email" do
24
+ Member.new(@valid_attributes.merge(:email => "")).should_not be_valid
25
+ end
26
+
27
+ it "rejects non unique email" do
28
+ # as one gets created before each spec by reset_member
29
+ Member.new(@valid_attributes).should_not be_valid
30
+ end
31
+
32
+ end
33
+
34
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: refinerycms-members-ci
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 0
10
- version: 0.3.0
9
+ - 1
10
+ version: 0.3.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Based on work of n5ken, modified by ovargas27
@@ -64,6 +64,15 @@ files:
64
64
  - app/views/registrations/edit.html.erb
65
65
  - app/views/registrations/new.html.erb
66
66
  - app/views/shared/_header.html.erb
67
+ - db/migrate/add_need_login_to_pages.rb
68
+ - db/migrate/create_members.rb
69
+ - db/seeds/members.rb
70
+ - features/admin_manage_members.feature
71
+ - features/manage_member.feature
72
+ - features/step_definitions/member_steps.rb
73
+ - features/support/paths.rb
74
+ - spec/models/member_spec.rb
75
+ - readme.md
67
76
  has_rdoc: true
68
77
  homepage: https://github.com/crowdint/refinerycms-member
69
78
  licenses: []