user_sqlを使ってownCloudとRedmineを連携してみた

user_sqlというownCloudのプラギンを使うと、RedmineのアカウントでownCloudにログイン出来るように連携できるらしい
ということで試してみた。

2015/12/12 追記

  • Redmine側でログインIDに大文字が入っていると、user_sqlで連携しているユーザがowncloudでログイン出来ない問題ですが、原因が分かりました。
  • user_sql.phpの137行目、355行目にstrtolower($uid)があるのですが、これのstrtolower($uid)strtolowerを消して$uidだけにするとログイン出来るようになります。
  • ただstrtolowerを外すことによってどんな問題が発生するかはまだ分かりません。
  • とりあえず今のところは問題なく使えています。

2015/08/30 追記

  • この方法でユーザの連携を行うと、一部のユーザがログイン出来ないことがわかった。原因はRedmine側のログインIDに大文字アルファベットが入っているとownCloudにログイン出来ないみたい。
  • ownCloud側でユーザを確認するとログインIDがすべて小文字に変換されていて、その小文字に変換されているIDを使用してもログインすることは出来なかった。
  • 一応Redmine側のログインIDをすべて小文字アルファベットで登録すれば連携に関しては問題ないと思う。 対策を考え中...

パッケージのダウンロードと展開

https://apps.owncloud.com/content/show.php/user_sql?content=155512

ここからuser_sqlをダウンロード

展開してコピー
$ sudo -u http tar fvxz user_sql-388830cefba7.tar.gz -C /usr/share/webapps/owncloud/apps/
$ sudo -u http mv /usr/share/webapps/owncloud/apps/user_sql-388830cefba7 /usr/share/webapps/owncloud/apps/user_sql

/usr/share/webapps/owncloud/appsディレクトリにぶっこむだけ
後はowncloudが勝手に認識してくれるわーい

ownCloudでの設定

左上のプルダウンから「アプリ」を選択
無効のタブの下の方に「SQL user backend」があるので有効に。
なかったらApacheを再起動すると出てくるかも

有効にしたら右上のプルダウンから「管理」
設定項目に「SQL」というのが追加されてるはず。

後は設定項目を入力していく。
分からないところはpsqlでRedmineのテーブルを見てそれっぽいのを選択

Connection settings
SQL Driver : PostgreSQL
Host : localhost
Username : redmine
Database : redmine
Password : my_password
Advanced Settings
Table : users
Username Column : login
Password Column : hashed_password
Real Name Column : firstname
Encryption Type : Redmine

とりあえずこれだけ設定すればRedmineのアカウントでログイン出来た。

注意点

/usr/share/webapps/owncloud/apps にぶっこむディレクトリ名は、user_sql/appinfo/info.xml

<id>user_sql</id>

と同じにしなければownCloud側で認識はするけどアプリを有効にしようとすると No app name specified って怒られる
http://stackoverflow.com/questions/21700112/no-app-name-specified-in-owncloud

ちなみにinfo.xmlファイルの

<name>SQL user backend</name>

がownCloudのappsに表示されるアプリ名

最初これを知らずにuser_sqlが無い無いと探しまわってしまった

参考 公式ドキュメント