sn-revisions 0.2.4 → 0.2.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ef6dde5ce7bff0360fb048f422bca949d38397153bbeb56156c31f2999e2be7
4
- data.tar.gz: 1f1e88f5a87f06e160b12112604b507e27c5306120f6b06f6a481207d5f04afd
3
+ metadata.gz: 3a9d224739a0b4226619d30a6a807159782e6308a6c25b6d19b3cb8d27d93ef2
4
+ data.tar.gz: 7f830a9a38b1d3f5752cd43f2688c1b5ae355e0abd6d31482b99e395a8233539
5
5
  SHA512:
6
- metadata.gz: f9ea13efaca49cf5dfcdbc8f122c0b53302dc94f6e5bd69d19de3f4d30840d08cf7bb7047019584073001c894462bb37eb419eb6e6f7d5e2873fbeea61737496
7
- data.tar.gz: b07790d2b0f691dd4bf16d5d10430786a38305a2c6a0ce158cb04f9034294f1465fa9fac36755c2425309cb102592ef6f947087fbfed9020cdc9e917b172a30f
6
+ metadata.gz: 9a5ea644c900275e06150e26c35f203f1e26b94773e083bd5532be09d7a4c60328da4f6f894e53d6f6b5c45faa583452de5d933a0efdbca2e125512d20680c72
7
+ data.tar.gz: 701820bd4b88de3d0e2a3d091f948162e2adda612bd08128c1ed78ed04383d72a8d7180b2e53bc9dda0193142344986733bca7dd778cc6882ffaae0aea1360b6
@@ -6,8 +6,8 @@ module Revisions
6
6
  before_action :authenticate_user
7
7
 
8
8
  def authenticate_user
9
- user = Revisions::User.find(params[:uid])
10
- if user.key != params[:key]
9
+ user = Revisions::User.find_by_id(params[:uid])
10
+ if !user || !ActiveSupport::SecurityUtils.secure_compare(user.key, params[:key])
11
11
  render_unauthorized
12
12
  return
13
13
  end
@@ -39,7 +39,12 @@ module Revisions
39
39
  end
40
40
  end
41
41
 
42
- render :json => {:name => "Note History", :supported_types => [:Note], :actions => actions}
42
+ render :json => {
43
+ :name => "Note History",
44
+ :supported_types => [:Note],
45
+ :actions => actions,
46
+ deprecation: 'This extension will soon be replaced by Remote History, accessible via the History menu.'
47
+ }
43
48
  end
44
49
 
45
50
  end
@@ -1,17 +1,39 @@
1
- require_dependency "revisions/application_controller"
1
+ require_dependency 'revisions/application_controller'
2
2
 
3
3
  module Revisions
4
4
  class ItemsController < ApplicationController
5
5
  def save
6
6
  items = params[:items]
7
7
  auth_params = params[:auth_params]
8
+ directive = params[:directive]
9
+
10
+ if directive == 'delete-account'
11
+ current_user.destroy
12
+ head :no_content
13
+ return
14
+ end
8
15
 
9
16
  items.each do |item_hash|
10
- item = current_user.items.find_or_create_by(:item_uuid => item_hash["uuid"])
17
+ item = current_user.items.find_or_create_by(item_uuid: item_hash['uuid'])
18
+
19
+ if item_hash['deleted'] == true
20
+ item.destroy
21
+ head :no_content
22
+ next
23
+ end
24
+
11
25
  item.prune_history
12
- item.add_revision(item_hash["content"], item_hash["enc_item_key"], item_hash["auth_hash"], auth_params)
13
- if item.content_type == nil
14
- item.content_type = item_hash["content_type"]
26
+
27
+ item.add_revision(
28
+ items_key_id: item_hash['items_key_id'],
29
+ duplicate_of: item_hash['duplicate_of'],
30
+ content: item_hash['content'],
31
+ enc_item_key: item_hash['enc_item_key'],
32
+ auth_hash: item_hash['auth_hash'],
33
+ auth_params: auth_params
34
+ )
35
+ if item.content_type.nil?
36
+ item.content_type = item_hash['content_type']
15
37
  item.save
16
38
  end
17
39
  end
@@ -1,15 +1,23 @@
1
1
  module Revisions
2
2
  class Item < ApplicationRecord
3
3
 
4
- has_many :revisions, -> { order 'created_at desc' }
5
-
6
- def add_revision(content, item_key, auth_hash, auth_params)
4
+ has_many :revisions, -> { order 'created_at desc' }, dependent: :destroy
5
+
6
+ def add_revision(
7
+ items_key_id: nil,
8
+ duplicate_of: nil,
9
+ content: nil,
10
+ enc_item_key: nil,
11
+ auth_hash: nil,
12
+ auth_params: nil
13
+ )
7
14
  revision = self.revisions.new
15
+ revision.items_key_id = items_key_id
16
+ revision.duplicate_of = duplicate_of
8
17
  revision.content = content
9
- revision.enc_item_key = item_key
18
+ revision.enc_item_key = enc_item_key
10
19
  revision.auth_hash = auth_hash
11
20
  revision.auth_params = auth_params.to_json
12
- # revision.num = self.revisions.length > 0 && self.revisions.first.num ? (self.revisions.first.num + 1) : 0
13
21
  revision.save
14
22
  end
15
23
 
@@ -43,7 +51,9 @@ module Revisions
43
51
  end
44
52
  end
45
53
 
46
- Revision.destroy(discard_ids)
54
+ Revision
55
+ .where(id: discard_ids)
56
+ .delete_all
47
57
  end
48
58
  end
49
59
  end
@@ -1,6 +1,5 @@
1
1
  module Revisions
2
2
  class User < ApplicationRecord
3
- has_many :items
4
-
3
+ has_many :items, dependent: :destroy
5
4
  end
6
5
  end
@@ -0,0 +1,6 @@
1
+ class AddItemsKeyId < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :revisions_revisions, :duplicate_of, :string, after: :id
4
+ add_column :revisions_revisions, :items_key_id, :string, after: :duplicate_of
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  module Revisions
2
- VERSION = '0.2.4'
2
+ VERSION = '0.2.9'
3
3
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sn-revisions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Standard Notes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-12 00:00:00.000000000 Z
11
+ date: 2021-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 5.0.1
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '6'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: 5.0.1
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '6'
27
33
  description: The Note History extension for Standard Notes allows you to track changes
28
34
  to your notes, and restore them to previous versions.
29
35
  email:
@@ -69,6 +75,7 @@ files:
69
75
  - db/migrate/20170211001350_create_revisions_users.rb
70
76
  - db/migrate/20170713154559_change_item_key_to_text.rb
71
77
  - db/migrate/20180526182951_add_auth_params_to_revisions.rb
78
+ - db/migrate/20200925151406_add_items_key_id.rb
72
79
  - lib/revisions.rb
73
80
  - lib/revisions/engine.rb
74
81
  - lib/revisions/version.rb