プロジェクト

全般

プロフィール

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> 

戻る