ヤマムギ

growing hard days.

*

redmine_omniauth_googleプラグインをRedmine3.0.0で動くようにする

   


Redmine-Logo-CyberSprocket-Composite-300x300-png8 copy

redmine_omniauth_googleプラグインをインストールしたところ、エラーが発生。
Redmine3.0.0には対応していないらしい。
なので、Rubyの経験はなかったのですが、基礎は調べて対応してみました。
おかしなところは指摘してもらえたら嬉しいです。

修正後のプラグイン

元のプラグインをForkして修正しました。
https://github.com/yamamanx/redmine_omniauth_google

発生したエラー

app/controllers/redmine_oauth_controller.rb

上記のコードが「undefined method」で怒られるので最初はfind_or_initialize(email)にしたら「Unknown column ‘users.email’ in ‘where clause’:」となった。

Redmine3.0.0の新機能

  • 検索機能の改善 (高速化、未完了チケットのみ検索するオプション、添付ファイル名の検索)
  • トラッカーごとのデフォルトステータスの指定
  • ユーザーに複数のメールアドレスを登録
  • 添付ファイルの説明欄の編集
  • Rails 4.2 / Ruby 2.2 のサポート

主な機能は上記のとおりなので、「複数のメールアドレス登録」がひっかかってしまったのだろうと思いました。

コードの修正箇所

元のコード

app/controllers/redmine_oauth_controller.rb

修正方法

すでにユーザーが登録済かどうかをチェックするのに、メールアドレスを使用しているのを変えなければならない。
ログインIDをキーにすればいいのですが、ログインIDはメールアドレスのアカウント部分か、それが取れなければユーザ名になっている。
かつ、ユーザ名はユーザ名を半角スペースで分割したものか、取れなければ姓、名で対応している。
これらをUserオブジェクト生成前に持ってくればいいのだろうと思いました。

修正後のコード

app/controllers/redmine_oauth_controller.rb

もしかしたら「user.mail = info[“email”]」がひっかかるかと思ったのですが、これはカラムではなくてRedmineのユーザ登録画面のデフォルト値の設定だけのようなので、問題なかったです。

Redmine 認証設定値

redmine-auth-setting

  • 認証が必要
  • 自動ログイン : 1日
  • メールでアカウントを有効化
  • パスワードの最低文字数 : 8
  • 追加メールアドレスの上限 : 5
  • 有効期間の最大値 : 1日
  • 無操作タイムアウト : 4時間
@yamamanx

開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー1年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。

また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - Google, ProjectManagement, Redmine ,

ad

ad

  関連記事

chromium OS をインストールするためのUSBをMacで作る

別にChromeBookを購入するお金をけちるわけではないのですが。 chrom …

GoogleAppsScriptを使ってGmailの本文を解析してSpreadSheetにエクスポートする

GoogleAppsScriptを使ってGmailの本文を解析してSpreadS …

GoogleAppsScriptを使ってGmailをSpreadSheetにエクスポートする

GoogleAppsScriptを使ってGmailをSpreadSheetにエク …

Google関連のAPIを試すためのGoogleSiteを作ってみました

組み込み機能で出来る事は組み込み機能で と思いまして、Googleサイトを試験的 …

Amazon LinuxにRedmine をインストールする(手順整理版)

Amazon LinuxにRedmineをインストールしました手順を記載します。 …

Pandoc PDF出力時に目次とヘッダをつける

目次をつける 環境などはPandoc関連記事をご確認ください。 Pandoc実行 …

SourceTreeからgitサーバへSSHを使ってプッシュする

SSH URI gitのパスは/var/git/pj.gitとします。 [pla …

Tracの外観をプラグインで変更する-TracpathThemeプラグイン

プラグインをインストールするだけで外観を変更する こんな感じのUIで5色(Red …

個人のGoogleカレンダーの予定をPythonで取得する

Google Calendar Twilio ReminderのGoogleカレ …

Redmine3.0.0に CSV Importerプラグインをインストールする

バグ管理や開発の現場だけではなく進捗管理などにも重宝出来るRedmine。 その …