loggable_activity 0.1.45 → 0.1.47
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -1
- data/GETTING-STARTED.md +6 -0
- data/README.md +2 -0
- data/docs/LoggableActivity/Activity.html +213 -0
- data/docs/LoggableActivity/Encryption.html +1 -1
- data/docs/LoggableActivity/EncryptionKey.html +13 -13
- data/docs/LoggableActivity/Hooks.html +456 -1
- data/docs/LoggableActivity/Payload.html +172 -1
- data/docs/LoggableActivity/PayloadsBuilder.html +231 -0
- data/docs/LoggableActivity/UpdatePayloadsBuilder.html +226 -1
- data/docs/created.rid +10 -10
- data/docs/js/navigation.js.gz +0 -0
- data/docs/js/search_index.js +1 -1
- data/docs/js/search_index.js.gz +0 -0
- data/docs/js/searcher.js.gz +0 -0
- data/docs/table_of_contents.html +230 -0
- data/lib/generators/loggable_activity/templates/create_loggable_encryption_keys.rb +1 -1
- data/lib/loggable_activity/activity.rb +2 -0
- data/lib/loggable_activity/encryption.rb +1 -1
- data/lib/loggable_activity/encryption_key.rb +8 -8
- data/lib/loggable_activity/version.rb +1 -1
- metadata +2 -22
- data/doc/.nojekyll +0 -1
- data/doc/CHANGELOG_md.html +0 -125
- data/doc/CODE_OF_CONDUCT_md.html +0 -220
- data/doc/CONSIDERTIONS_md.html +0 -227
- data/doc/CreateLoggableActivities.html +0 -144
- data/doc/CreateLoggableEncryptionKeys.html +0 -140
- data/doc/CreateLoggablePayloads.html +0 -144
- data/doc/GETTING-STARTED_md.html +0 -186
- data/doc/Gemfile.html +0 -104
- data/doc/Gemfile_lock.html +0 -152
- data/doc/LICENSE_txt.html +0 -104
- data/doc/LoggableActivity/CurrentUser.html +0 -99
- data/doc/LoggableActivity/Generators/InstallGenerator.html +0 -178
- data/doc/LoggableActivity/Generators.html +0 -91
- data/doc/README_md.html +0 -138
- data/doc/ROADMAP_md.html +0 -151
- data/doc/Rakefile.html +0 -102
- data/doc/bin/setup.html +0 -100
- data/doc/notes/CHEAT_SHEET_md.html +0 -130
- data/doc/sig/loggable_activity_rbs.html +0 -101
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 769f6634b248e3b70df41eb296770debee95b28e4e80f16f5c1b548f594dfde2
|
4
|
+
data.tar.gz: 9edc8cbb35e16e0738e747ddb3cd8b953929a3cb4524ea623d118fed8bf38022
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd00a44dff499dd739c210a6d15ebf30b8a281f6f20006922f39cb0411f939be982abd1b4c82bc39257237ea804422b358f5ba2b63a9d7531a0a3164fdf37240
|
7
|
+
data.tar.gz: 0f2e77814f90963fb65c322cc28e3be34faf62d079e7c7bfce98d80700d5a6c31fea40761e1ee62e85e2e0ae7b16852e1ff822374d684cdc029460a62ee2c82f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
- nothing so far
|
3
|
+
|
4
|
+
## [0.1.47] - 2024-02-16
|
5
|
+
### Breaking change
|
6
|
+
- Updated encryption_key to be 32 bytes
|
7
|
+
- Updated README.md
|
8
|
+
- Updated GETTING_STARTED.md
|
9
|
+
- Added PULL_REQUEST_TEMPLATE.md
|
10
|
+
## [0.1.46] - 2024-02-16
|
11
|
+
- Fixed spelling error in EncryptionKey
|
3
12
|
## [0.1.43] - 2024-02-15
|
4
13
|
- Updated README.md and GETTING-STARTED.md
|
5
14
|
## [0.1.39] - 2024-02-12
|
@@ -7,6 +16,5 @@
|
|
7
16
|
## [0.1.38] - 2024-02-12
|
8
17
|
- Removed dependency on awesome print
|
9
18
|
## [0.1.35] - 2024-02-11
|
10
|
-
|
11
19
|
- Initial release
|
12
20
|
|
data/GETTING-STARTED.md
CHANGED
@@ -78,3 +78,9 @@ Then an `LoggableActivity::Activity` is created. You can inspect it from the ter
|
|
78
78
|
puts activity = Loggable::Activity.last
|
79
79
|
puts activity.attrs
|
80
80
|
```
|
81
|
+
|
82
|
+
## For developers
|
83
|
+
If you want to contribute to the development and try it out in the process
|
84
|
+
- 1 Down the demo project from [demo project on github](https://github.com/maxgronlund/LoggableActivityDemoApp)
|
85
|
+
- 2 Update the Gemfile in the demo project so it points to your localhost.
|
86
|
+
- 3 you can now build and test you version of the gem `$ gem build loggable_activity.gemspec`
|
data/README.md
CHANGED
@@ -5,6 +5,8 @@ Secure protect data and log how it is handled
|
|
5
5
|
- Prepare for General Data Protection Regulation (GDPR) compliance.
|
6
6
|
- Handles activities that involves more than one table in the DB.
|
7
7
|
|
8
|
+
### Important!
|
9
|
+
This project is under development and not ready for production. There might be breaking changes, so please consult the CHANGELOG.md
|
8
10
|
### What it is not
|
9
11
|
- An error logging system
|
10
12
|
- A paper trails system with rollback.
|
@@ -75,11 +75,19 @@
|
|
75
75
|
<li ><a href="#method-c-activities_for_actor">::activities_for_actor</a>
|
76
76
|
<li ><a href="#method-c-latest">::latest</a>
|
77
77
|
<li ><a href="#method-i-actor_display_name">#actor_display_name</a>
|
78
|
+
<li ><a href="#method-i-actor_key">#actor_key</a>
|
78
79
|
<li ><a href="#method-i-attrs">#attrs</a>
|
80
|
+
<li ><a href="#method-i-must_have_at_least_one_payload">#must_have_at_least_one_payload</a>
|
81
|
+
<li ><a href="#method-i-ordered_payloads">#ordered_payloads</a>
|
82
|
+
<li ><a href="#method-i-previous_associations_attrs">#previous_associations_attrs</a>
|
83
|
+
<li ><a href="#method-i-primary_payload">#primary_payload</a>
|
79
84
|
<li ><a href="#method-i-primary_payload_attrs">#primary_payload_attrs</a>
|
80
85
|
<li ><a href="#method-i-record_display_name">#record_display_name</a>
|
86
|
+
<li ><a href="#method-i-record_key">#record_key</a>
|
81
87
|
<li ><a href="#method-i-relations_attrs">#relations_attrs</a>
|
82
88
|
<li ><a href="#method-i-update_activity_attrs">#update_activity_attrs</a>
|
89
|
+
<li ><a href="#method-i-update_attrs">#update_attrs</a>
|
90
|
+
<li ><a href="#method-i-updated_relations_attrs">#updated_relations_attrs</a>
|
83
91
|
</ul>
|
84
92
|
</div>
|
85
93
|
|
@@ -482,6 +490,211 @@
|
|
482
490
|
|
483
491
|
</section>
|
484
492
|
|
493
|
+
<section id="private-instance-5Buntitled-5D-method-details" class="method-section">
|
494
|
+
<header>
|
495
|
+
<h3>Private Instance Methods</h3>
|
496
|
+
</header>
|
497
|
+
|
498
|
+
<div id="method-i-actor_key" class="method-detail ">
|
499
|
+
<div class="method-header">
|
500
|
+
<div class="method-heading">
|
501
|
+
<span class="method-name">actor_key</span><span
|
502
|
+
class="method-args">()</span>
|
503
|
+
<span class="method-click-advice">click to toggle source</span>
|
504
|
+
</div>
|
505
|
+
</div>
|
506
|
+
|
507
|
+
<div class="method-description">
|
508
|
+
|
509
|
+
|
510
|
+
<div class="method-source-code" id="actor_key-source">
|
511
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 266</span>
|
512
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">actor_key</span>
|
513
|
+
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">actor</span>.<span class="ruby-identifier">nil?</span>
|
514
|
+
<span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">EncryptionKey</span>.<span class="ruby-identifier">for_record</span>(<span class="ruby-identifier">actor</span>)&.<span class="ruby-identifier">key</span>
|
515
|
+
<span class="ruby-keyword">end</span></pre>
|
516
|
+
</div>
|
517
|
+
</div>
|
518
|
+
|
519
|
+
|
520
|
+
</div>
|
521
|
+
|
522
|
+
<div id="method-i-must_have_at_least_one_payload" class="method-detail ">
|
523
|
+
<div class="method-header">
|
524
|
+
<div class="method-heading">
|
525
|
+
<span class="method-name">must_have_at_least_one_payload</span><span
|
526
|
+
class="method-args">()</span>
|
527
|
+
<span class="method-click-advice">click to toggle source</span>
|
528
|
+
</div>
|
529
|
+
</div>
|
530
|
+
|
531
|
+
<div class="method-description">
|
532
|
+
|
533
|
+
|
534
|
+
<div class="method-source-code" id="must_have_at_least_one_payload-source">
|
535
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 271</span>
|
536
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">must_have_at_least_one_payload</span>
|
537
|
+
<span class="ruby-identifier">errors</span>.<span class="ruby-identifier">add</span>(<span class="ruby-value">:payloads</span>, <span class="ruby-string">'must have at least one payload'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">empty?</span>
|
538
|
+
<span class="ruby-keyword">end</span></pre>
|
539
|
+
</div>
|
540
|
+
</div>
|
541
|
+
|
542
|
+
|
543
|
+
</div>
|
544
|
+
|
545
|
+
<div id="method-i-ordered_payloads" class="method-detail ">
|
546
|
+
<div class="method-header">
|
547
|
+
<div class="method-heading">
|
548
|
+
<span class="method-name">ordered_payloads</span><span
|
549
|
+
class="method-args">()</span>
|
550
|
+
<span class="method-click-advice">click to toggle source</span>
|
551
|
+
</div>
|
552
|
+
</div>
|
553
|
+
|
554
|
+
<div class="method-description">
|
555
|
+
|
556
|
+
|
557
|
+
<div class="method-source-code" id="ordered_payloads-source">
|
558
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 257</span>
|
559
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">ordered_payloads</span>
|
560
|
+
<span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">order</span>(<span class="ruby-value">:payload_type</span>)
|
561
|
+
<span class="ruby-keyword">end</span></pre>
|
562
|
+
</div>
|
563
|
+
</div>
|
564
|
+
|
565
|
+
|
566
|
+
</div>
|
567
|
+
|
568
|
+
<div id="method-i-previous_associations_attrs" class="method-detail ">
|
569
|
+
<div class="method-header">
|
570
|
+
<div class="method-heading">
|
571
|
+
<span class="method-name">previous_associations_attrs</span><span
|
572
|
+
class="method-args">()</span>
|
573
|
+
<span class="method-click-advice">click to toggle source</span>
|
574
|
+
</div>
|
575
|
+
</div>
|
576
|
+
|
577
|
+
<div class="method-description">
|
578
|
+
|
579
|
+
|
580
|
+
<div class="method-source-code" id="previous_associations_attrs-source">
|
581
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 253</span>
|
582
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">previous_associations_attrs</span>
|
583
|
+
<span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'previous_association'</span> }
|
584
|
+
<span class="ruby-keyword">end</span></pre>
|
585
|
+
</div>
|
586
|
+
</div>
|
587
|
+
|
588
|
+
|
589
|
+
</div>
|
590
|
+
|
591
|
+
<div id="method-i-primary_payload" class="method-detail ">
|
592
|
+
<div class="method-header">
|
593
|
+
<div class="method-heading">
|
594
|
+
<span class="method-name">primary_payload</span><span
|
595
|
+
class="method-args">()</span>
|
596
|
+
<span class="method-click-advice">click to toggle source</span>
|
597
|
+
</div>
|
598
|
+
</div>
|
599
|
+
|
600
|
+
<div class="method-description">
|
601
|
+
|
602
|
+
|
603
|
+
<div class="method-source-code" id="primary_payload-source">
|
604
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 237</span>
|
605
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">primary_payload</span>
|
606
|
+
<span class="ruby-identifier">ordered_payloads</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">payload_type</span> <span class="ruby-operator">==</span> <span class="ruby-string">'primary_payload'</span> }
|
607
|
+
<span class="ruby-keyword">end</span></pre>
|
608
|
+
</div>
|
609
|
+
</div>
|
610
|
+
|
611
|
+
|
612
|
+
</div>
|
613
|
+
|
614
|
+
<div id="method-i-record_key" class="method-detail ">
|
615
|
+
<div class="method-header">
|
616
|
+
<div class="method-heading">
|
617
|
+
<span class="method-name">record_key</span><span
|
618
|
+
class="method-args">()</span>
|
619
|
+
<span class="method-click-advice">click to toggle source</span>
|
620
|
+
</div>
|
621
|
+
</div>
|
622
|
+
|
623
|
+
<div class="method-description">
|
624
|
+
|
625
|
+
|
626
|
+
<div class="method-source-code" id="record_key-source">
|
627
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 261</span>
|
628
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">record_key</span>
|
629
|
+
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">nil?</span>
|
630
|
+
<span class="ruby-constant">LoggableActivity</span><span class="ruby-operator">::</span><span class="ruby-constant">EncryptionKey</span>.<span class="ruby-identifier">for_record</span>(<span class="ruby-identifier">record</span>)&.<span class="ruby-identifier">key</span>
|
631
|
+
<span class="ruby-keyword">end</span></pre>
|
632
|
+
</div>
|
633
|
+
</div>
|
634
|
+
|
635
|
+
|
636
|
+
</div>
|
637
|
+
|
638
|
+
<div id="method-i-update_attrs" class="method-detail ">
|
639
|
+
<div class="method-header">
|
640
|
+
<div class="method-heading">
|
641
|
+
<span class="method-name">update_attrs</span><span
|
642
|
+
class="method-args">()</span>
|
643
|
+
<span class="method-click-advice">click to toggle source</span>
|
644
|
+
</div>
|
645
|
+
</div>
|
646
|
+
|
647
|
+
<div class="method-description">
|
648
|
+
|
649
|
+
|
650
|
+
<div class="method-source-code" id="update_attrs-source">
|
651
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 229</span>
|
652
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">update_attrs</span>
|
653
|
+
<span class="ruby-identifier">update_payload_attrs</span> = <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'update_payload'</span> }
|
654
|
+
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">update_payload_attrs</span>
|
655
|
+
|
656
|
+
<span class="ruby-identifier">update_payload_attrs</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:payload_type</span>)
|
657
|
+
<span class="ruby-identifier">update_payload_attrs</span>
|
658
|
+
<span class="ruby-keyword">end</span></pre>
|
659
|
+
</div>
|
660
|
+
</div>
|
661
|
+
|
662
|
+
|
663
|
+
</div>
|
664
|
+
|
665
|
+
<div id="method-i-updated_relations_attrs" class="method-detail ">
|
666
|
+
<div class="method-header">
|
667
|
+
<div class="method-heading">
|
668
|
+
<span class="method-name">updated_relations_attrs</span><span
|
669
|
+
class="method-args">()</span>
|
670
|
+
<span class="method-click-advice">click to toggle source</span>
|
671
|
+
</div>
|
672
|
+
</div>
|
673
|
+
|
674
|
+
<div class="method-description">
|
675
|
+
|
676
|
+
|
677
|
+
<div class="method-source-code" id="updated_relations_attrs-source">
|
678
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/activity.rb, line 241</span>
|
679
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">updated_relations_attrs</span>
|
680
|
+
<span class="ruby-identifier">grouped_associations</span> = <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">group_by</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:record_class</span>] }
|
681
|
+
|
682
|
+
<span class="ruby-identifier">grouped_associations</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">record_class</span>, <span class="ruby-identifier">payloads</span><span class="ruby-operator">|</span>
|
683
|
+
<span class="ruby-identifier">previous_attrs</span> = <span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'previous_association'</span> }
|
684
|
+
<span class="ruby-identifier">current_attrs</span> = <span class="ruby-identifier">payloads</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">:payload_type</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'current_association'</span> }
|
685
|
+
<span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">previous_attrs</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">current_attrs</span>.<span class="ruby-identifier">nil?</span>
|
686
|
+
|
687
|
+
{ <span class="ruby-value">record_class:</span>, <span class="ruby-value">previous_attrs:</span>, <span class="ruby-value">current_attrs:</span> }
|
688
|
+
<span class="ruby-keyword">end</span>.<span class="ruby-identifier">compact</span>
|
689
|
+
<span class="ruby-keyword">end</span></pre>
|
690
|
+
</div>
|
691
|
+
</div>
|
692
|
+
|
693
|
+
|
694
|
+
</div>
|
695
|
+
|
696
|
+
</section>
|
697
|
+
|
485
698
|
</section>
|
486
699
|
</main>
|
487
700
|
|
@@ -145,7 +145,7 @@
|
|
145
145
|
<div class="method-source-code" id="decrypt-source">
|
146
146
|
<pre><span class="ruby-comment"># File lib/loggable_activity/encryption.rb, line 43</span>
|
147
147
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">decrypt</span>(<span class="ruby-identifier">data</span>, <span class="ruby-identifier">encryption_key</span>)
|
148
|
-
<span class="ruby-keyword">return</span> <span class="ruby-
|
148
|
+
<span class="ruby-keyword">return</span> <span class="ruby-string">""</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">nil?</span>
|
149
149
|
<span class="ruby-keyword">return</span> <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">'loggable.activity.deleted'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">encryption_key</span>.<span class="ruby-identifier">nil?</span>
|
150
150
|
|
151
151
|
<span class="ruby-identifier">cipher</span> = <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">Cipher</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">'AES-128-CBC'</span>).<span class="ruby-identifier">decrypt</span>
|
@@ -131,7 +131,7 @@
|
|
131
131
|
|
132
132
|
<pre class="ruby">{
|
133
133
|
<span class="ruby-value">:id</span> <span class="ruby-operator">=></span> <span class="ruby-value">39</span>,
|
134
|
-
<span class="ruby-value">:
|
134
|
+
<span class="ruby-value">:parent_key_id</span> <span class="ruby-operator">=></span> <span class="ruby-value">38</span>,
|
135
135
|
<span class="ruby-value">:key</span> <span class="ruby-operator">=></span> <span class="ruby-string">"a8f4774e7f42eb253045a4db7de7b79e"</span>,
|
136
136
|
<span class="ruby-value">:record_type</span> <span class="ruby-operator">=></span> <span class="ruby-string">"User"</span>,
|
137
137
|
<span class="ruby-value">:record_id</span> <span class="ruby-operator">=></span> <span class="ruby-value">1</span>
|
@@ -139,12 +139,12 @@
|
|
139
139
|
</pre>
|
140
140
|
|
141
141
|
<div class="method-source-code" id="create_encryption_key-source">
|
142
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line
|
142
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line 91</span>
|
143
143
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">create_encryption_key</span>(<span class="ruby-identifier">record_type</span>, <span class="ruby-identifier">record_id</span>, <span class="ruby-identifier">parent_key</span> = <span class="ruby-keyword">nil</span>)
|
144
144
|
<span class="ruby-keyword">if</span> <span class="ruby-identifier">parent_key</span>
|
145
|
-
<span class="ruby-identifier">create</span>(<span class="ruby-value">record_type:</span
|
145
|
+
<span class="ruby-identifier">create</span>(<span class="ruby-value">record_type:</span>, <span class="ruby-value">record_id:</span>, <span class="ruby-value">key:</span> <span class="ruby-identifier">random_key</span>, <span class="ruby-value">parent_key:</span> )
|
146
146
|
<span class="ruby-keyword">else</span>
|
147
|
-
<span class="ruby-identifier">create</span>(<span class="ruby-value">record_type:</span
|
147
|
+
<span class="ruby-identifier">create</span>(<span class="ruby-value">record_type:</span>, <span class="ruby-value">record_id:</span>, <span class="ruby-value">key:</span> <span class="ruby-identifier">random_key</span>)
|
148
148
|
<span class="ruby-keyword">end</span>
|
149
149
|
<span class="ruby-keyword">end</span></pre>
|
150
150
|
</div>
|
@@ -179,7 +179,7 @@
|
|
179
179
|
|
180
180
|
<pre class="ruby">{
|
181
181
|
<span class="ruby-value">:id</span> <span class="ruby-operator">=></span> <span class="ruby-value">39</span>,
|
182
|
-
<span class="ruby-value">:
|
182
|
+
<span class="ruby-value">:parent_key_id</span> <span class="ruby-operator">=></span> <span class="ruby-value">38</span>,
|
183
183
|
<span class="ruby-value">:key</span> <span class="ruby-operator">=></span> <span class="ruby-string">"a8f4774e7f42eb253045a4db7de7b79e"</span>,
|
184
184
|
<span class="ruby-value">:record_type</span> <span class="ruby-operator">=></span> <span class="ruby-string">"User"</span>,
|
185
185
|
<span class="ruby-value">:record_id</span> <span class="ruby-operator">=></span> <span class="ruby-value">1</span>
|
@@ -187,9 +187,9 @@
|
|
187
187
|
</pre>
|
188
188
|
|
189
189
|
<div class="method-source-code" id="for_record-source">
|
190
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line
|
190
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line 65</span>
|
191
191
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">for_record</span>(<span class="ruby-identifier">record</span>, <span class="ruby-identifier">parent_key</span> = <span class="ruby-keyword">nil</span>)
|
192
|
-
<span class="ruby-identifier">encryption_key</span> = <span class="ruby-identifier">find_by</span>(<span class="ruby-value">record:</span>
|
192
|
+
<span class="ruby-identifier">encryption_key</span> = <span class="ruby-identifier">find_by</span>(<span class="ruby-value">record:</span>)
|
193
193
|
<span class="ruby-keyword">return</span> <span class="ruby-identifier">encryption_key</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">encryption_key</span>
|
194
194
|
|
195
195
|
<span class="ruby-identifier">create_encryption_key</span>(<span class="ruby-identifier">record</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>, <span class="ruby-identifier">record</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">parent_key</span>)
|
@@ -226,7 +226,7 @@
|
|
226
226
|
|
227
227
|
<pre class="ruby">{
|
228
228
|
<span class="ruby-value">:id</span> <span class="ruby-operator">=></span> <span class="ruby-value">39</span>,
|
229
|
-
<span class="ruby-value">:
|
229
|
+
<span class="ruby-value">:parent_key_id</span> <span class="ruby-operator">=></span> <span class="ruby-value">38</span>,
|
230
230
|
<span class="ruby-value">:key</span> <span class="ruby-operator">=></span> <span class="ruby-string">"a8f4774e7f42eb253045a4db7de7b79e"</span>,
|
231
231
|
<span class="ruby-value">:record_type</span> <span class="ruby-operator">=></span> <span class="ruby-string">"User"</span>,
|
232
232
|
<span class="ruby-value">:record_id</span> <span class="ruby-operator">=></span> <span class="ruby-value">1</span>
|
@@ -234,9 +234,9 @@
|
|
234
234
|
</pre>
|
235
235
|
|
236
236
|
<div class="method-source-code" id="for_record_by_type_and_id-source">
|
237
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line
|
237
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line 39</span>
|
238
238
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">for_record_by_type_and_id</span>(<span class="ruby-identifier">record_type</span>, <span class="ruby-identifier">record_id</span>, <span class="ruby-identifier">parent_key</span> = <span class="ruby-keyword">nil</span>)
|
239
|
-
<span class="ruby-identifier">encryption_key</span> = <span class="ruby-identifier">find_by</span>(<span class="ruby-value">record_type:</span
|
239
|
+
<span class="ruby-identifier">encryption_key</span> = <span class="ruby-identifier">find_by</span>(<span class="ruby-value">record_type:</span>, <span class="ruby-value">record_id:</span>)
|
240
240
|
<span class="ruby-keyword">return</span> <span class="ruby-identifier">encryption_key</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">encryption_key</span>
|
241
241
|
|
242
242
|
<span class="ruby-identifier">create_encryption_key</span>(<span class="ruby-identifier">record_type</span>, <span class="ruby-identifier">record_id</span>, <span class="ruby-identifier">parent_key</span>)
|
@@ -272,7 +272,7 @@
|
|
272
272
|
</pre>
|
273
273
|
|
274
274
|
<div class="method-source-code" id="random_key-source">
|
275
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line
|
275
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line 109</span>
|
276
276
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">random_key</span>
|
277
277
|
<span class="ruby-constant">SecureRandom</span>.<span class="ruby-identifier">hex</span>(<span class="ruby-value">16</span>)
|
278
278
|
<span class="ruby-keyword">end</span></pre>
|
@@ -302,10 +302,10 @@
|
|
302
302
|
<p>Marks the encryption key as deleted by updating the key to nil.</p>
|
303
303
|
|
304
304
|
<div class="method-source-code" id="mark_as_deleted-source">
|
305
|
-
<pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line
|
305
|
+
<pre><span class="ruby-comment"># File lib/loggable_activity/encryption_key.rb, line 15</span>
|
306
306
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">mark_as_deleted</span>
|
307
307
|
<span class="ruby-identifier">update</span>(<span class="ruby-value">key:</span> <span class="ruby-keyword">nil</span>)
|
308
|
-
<span class="ruby-identifier">
|
308
|
+
<span class="ruby-identifier">parent_key</span>.<span class="ruby-identifier">mark_as_deleted</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">parent_key</span>.<span class="ruby-identifier">present?</span>
|
309
309
|
<span class="ruby-keyword">end</span></pre>
|
310
310
|
</div>
|
311
311
|
</div>
|