rabbit-slide-nishidayuya-do_not_delete 1.2023.07.07.0

Sign up to get free protection for your applications and to get access to all the features.
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