notee 0.3.6 → 0.3.7

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,19 +1,10 @@
1
1
  module Notee
2
2
  class ApplicationController < ActionController::Base
3
-
4
- before_action :set_access_token
5
3
  before_action :restrict_access_json
6
4
 
7
5
  private
8
- def set_access_token
9
- # request['Authorization: Token token'] = session[:access_token] if session[:access_token].present?
10
- end
11
6
 
12
7
  def restrict_access_json
13
- # authenticate_or_request_with_http_token do |token, options|
14
- # Token.exists?(access_token: token)
15
- # end
16
-
17
8
  unless Token.exists?(access_token: session[:access_token])
18
9
  raise
19
10
  end
@@ -14,6 +14,13 @@ module Notee
14
14
  if Notee.notee_id == params[:id] && Notee.notee_password == params[:password]
15
15
  if token = Token.create!
16
16
  session[:access_token] = token.access_token
17
+ return redirect_to root_path
18
+ end
19
+ end
20
+
21
+ if now_user = User.sign_in(params[:id], params[:password])
22
+ if token = Token.create!(user_id: now_user.id)
23
+ session[:access_token] = token.access_token
17
24
  end
18
25
  end
19
26
 
@@ -0,0 +1,60 @@
1
+ require_dependency "notee/application_controller"
2
+
3
+ module Notee
4
+ class UsersController < ApplicationController
5
+
6
+ # callbacks
7
+ before_action :set_user, only: [:show, :update, :destroy]
8
+
9
+ # GET /users
10
+ def index
11
+ @users = User.all.order(updated_at: :desc)
12
+ render json: { status: 'success', users: @users}
13
+ end
14
+
15
+ # GET /posts/1
16
+ def show
17
+ render json: { status: 'success', user: @user}
18
+ end
19
+
20
+ # POST /posts
21
+ def create
22
+ @user = User.new(user_params)
23
+ respond_to do |format|
24
+ if @user.save
25
+ format.json { render json: @user, status: 200 }
26
+ else
27
+ format.json { render json: @user.errors, status: :unprocessable_entity }
28
+ end
29
+ end
30
+ end
31
+
32
+ # PATCH/PUT /posts/1
33
+ def update
34
+ respond_to do |format|
35
+ if @user.update(user_params)
36
+ format.json { render json: @user, status: 200 }
37
+ else
38
+ format.json { render json: @user.errors, status: :unprocessable_entity }
39
+ end
40
+ end
41
+ end
42
+
43
+ # DELETE /posts/1
44
+ def destroy
45
+ @user.destroy
46
+ render json: { status: 'success'}
47
+ end
48
+
49
+ private
50
+
51
+ def set_user
52
+ @user = User.find_by(id: params[:id])
53
+ end
54
+
55
+ # Only allow a trusted parameter "white list" through.
56
+ def post_params
57
+ params.require(:user).permit(:title, :content, :slug, :status, :category_id, :thumbnail_id, :published_at, :seo_keyword, :seo_description, :secret_published_password)
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,27 @@
1
+ module Notee
2
+ class User < ApplicationRecord
3
+
4
+ # accessors
5
+ attr_accessor :password
6
+
7
+ # callback
8
+ before_save :encrypt_password
9
+
10
+ def sign_in(name_or_email password)
11
+ user = self.find_by(name: name_or_email)
12
+ user = self.find_by(email: name_or_email) unless user
13
+ return false unless user
14
+ return false unless user.encrypted_password == encrypt(password)
15
+
16
+ return user
17
+ end
18
+
19
+ def encrypt(password)
20
+ return OpenSSL::Digest::MD5.hexdigest(password)
21
+ end
22
+
23
+ def encrypt_password
24
+ self.encrypted_password = encrypt(self.password)
25
+ end
26
+ end
27
+ end
@@ -3,7 +3,6 @@
3
3
  <comment_form post_id='<%= post_id %>'></comment_form>
4
4
  </div>
5
5
 
6
-
7
6
  <!-- <comment> tag -->
8
7
 
9
8
  <script type="riot/tag">
@@ -15,6 +14,8 @@
15
14
  /////////////////////////////////////////
16
15
 
17
16
  <comment_form class="notee_comment_form" id="notee_form">
17
+ <form method="POST">
18
+
18
19
 
19
20
  <label class="notee_label" for="comment_name">Name</label>
20
21
  <input class="notee_text_field" type="text" name="comment[name]" id="comment_name" />
