rabbit-slide-nishidayuya-do_not_delete 1.2023.07.07.0

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 1ecc78ec8a7cbe003518b4ad334993ceed6483f40f5dff63f56c749757c026b3
4
+ data.tar.gz: 234251ca5ab7b7429504c74b9c5bed5a54946d563c67a222c6369ecbad3cffcb
5
+ SHA512:
6
+ metadata.gz: 4f912842eeb6f6e7ec3c399f64db96c1235b40e6605fcc028e99dc645f9870c1f6572f31da963e5139ea6425565b0906901333f7a140edcfcdc31091eefa3837
7
+ data.tar.gz: '08ef8218ce14e130e804da284cf48644a84f637826f0ddf0e69e7463cef3879c1c7679c9255daad29854471fca8204a5c75b4fa0fad0994cf191a8084c2b0a97'
data/.rabbit ADDED
@@ -0,0 +1,2 @@
1
+ --size 1368,768
2
+ do_not_delete.md
data/README.md ADDED
@@ -0,0 +1,25 @@
1
+ # 削除操作 しない・させない・ゆるさない
2
+
3
+ [Redmine Japan Vol.3](https://redmine-japan.org/timetable/#b07-1) の発表資料
4
+
5
+ 2023-07-07に開催された.
6
+
7
+ ## 作者向け
8
+
9
+ ### 表示
10
+
11
+ rake
12
+
13
+ ### 公開
14
+
15
+ rake publish
16
+
17
+ ## 閲覧者向け
18
+
19
+ ### インストール
20
+
21
+ gem install rabbit-slide-nishidayuya-do_not_delete
22
+
23
+ ### 表示
24
+
25
+ rabbit rabbit-slide-nishidayuya-do_not_delete.gem
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("rabbit-theme-YOUR-THEME")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
data/config.yaml ADDED
@@ -0,0 +1,26 @@
1
+ ---
2
+ id: do_not_delete
3
+ base_name: do_not_delete
4
+ tags:
5
+ - Redmine
6
+ - RedminePlugin
7
+ presentation_date: "2023-07-07"
8
+ presentation_start_time:
9
+ presentation_end_time:
10
+ version: 1.2023.07.07.0
11
+ licenses:
12
+ - X11 License
13
+ slideshare_id:
14
+ speaker_deck_id:
15
+ vimeo_id:
16
+ youtube_id:
17
+ width: 1368
18
+ height: 768
19
+ source_code_uri:
20
+ author:
21
+ markup_language: :markdown
22
+ name: Yuya.Nishida.
23
+ email: yuyaAT@ATj96DOT.DOTorg
24
+ rubygems_user: nishidayuya
25
+ slideshare_user: nishidayuya
26
+ speaker_deck_user: nishidayuya
Binary file
Binary file
data/demo.md ADDED
@@ -0,0 +1,65 @@
1
+ # デモ内容
2
+
3
+ ## 準備
4
+
5
+ http://localhost:3000/ を開く
6
+
7
+ ## プロジェクト削除
8
+
9
+ 「管理」クリック
10
+
11
+ 「プロジェクト」クリック
12
+
13
+ 削除クリック
14
+
15
+ →403になる.
16
+
17
+ ## ユーザーを削除
18
+
19
+ 「管理」クリック
20
+
21
+ 「ユーザー」クリック
22
+
23
+ 削除クリック
24
+
25
+ →403になる.
26
+
27
+ ## Issue削除
28
+
29
+ 「プロジェクト」クリック
30
+
31
+ 「rtnds-2023-07-03-1」クリック
32
+
33
+ 「チケット」クリック
34
+
35
+ Issueの行で右クリック
36
+
37
+ →「チケットを削除」が非活性化されている.
38
+
39
+ ## Issue削除をAPIで
40
+
41
+ ```console
42
+ curl --silent \
43
+ --dump-header - \
44
+ --header 'Content-Type: application/json' \
45
+ --header 'X-Redmine-API-Key: f1dcd7245a6bb18d36df3a1d2bebde9f1fc99280 \
46
+ --request DELETE \
47
+ http://localhost:3000/issues/2.json'
48
+ ```
49
+
50
+ ## 一時的な削除有効化
51
+
52
+ 「管理」クリック
53
+
54
+ 「一時的な削除有効化」クリック
55
+
56
+ 「ユーザー」と「Expire after」
57
+
58
+ 「作成」クリック
59
+
60
+ ## rails console
61
+
62
+ ```ruby
63
+ issue = Issue.first!
64
+ issue.destroy!
65
+ ```
data/do_not_delete.md ADDED
@@ -0,0 +1,235 @@
1
+ # 削除操作 しない させない ゆるさない
2
+
3
+ author
4
+ : 西田雄也
5
+ ネットワーク応用通信研究所
6
+ 2023-07-07
7
+
8
+ allotted-time
9
+ : 10m
10
+
11
+ theme
12
+ : lightning-simple
13
+
14
+ # 自己 紹介
15
+
16
+ # 自己紹介
17
+
18
+ - 西田雄也 ネットワーク応用通信研究所
19
+ - Ruby City MATSUE(島根県)から参りました!
20
+ - GitHub: [https://github.com/nishidayuya](https://github.com/nishidayuya)
21
+ - Twitter: [https://twitter.com/nishidayuya](https://twitter.com/nishidayuya)
22
+ - 趣味ではなにかツールを作っています.
23
+ - dpu: Git作業ディレクトリ上のパスを指定するとタグあるいはコミットIDを用いたGitHub.com上で参照可能なURIを生成する.
24
+ - 2023-09-16の松江Ruby会議10でしゃべります.
25
+
26
+ # 削除操作のお話
27
+
28
+ # 削除操作のお話
29
+
30
+ - Redmineでの各種削除操作
31
+ - ユーザーの削除
32
+ - プロジェクトの削除
33
+ - Issueの削除
34
+ - Issueのコメントの削除
35
+ - Issueのウォッチャーの削除
36
+ - Wikiページの削除
37
+ - フォーラムの削除
38
+ - フォーラムのメッセージの削除
39
+ - ...
40
+
41
+ # 削除すると
42
+
43
+ - (あたりまえですが)削除したものは残らない
44
+ - 履歴にも残さない
45
+ - Redmine標準では復活させる機能はない
46
+
47
+
48
+
49
+ 削除前に警告される.
50
+
51
+
52
+
53
+ しかしながら,気がつくのは大抵削除した後...
54
+
55
+
56
+
57
+ ではどうするか?
58
+
59
+ # 削除操作 しない!
60
+
61
+ # 削除操作 しない!
62
+
63
+ いくつかは代わりの手段がある.
64
+
65
+ - ユーザー: 「ロック」すればいい.ログインできなくなる.
66
+ - プロジェクト: 「アーカイブ」すればいい.
67
+ プロジェクト一覧やプロジェクト選択肢にあらわれなくなる.
68
+ - Issue: ステータスを「却下」のような
69
+ 「終了したチケット」フラグがオンのものにすればいい.
70
+
71
+ これらの手段なら画面上から簡単に復活できる.
72
+
73
+ # 削除はしなくていいけれど
74
+
75
+ - 「チケットを削除」見えると使いたくなってしまう.
76
+ - 疲れているときとか忘れて削除しちゃうかもしれない.
77
+ - 削除しなくていいことを共有してなかったメンバーは?
78
+
79
+
80
+
81
+ ではどうするか?
82
+
83
+ # 削除操作 させない!
84
+
85
+ # 削除操作 させない!
86
+
87
+ 4つの方法
88
+
89
+ 1. ロールで削除の権限を落とす
90
+ 2. ゴミ箱プラグインを使う
91
+ 3. View customizeプラグインで非表示化する
92
+ 4. 削除させないためのプラグイン
93
+
94
+ # 1. ロールで削除の権限を落とす
95
+
96
+ ![](delete_project_permission.png){:relative_height='50'}
97
+
98
+ ![](delete_issue_permission.png){:relative_height='110'}
99
+
100
+ # 2. ゴミ箱プラグインを使う
101
+
102
+ - アジャイルウェアさんのゴミ箱プラグイン
103
+ - [https://github.com/agileware-jp/redmine_issue_trash](https://github.com/agileware-jp/redmine_issue_trash)
104
+ - Issueについてのみ扱う.
105
+ - 削除せずにゴミ箱に入ったように見える.
106
+ - Issueのbefore_destroyで削除しようとするIssueのコピーを別テーブルに保持する.
107
+ - 復活できる!
108
+
109
+ # 2. ゴミ箱プラグインを使う
110
+
111
+ ![](redmine_issue_trash.png){:relative_height='80'}
112
+
113
+ - [https://www.slideshare.net/agileware_jp/lychee-redminelychee](https://www.slideshare.net/agileware_jp/lychee-redminelychee) より引用
114
+
115
+ # 3. View customizeプラグインで非表示化する
116
+
117
+ - onozatyさんのView customizeプラグイン
118
+ - [https://github.com/onozaty/redmine-view-customize](https://github.com/onozaty/redmine-view-customize)
119
+ - ファーエンドテクノロジーさんの「View customizeプラグインによるRedmineカスタマイズ集」の「システム管理者権限ユーザーでログインした際にチケット削除ボタンを非表示にする」が良さそう.
120
+
121
+ # 3. View customizeプラグイン
122
+
123
+ ![](hide_delete_link_by_view_customize.png){:relative_height='65'}
124
+
125
+ - [https://github.com/farend/redmine-view-customize-examples/blob/3e7c90f744771d797bbcfb7485682f99be81076e/customizes/27afbc24/customize.md](https://github.com/farend/redmine-view-customize-examples/blob/3e7c90f744771d797bbcfb7485682f99be81076e/customizes/27afbc24/customize.md)より引用
126
+
127
+ # 4. 削除させないためのプラグイン
128
+
129
+ # 今日のために
130
+
131
+ # 作ってきました
132
+
133
+ #  全米が  泣いた(嘘)
134
+
135
+ # そのプラグインの名は...
136
+
137
+ # そのプラグインの名は...
138
+
139
+ Redmine
140
+
141
+ ![](the_never_deleting_story_logo.svg){:relative_height='90'}
142
+
143
+ # そのプラグインの名は...
144
+
145
+ Redmine
146
+
147
+ ![](logo_with_falcon.png)
148
+
149
+ # 邦題
150
+
151
+ # 絶対削除させないマン
152
+
153
+ # デモ
154
+
155
+ # Redmine The NeverDeleting Story a.k.a. 絶対削除させないマン
156
+
157
+ - 削除させない
158
+ - プロジェクト
159
+ - ユーザー
160
+ - Issue
161
+ - システム管理者であろうとも
162
+
163
+ # 絶対削除させないマン
164
+
165
+ - 一時的に削除を許す優しい一面もある
166
+
167
+ ![](temporary_allowed.png){:relative_height='90'}
168
+
169
+ # 本気モード 絶対削除させないマン
170
+
171
+ - 環境変数 `RTNDS_FULL_POWER=1` を設定する.
172
+
173
+
174
+
175
+ - destroyメソッドやdeleteメソッドなど,
176
+ 削除に関連するメソッドをundef_method
177
+ - Rakeタスクやrails consoleによる実行でも削除させない
178
+
179
+ # 今後
180
+
181
+ # 絶対削除させないマン今後 (1)
182
+
183
+ - 急いで作ったので... :>
184
+ - ごく直近について
185
+ - README.md ちゃんと書こう
186
+ - i18n
187
+ - 日本語メッセージ
188
+ - 英語メッセージ
189
+ - 自動試験&CI
190
+ - 管理画面も削除リンク非表示
191
+
192
+ # 絶対削除させないマン今後 (2)
193
+
194
+ - さらに後ほど
195
+ - Rubyが目指している型宣言を書かずに
196
+ 型の恩恵を享受する未来
197
+ - Redmineプラグインでも活用できないだろうか.
198
+ - パイロットアプリケーションとして利用
199
+ - 既存のメソッド置換え
200
+ - モデルがある
201
+ - コントローラとビューがある
202
+
203
+ # まとめ
204
+
205
+ - 削除操作
206
+ - しない: 「ロック」「アーカイブ」「却下」でいいんです
207
+ - させない: 4つの方法
208
+ - ロールで削除の権限を落とす
209
+ - ゴミ箱プラグインを使う
210
+ - View customizeプラグインで非表示化する
211
+ - 絶対削除させないマン
212
+ - ゆるさない: ...
213
+
214
+ # まとめ
215
+
216
+ - 削除操作
217
+ - しない: 「ロック」「アーカイブ」「却下」でいいんです
218
+ - させない: 4つの方法
219
+ - ロールで削除の権限を落とす
220
+ - ゴミ箱プラグインを使う
221
+ - View customizeプラグインで非表示化する
222
+ - 絶対削除させないマン
223
+ - ゆるさない: 権限と絶対削除させないマンが403にします
224
+
225
+ # ご静聴ありがとうございました
226
+
227
+ Redmine
228
+
229
+ ![](logo_with_qrcode.svg){:relative_height="47" :align="right" :relative_margin_right="-5"}
230
+
231
+ a.k.a. 絶対削除させないマン プラグイン
232
+
233
+ [https://github.com/nishidayuya/redmine_the_never_deleting_story](https://github.com/nishidayuya/redmine_the_never_deleting_story)
234
+
235
+ Starはこちら↑
Binary file