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 +7 -0
- data/.rabbit +2 -0
- data/README.md +25 -0
- data/Rakefile +17 -0
- data/config.yaml +26 -0
- data/delete_issue_permission.png +0 -0
- data/delete_project_permission.png +0 -0
- data/demo.md +65 -0
- data/do_not_delete.md +235 -0
- data/hide_delete_link_by_view_customize.png +0 -0
- data/logo_with_falcon.png +0 -0
- data/logo_with_qrcode.svg +801 -0
- data/pdf/do_not_delete-do_not_delete.pdf +0 -0
- data/qrcode_rtnds_repository_uri.png +0 -0
- data/redmine_issue_trash.png +0 -0
- data/temporary_allowed.png +0 -0
- data/the_never_deleting_story_logo.svg +1434 -0
- metadata +76 -0
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
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
|
+
{:relative_height='50'}
|
97
|
+
|
98
|
+
{: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
|
+
{: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
|
+
{: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
|
+
{:relative_height='90'}
|
142
|
+
|
143
|
+
# そのプラグインの名は...
|
144
|
+
|
145
|
+
Redmine
|
146
|
+
|
147
|
+

|
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
|
+
{: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
|
+
{: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
|
Binary file
|