2011-08-23 112 views
1

我想能夠控制對我的服務器上的一些mercurial存儲庫的訪問。我認爲一個簡單的解決方案是讓所有有限的用戶擁有以「_external」結尾的用戶名。然後,我會更改一些.hgrc文件上的deny_push和deny_read,以根據需要授予它們訪問權限。我像下面那樣設置了我的hgweb.config文件,但是忽略了deny_push和deny_read行。 這是正確的語法嗎?有沒有更好的方式來實現我的目標(我看着Rhodecode,但它似乎是在Windows上相當崩潰)。通過hgweb.config控制訪問

[web] 
style = gitweb 
baseurl = /hg 
allow_push = * 
push_ssl = false 
deny_push = *_external 
deny_read = *_external 

回答

2

你所擁有的最好的辦法是建立與用戶名的列表:

allow_push = user1, user2 
deny_push = user3, user5 
deny_read = user4 

與語法的問題是,你是第一個允許推給大家,然後試圖限制用戶。

+0

有沒有辦法用正則表達式配置文件,所以我不必把每個用戶都放在白/黑名單上? –

+0

我認爲你不能這樣做。 Mercurial會讀取配置文件並根據該文件採取行動。 – Murilo

1

mercurial-server可以爲你做到這一點。這意味着通過ssh而不是通過http連接到你的倉庫,並使用ssh密鑰對來進行身份驗證,但是根據我的經驗,無論如何,這是非常方便的。