diff options
| author | Christian Weiske <cweiske@cweiske.de> | 2014-05-08 23:09:41 +0200 |
|---|---|---|
| committer | Christian Weiske <cweiske@cweiske.de> | 2014-05-08 23:09:41 +0200 |
| commit | 991497ceb381d1ab6bc79db8bfad4405c8bbd008 (patch) | |
| tree | 5a834af18ff66add07c43784a233789a6b53315a | |
| parent | 9cd731256b243511a3a1a1fcec76a1d5f27eb6d3 (diff) | |
| download | phorkie-991497ceb381d1ab6bc79db8bfad4405c8bbd008.tar.gz phorkie-991497ceb381d1ab6bc79db8bfad4405c8bbd008.zip | |
show remote fork button only if user cannot write
| -rw-r--r-- | data/templates/display-head.htm | 6 | ||||
| -rw-r--r-- | src/phorkie/HtmlHelper.php | 22 |
2 files changed, 28 insertions, 0 deletions
diff --git a/data/templates/display-head.htm b/data/templates/display-head.htm index f610f84..aa7daec 100644 --- a/data/templates/display-head.htm +++ b/data/templates/display-head.htm @@ -8,13 +8,19 @@ <div class="span2 pull-right"> <form method="post" action="{{repo.getLink('fork')}}"> <div class="btn-group pull-right"> + {% if htmlhelper.mayWriteLocally %} <button type="submit" class="btn"><i class="icon-share"></i> fork</button> + {% else %} + <a class="btn" href="{{repo.getLink('remotefork')}}"><i class="icon-share"></i> Fork to remote system</a> + {% endif %} <button class="btn dropdown-toggle" data-toggle="dropdown"> <span class="caret"></span> </button> <ul class="dropdown-menu"> + {% if htmlhelper.mayWriteLocally %} <li><a href="{{repo.getLink('remotefork')}}"><i class="icon-share"></i> Fork to remote system</a></li> <li class="divider"></li> + {% endif %} <li><a href="help#remote-forking"><i class="icon-question-sign"></i> Help on remote forking</a></li> </ul> </div> diff --git a/src/phorkie/HtmlHelper.php b/src/phorkie/HtmlHelper.php index ca5f989..c3336c3 100644 --- a/src/phorkie/HtmlHelper.php +++ b/src/phorkie/HtmlHelper.php @@ -49,6 +49,28 @@ class HtmlHelper { return Tools::fullUrl($path); } + + public function mayWriteLocally() + { + if ($GLOBALS['phorkie']['auth']['securityLevel'] == 0) { + //everyone may do everything + return true; + } + + $logged_in = false; + if (!isset($_SESSION['identity'])) { + //not logged in + } else if ($GLOBALS['phorkie']['auth']['listedUsersOnly']) { + if (in_array($_SESSION['identity'], $GLOBALS['phorkie']['auth']['users'])) { + $logged_in = true; + } + } else { + //session identity exists, no special checks required + $logged_in = true; + } + + return $logged_in; + } } ?> |
