James Moger
2015-11-10 c332d9a3d4d9485cfe60fb8dd9db7dbde971642c
Do not display fork button if target repo already exists (fixes #944)
1 files modified
5 ■■■■ changed files
src/main/java/com/gitblit/wicket/pages/RepositoryPage.java 5 ●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
@@ -64,6 +64,7 @@
import com.gitblit.utils.BugtraqProcessor;
import com.gitblit.utils.DeepCopier;
import com.gitblit.utils.JGitUtils;
import com.gitblit.utils.ModelUtils;
import com.gitblit.utils.RefLogUtils;
import com.gitblit.utils.StringUtils;
import com.gitblit.wicket.CacheControl;
@@ -370,8 +371,10 @@
            add(new ExternalLink("myForkLink", "").setVisible(false));
        } else {
            String fork = app().repositories().getFork(user.username, model.name);
            String userRepo = ModelUtils.getPersonalPath(user.username) + "/" + StringUtils.stripDotGit(StringUtils.getLastPathElement(model.name));
            boolean hasUserRepo = app().repositories().hasRepository(userRepo);
            boolean hasFork = fork != null;
            boolean canFork = user.canFork(model) && model.hasCommits;
            boolean canFork = user.canFork(model) && model.hasCommits && !hasUserRepo;
            if (hasFork || !canFork) {
                // user not allowed to fork or fork already exists or repo forbids forking