定数編集用のUIと定数編集権限を持ったロールの追加
要望内容
現状 role = 7(管理者)の時だけ曲の追加ができ、 定数の編集はおそらくデータベース直接編集でしか行えないが、 定数編集用の UI を作成して 定数編集権限のみを持った管理者より権限の少ない role = 2 あたりを新設して 複数人での定数の編集を可能にしたい。
動機
chunirec で曲が追加されなかったり定数が設定されなかったりする問題が発生しており、 過去にも chinivewer や CHUNITHM Tools が消えているため、 属人性が高い状態はあまりよくないと思ったため。
課題
- 同時に編集できないように排他する必要がある。(曲追加も)
- 信頼のおける人以外に権限を与えてしまうと危険。 → すぐに反映せずまずは定数提案リストにユーザ名+ユーザ ID 付きで追加し、 他の人の承認を経て反映されるようにするのが比較的安全か?
- 権限付与が可能なのが管理者のみだった場合、 管理者が管理を放棄した場合の対策であるにも関わらず、 結局管理者が管理を放棄した時点で管理されなくなるのは時間の問題となる。 かといって role = 2 の人に無条件で定数編集権限付与を可能にするのも危険な気もする。 → role = 2 の人のうち最終ログイン時間が一定時間以内の人全員が賛成し、 かつ role = 7 の人が一定期間拒否権を発動しなければ権限が付与される、あたりなら比較的安全か?
これは正直やりたいです。 ただ現行のスコアログにねじ込むのは厳しいかなと感じています。(設計の限界 技術負債)
裏でこっそり作り直そうかなと思ってるのですがちょっと忙しく着手できてないです。 本当に無理そうならこっちにねじ込むことを検討するので、判断はもう少々お待ちいただければと思います。 (OngekiScoreLogなら少なくとも私が死ぬまでは更新するのでご安心ください)
(OngekiScoreLogなら少なくとも私が死ぬまでは更新するのでご安心ください)
頼もしいです……!
まあ管理者云々を置いても便利なのであると嬉しい機能ではありますよね。 CSV読み込みとかあればバージョンアップの時とかでも対応できそうです。 (このあたり既に裏ではスクリプト組んでやってそうですけど)
譜面定数の自動推定機能があると便利ではという意見もありました。 癖の強い譜面だと誰の枠にも入らないこともあるかもしれませんが、 大体の曲はなんとかなる可能性はあるかもしれませんね。
定数が不明な曲が新曲枠・ベスト枠・P枠に含まれていた場合に 周囲の定数が判明している曲により定数の上限・下限を更新していき、 一意に決まれば反映、ですかね。 定数不明な曲があってもその上限・下限を使って更新しても良いと思います。
「一定の利用歴のユーザーなら誰でも手動で定数提案できるようにして、一定数の提案で仮定数として採用・ツール上でも表示するようにしたらどうか」という意見も。
確かに提案リストを挟むのであれば、ロールでなく利用歴で権限持たせたのでいい気がしますね。 権限付与方法の問題も解決できます。
ただ、仮の定数としても結局管理者による確定の手間が発生しますし、ツール上で実際に表示もされるのであれば、確定してしまってもいい気がします。 間違っていれば修正の提案をすればいいだけですし。
以下の機能があるといいかもしれません。
- 確定した際に同じ曲&難易度に対する他の提案を自動削除する機能
- 一定期間経っても提案数が一定数に到達していなければ自動削除する機能(主におかしな定数修正提案の自動削除が目的)
- 特定ユーザの権限剥奪機能(ブラックリスト機能)(本人に気づかれないよう、本人以外から提案を隠す機能としても良い)
- 信頼度自動判定機能(一定期間内に自動削除された回数が一定数を超えると自動でブラックリスト入りする、など)