QA #723
奈良 裕記 さんが6年以上前に更新
h3. ■現象/要望
多数のPJに、メンバー登録+ロール設定を一括設定したい
例
・顧客毎にPJを分割しアクセス制御している。(100PJ)
新規プラグイン用の管理者ロールを、指定範囲内のPJに追加登録必要になった。
(ACL継承やロール自体の権限追加で対処できない場合)
h3. ■解決策
RAILS Consoleで実行可能
下記条件の場合
<pre>
追加対象ロール 名称=unofficial、ロールID=8
追加対象ユーザ ID=cooking、ユーザID=13
対象プロジェクト 識別子= tokyo_13_以下全部
</pre>
rails consoleで下記実行する
<pre><code class="ruby">
Project.where('identifier like ?', "tokyo_13_%").each do |project|
member = Member.new
member.project = project
member.user = User.find_by_login('cooking')
member.roles = [Role.find_by_name('unofficial')]
member.save
end
</code></pre>
h3. ■対応状況
Rails Consoleで一応対応可能
未解決:ユーザIDではなく、グループを指定したい場合の対応方法
h3. ■補足
参考情報
Create users from script/console
http://www.redmine.org/boards/2/topics/8550
注意点
ロール名称に半角英数以外が含まれる場合は,非ASCIIとしてエラーになった。
find_by_nameではなく、find(ID)を使用することで回避できる。
<pre><code class="ruby">
# member.roles = [Role.find_by_name('unofficial')]
member.roles = [Role.find(8)]
</code></pre>
戻る