2016-11-19 12 views
-1

gollumの基本的なHTTP認証を設定しようとしていますが、git commitにログインしたユーザ名を使用します。基本認証を許可し、gitコミットのユーザ名を使用するようにGollum-wikiを設定する方法

私は今、私はちょうど私がこれと同等のものを達成することができますどのように把握する必要があり、基本的な認証が機能するようにconfig.ruを変更した:

session['gollum.author'] => "%s" % loggedIn 

それから私は「ジョン・スミス」の文字列を削除することができます。

私はRubyに触れたことはありません。

#!/usr/bin/env ruby 
#-------------------------------------------------------------------- 
# - example custom rack for the Gollum wiki engine 
# - file should be placed in wiki root 
# - RACK_APP environment variable should be set to the filename 
# - entrypoint.sh script will run this app using: 
# $ rackup $RACK_APP -p 4567 
#-------------------------------------------------------------------- 
require 'rubygems' 
require 'gollum/app' 

gollum_path = File.expand_path(File.dirname(__FILE__)) 
wiki_options = { 
    :live_preview => false, 
    :allow_editing => true, 
    :allow_uploads => true, 
    :universal_toc => false, 
} 

users = {'user' => 'password'} 
loggedIn = "anonymous" 

use Rack::Auth::Basic, 'realm' do |username, password| 
    users.key?(username) && users[username] == password 
    loggedIn = username 
end 

Precious::App.set(:gollum_path, gollum_path) 
Precious::App.set(:default_markup, :markdown) 
Precious::App.set(:wiki_options, wiki_options) 
run Precious::App 

#set author 
class Precious::App 
    before do 
     session['gollum.author'] = { 
      :name => "%s" % "john smith", # => "%s" % loggedIn 
      :email => "[email protected]", 
     } 
    end 
end 

だから私は、そのセッションのみプレシャスクラスの名前空間内に存在する見ることができるので、私は私の認証方式から直接設定することはできません。私も試した

use Rack::Auth::Basic, 'realm' do |username, password| 
    users.key?(username) && users[username] == password 
    session['gollum.author'] = { 
     :name => "%s" % "john smith", # => "%s" % username 
     :email => "[email protected]", 
    } 
end 

use Rack::Auth::Basic, 'realm' do |username, password| 
    users.key?(username) && users[username] == password 
    loggedIn = { 
     :name => "%s" % username, 
     :email => "[email protected]", 
    } 
end 

Precious::App.set(:session['gollum.author'], loggedIn) 
+0

タイトルはRailsに関するものですが、Railsについての質問はありません。 'RubyonRails!= Ruby' –

+0

あなたの質問は不明です。タイトルでは、グローバル変数について質問し、テキストではローカル変数について質問します。どちらですか? –

+0

また、ほとんどすべてのプログラミング言語と同様に、Rubyでは変数スコープなどのコア言語の意味をライブラリで変更することができないため、[tag:rack]や[tag:gollum- wiki] –

答えて

1

これは解決策です。一連のユーザーを定義し、基本的なHTTP認証を有効にし、適合したコミットにログインしたユーザー名を使用します。

require 'rubygems' 
require 'gollum/app' 

gollum_path = File.expand_path(File.dirname(__FILE__)) 
wiki_options = { 
    :live_preview => false, 
    :allow_editing => true, 
    :allow_uploads => true, 
    :universal_toc => false, 
} 

users = {'user' => 'password', 
     'user2' => 'password2'} 

use Rack::Auth::Basic, 'realm' do |username, password| 
    if users.key?(username) && users[username] == password 
     Precious::App.set(:loggedInUser, username) 
    end 
end 

Precious::App.set(:gollum_path, gollum_path) 
Precious::App.set(:default_markup, :markdown) 
Precious::App.set(:wiki_options, wiki_options) 
run Precious::App 

#set author 
class Precious::App 
    before do 
     session['gollum.author'] = { 
      :name => "%s" % settings.loggedInUser, 
      :email => "%[email protected]" % settings.loggedInUser, 
     } 
    end 
end 
関連する問題