@@ -24,6 +25,8 @@
24
25
 
25
26
  <label class="notee_label" for="comment_content">Content</label>
26
27
  <textarea class="notee_text_area" name="comment[content]" id="comment_content"></textarea>
28
+
29
+ <div class="g-recaptcha" data-sitekey="<%= recaptcha %>"></div>
27
30
 
28
31
  <input
29
32
  type="submit"
@@ -32,6 +35,8 @@
32
35
  data-disable-with="Create Comment"
33
36
  onClick={notee_submit} />
34
37
 
38
+ </form>
39
+
35
40
  this.notee_submit = function(e){
36
41
  e.preventDefault();
37
42
  var comment = {
@@ -41,7 +46,7 @@
41
46
  content: document.getElementById("comment_content").value
42
47
  };
43
48
 
44
- if(comment.content != null){
49
+ if(comment.content != null || comment.content != ""){
45
50
  var request = window.superagent;
46
51
  var url = "/notee/api/comments";
47
52
  var self = this;
@@ -119,10 +124,13 @@
119
124
  </script>
120
125
 
121
126
 
127
+
128
+
122
129
  <!-- Riot.js Settings -->
123
130
 
124
131
  <script src="https://cdnjs.cloudflare.com/ajax/libs/riot/2.3.18/riot+compiler.js"></script>
125
132
  <script src="https://cdnjs.cloudflare.com/ajax/libs/superagent/2.1.0/superagent.min.js"></script>
133
+ <script src="https://www.google.com/recaptcha/api.js" async defer></script>
126
134
  <script>
127
135
  window.onload = function() {
128
136
  riot.mount('*');
@@ -6,12 +6,16 @@ Notee::Engine.routes.draw do
6
6
  get 'edit/:id' => 'notees#index'
7
7
  get 'category' => 'notees#index'
8
8
  get 'image' => 'notees#index'
9
+ get 'user' => 'notees#index'
10
+ get 'user/new' => 'notees#index'
11
+ get 'user/edit/:id' => 'notees#index'
9
12
 
10
13
  post 'secret_published' => 'notees#secret_published'
11
14
  resources :tokens, only: [:new, :create, :destroy]
12
15
 
13
16
  scope :api, { format: 'json' } do
14
17
  resources :posts, only: [:index, :show, :create, :update, :destroy]
18
+ resources :users, only: [:index, :show, :create, :update, :destroy]
15
19
  resources :images, only: [:index, :show, :create, :destroy]
16
20
  resources :categories, only: [:index, :show, :create, :update, :destroy]
17
21
  resources :statuses, only: [:index, :show]
@@ -4,7 +4,6 @@ class CreateNoteePosts < ActiveRecord::Migration
4
4
  create_table :notee_posts do |t|
5
5
 
6
6
  # notee's base
7
-
8
7
  t.string :title
9
8
  t.text :content
10
9
  t.string :slug
@@ -12,6 +11,7 @@ class CreateNoteePosts < ActiveRecord::Migration
12
11
  t.integer :category_id, default: 0
13
12
  t.integer :thumbnail_id, default: 0
14
13
  t.datetime :published_at
14
+ t.integer :user_id
15
15
 
16
16
  # seo
17
17
  t.string :seo_keyword, default: ""
@@ -20,8 +20,6 @@ class CreateNoteePosts < ActiveRecord::Migration
20
20
  # secret_published
21
21
  t.string :secret_published_password
22
22
 
23
- # if you have user_id
24
- # t.integer :user_id
25
23
 
26
24
  t.timestamps null: false
27
25
 
@@ -12,7 +12,7 @@ class CreateNoteeCategories < ActiveRecord::Migration
12
12
  t.timestamps null: false
13
13
  end
14
14
 
15
- add_index :notee_categories, [:slug], :unique => true
15
+ add_index :notee_categories, :slug, :unique => true
16
16
 
17
17
  # create default category
18
18
  Notee::Category.create :name => 'No_Category'
@@ -2,11 +2,12 @@ class CreateNoteeTokens < ActiveRecord::Migration
2
2
  def change
3
3
  create_table :notee_tokens do |t|
4
4
  t.string :access_token, null: false
5
+ t.integer :user_id
5
6
  t.datetime :expires_at, null: false
6
7
 
7
8
  t.timestamps null: false
8
9
  end
9
10
 
10
- add_index :notee_tokens, [:access_token], :unique => true
11
+ add_index :notee_tokens, :access_token, :unique => true
11
12
  end
12
13
  end
@@ -1,4 +1,4 @@
1
- class CreateNoteeComments < ActiveRecord::Migration[5.0]
1
+ class CreateNoteeComments < ActiveRecord::Migration
2
2
  def change
3
3
  create_table :notee_comments do |t|
4
4
  t.integer :post_id
@@ -0,0 +1,17 @@
1
+ class CreateNoteeUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table :notee_users do |t|
4
+ t.string :name, null: false
5
+ t.string :email, null: false
6
+ t.string :encrypted_password, null: false
7
+ t.text :profile
8
+ t.string :profile_img
9
+ t.text :sns
10
+ t.integer :role, null: false
11
+
12
+ t.timestamps null: false
13
+ end
14
+
15
+ add_index :notee_users, [:name, :email], :unique => true
16
+ end
17
+ end
@@ -3,11 +3,15 @@ module Notee
3
3
 
4
4
  VALID_OPTIONS_KEY = [
5
5
  :notee_id,
6
- :notee_password
6
+ :notee_password,
7
+ :recaptcha_key,
8
+ :recaptcha_secret_key
7
9
  ].freeze
8
10
 
9
11
  DEFAULT_NOTEE_ID = nil
10
12
  DEFAULT_NOTEE_PASSWORD = nil
13
+ DEFAULT_RECAPTCHA_KEY = nil
14
+ DEFAULT_RECAPTCHA_SECRET_KEY = nil
11
15
 
12
16
  attr_accessor *VALID_OPTIONS_KEY
13
17
 
@@ -22,6 +26,8 @@ module Notee
22
26
  def reset
23
27
  self.notee_id = DEFAULT_NOTEE_ID
24
28
  self.notee_password = DEFAULT_NOTEE_PASSWORD
29
+ self.recaptcha_key = DEFAULT_RECAPTCHA_KEY
30
+ self.recaptcha_secret_key = DEFAULT_RECAPTCHA_SECRET_KEY
25
31
  end
26
32
 
27
33
  end
@@ -67,6 +67,12 @@ module Notee
67
67
  return Notee::Post.where(status: Notee::STATUS[:published]).group('year(published_at)').group('month(published_at)').count
68
68
  end
69
69
  end
70
+
71
+ def notee_comments(id)
72
+ return if id.nil?
73
+ @notee_comments = Notee::Post.where(post_id: id)
74
+ @notee_comments
75
+ end
70
76
  end
71
77
  end
72
78
  end
@@ -3,7 +3,7 @@ require 'redcarpet'
3
3
  module Notee
4
4
  module Helpers
5
5
  module ViewHelper
6
- def notee_content (notee)
6
+ def notee_content(notee)
7
7
 
8
8
  return if notee.nil?
9
9
 
@@ -21,9 +21,7 @@ module Notee
21
21
  end
22
22
 
23
23
  def notee_comment_box(id)
24
- @comments = Notee::Comment.where(post_id: id)
25
- @comment = Notee::Comment.new
26
- return render :partial => "notee/partials/comment_box.html.erb", :locals => { :post_id => id}
24
+ return render :partial => "notee/partials/comment_box.html.erb", :locals => { :post_id => id, :recaptcha => Notee.recaptcha_key}
27
25
  end
28
26
  end
29
27
  end
@@ -1,3 +1,3 @@
1
1
  module Notee
2
- VERSION = "0.3.6"
2
+ VERSION = "0.3.7"
3
3
  end
@@ -62,6 +62,8 @@ require 'notee'
62
62
  Notee.configure do |config|
63
63
  config.notee_id = "hogehoge"
64
64
  config.notee_password = "hogehoge"
65
+ config.recaptcha_key = "hogehoge"
66
+ config.recaptcha_secret_key = "hogehoge"
65
67
  end
66
68
  EOC
67
69
 
@@ -3020,3 +3020,5 @@ rack (2.0.1) lib/rack/handler/webrick.rb:86:in `service'
3020
3020
  Rendered /Users/takujifunao/Hack/01_mine/02_lib/notee/vendor/bundle/ruby/2.3.0/gems/actionpack-5.0.0/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (213.0ms)
3021
3021
  Rendered /Users/takujifunao/Hack/01_mine/02_lib/notee/vendor/bundle/ruby/2.3.0/gems/actionpack-5.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.2ms)
3022
3022
  Rendered /Users/takujifunao/Hack/01_mine/02_lib/notee/vendor/bundle/ruby/2.3.0/gems/actionpack-5.0.0/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (198.4ms)
3023
+ DEPRECATION WARNING: ActiveRecord::Base.raise_in_transactional_callbacks= is deprecated, has no effect and will be removed without replacement. (called from load at /Users/takujifunao/Hack/01_mine/02_lib/notee/vendor/bundle/ruby/2.3.0/bin/rake:23)
3024
+ DEPRECATION WARNING: ActiveRecord::Base.raise_in_transactional_callbacks= is deprecated, has no effect and will be removed without replacement. (called from load at /Users/takujifunao/Hack/01_mine/02_lib/notee/vendor/bundle/ruby/2.3.0/bin/rake:23)
@@ -0,0 +1,19 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2
+
3
+ one:
4
+ name: MyString
5
+ email: MyString
6
+ encrypt_password: MyString
7
+ profile: MyText
8
+ profile_img: MyString
9
+ sns: MyText
10
+ role: 1
11
+
12
+ two:
13
+ name: MyString
14
+ email: MyString
15
+ encrypt_password: MyString
16
+ profile: MyText
17
+ profile_img: MyString
18
+ sns: MyText
19
+ role: 1
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ module Notee
4
+ class UserTest < ActiveSupport::TestCase
5
+ # test "the truth" do
6
+ # assert true
7
+ # end
8
+ end
9
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: notee
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - takujifunao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-09 00:00:00.000000000 Z
11
+ date: 2016-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -148,6 +148,7 @@ files:
148
148
  - app/controllers/notee/posts_controller.rb
149
149
  - app/controllers/notee/statuses_controller.rb
150
150
  - app/controllers/notee/tokens_controller.rb
151
+ - app/controllers/notee/users_controller.rb
151
152
  - app/helpers/notee/application_helper.rb
152
153
  - app/helpers/notee/categories_helper.rb
153
154
  - app/helpers/notee/comments_helper.rb
@@ -158,6 +159,7 @@ files:
158
159
  - app/models/notee/image.rb
159
160
  - app/models/notee/post.rb
160
161
  - app/models/notee/token.rb
162
+ - app/models/notee/user.rb
161
163
  - app/views/layouts/notee/application.html.erb
162
164
  - app/views/notee/notees/index.html.erb
163
165
  - app/views/notee/partials/_comment_box.html.erb
@@ -169,6 +171,7 @@ files:
169
171
  - db/migrate/20160605141547_create_notee_images.rb
170
172
  - db/migrate/20160608102012_create_notee_tokens.rb
171
173
  - db/migrate/20160803154954_create_notee_comments.rb
174
+ - db/migrate/20160809145754_create_notee_users.rb
172
175
  - lib/notee.rb
173
176
  - lib/notee/configuration.rb
174
177
  - lib/notee/engine.rb
@@ -353,12 +356,14 @@ files:
353
356
  - test/fixtures/notee/images.yml
354
357
  - test/fixtures/notee/posts.yml
355
358
  - test/fixtures/notee/tokens.yml
359
+ - test/fixtures/notee/users.yml
356
360
  - test/integration/navigation_test.rb
357
361
  - test/models/notee/category_test.rb
358
362
  - test/models/notee/comment_test.rb
359
363
  - test/models/notee/image_test.rb
360
364
  - test/models/notee/post_test.rb
361
365
  - test/models/notee/token_test.rb
366
+ - test/models/notee/user_test.rb
362
367
  - test/notee_test.rb
363
368
  - test/test_helper.rb
364
369
  homepage: https://github.com/maru-3/notee.git
@@ -560,12 +565,14 @@ test_files:
560
565
  - test/fixtures/notee/images.yml
561
566
  - test/fixtures/notee/posts.yml
562
567
  - test/fixtures/notee/tokens.yml
568
+ - test/fixtures/notee/users.yml
563
569
  - test/integration/navigation_test.rb
564
570
  - test/models/notee/category_test.rb
565
571
  - test/models/notee/comment_test.rb
566
572
  - test/models/notee/image_test.rb
567
573
  - test/models/notee/post_test.rb
568
574
  - test/models/notee/token_test.rb
575
+ - test/models/notee/user_test.rb
569
576
  - test/notee_test.rb
570
577
  - test/test_helper.rb
571
578
  has_rdoc: