summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit/client
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2014-06-08 10:30:39 -0400
committerJames Moger <james.moger@gitblit.com>2014-06-13 08:00:48 -0400
commit6651a8e96bdc51b0c558b88e1c77fcfbed1837da (patch)
treeb2d89a6dd77868783485af61636c65edf32b1861 /src/main/java/com/gitblit/client
parent2bfea381bbcea934f7e20f8c00db86e990c2fc93 (diff)
downloadgitblit-ticket/75.tar.gz
gitblit-ticket/75.zip
Move repository ownership to the UserModel and prepare for project ownershipticket/75
Diffstat (limited to 'src/main/java/com/gitblit/client')
-rw-r--r--src/main/java/com/gitblit/client/EditRepositoryDialog.java6
-rw-r--r--src/main/java/com/gitblit/client/EditUserDialog.java4
-rw-r--r--src/main/java/com/gitblit/client/GitblitClient.java24
-rw-r--r--src/main/java/com/gitblit/client/RepositoriesPanel.java7
-rw-r--r--src/main/java/com/gitblit/client/RepositoriesTableModel.java7
5 files changed, 30 insertions, 18 deletions
diff --git a/src/main/java/com/gitblit/client/EditRepositoryDialog.java b/src/main/java/com/gitblit/client/EditRepositoryDialog.java
index ef665d10..a7cf4510 100644
--- a/src/main/java/com/gitblit/client/EditRepositoryDialog.java
+++ b/src/main/java/com/gitblit/client/EditRepositoryDialog.java
@@ -579,8 +579,6 @@ public class EditRepositoryDialog extends JDialog {
repository.name = rname;
repository.description = descriptionField.getText();
- repository.owners.clear();
- repository.owners.addAll(ownersPalette.getSelections());
repository.HEAD = headRefField.getSelectedItem() == null ? null
: headRefField.getSelectedItem().toString();
repository.gcPeriod = (Integer) gcPeriod.getSelectedItem();
@@ -722,6 +720,10 @@ public class EditRepositoryDialog extends JDialog {
return teamsPalette.getPermissions();
}
+ public List<String> getOwners() {
+ return ownersPalette.getSelections();
+ }
+
public void setCustomFields(RepositoryModel repository, Map<String, String> customFields) {
customFieldsPanel.removeAll();
customTextfields = new ArrayList<JTextField>();
diff --git a/src/main/java/com/gitblit/client/EditUserDialog.java b/src/main/java/com/gitblit/client/EditUserDialog.java
index 676916b2..4d0c1c8e 100644
--- a/src/main/java/com/gitblit/client/EditUserDialog.java
+++ b/src/main/java/com/gitblit/client/EditUserDialog.java
@@ -393,7 +393,7 @@ public class EditUserDialog extends JDialog {
List<String> restricted = new ArrayList<String>();
for (RepositoryModel repo : repositories) {
// exclude Owner or personal repositories
- if (!repo.isOwner(username) && !repo.isUsersPersonalRepository(username)) {
+ if (!user.isOwner(repo)) {
if (repo.accessRestriction.exceeds(AccessRestrictionType.NONE)
&& repo.authorizationControl.equals(AuthorizationControl.NAMED)) {
restricted.add(repo.name);
@@ -456,7 +456,7 @@ public class EditUserDialog extends JDialog {
permission.mutable = false;
continue;
}
- boolean isOwner = rm.isOwner(username);
+ boolean isOwner = user.isOwner(rm);
if (isOwner) {
permission.permissionType = PermissionType.OWNER;
permission.mutable = false;
diff --git a/src/main/java/com/gitblit/client/GitblitClient.java b/src/main/java/com/gitblit/client/GitblitClient.java
index 66625a8e..1477dac7 100644
--- a/src/main/java/com/gitblit/client/GitblitClient.java
+++ b/src/main/java/com/gitblit/client/GitblitClient.java
@@ -162,7 +162,17 @@ public class GitblitClient implements Serializable {
}
public boolean isOwner(RepositoryModel model) {
- return model.isOwner(account);
+ return getUser(account).isOwner(model);
+ }
+
+ public List<String> getOwners(RepositoryModel model) {
+ List<String> list = new ArrayList<String>();
+ for (UserModel user : allUsers) {
+ if (user.isOwner(model)) {
+ list.add(user.username);
+ }
+ }
+ return list;
}
public String getURL(String action, String repository, String objectId) {
@@ -529,10 +539,9 @@ public class GitblitClient implements Serializable {
}
}
- // TODO reconsider ownership as a user property
// manually specify personal repository ownerships
for (RepositoryModel rm : allRepositories) {
- if (rm.isUsersPersonalRepository(user.username) || rm.isOwner(user.username)) {
+ if (user.isOwner(rm)) {
RegistrantAccessPermission rp = new RegistrantAccessPermission(rm.name, AccessPermission.REWIND,
PermissionType.OWNER, RegistrantType.REPOSITORY, null, false);
// user may be owner of a repository to which they've inherited
@@ -660,13 +669,18 @@ public class GitblitClient implements Serializable {
public boolean updateRepository(String name, RepositoryModel repository,
List<RegistrantAccessPermission> userPermissions) throws IOException {
- return updateRepository(name, repository, userPermissions, null);
+ return updateRepository(name, repository, null, userPermissions, null);
}
- public boolean updateRepository(String name, RepositoryModel repository,
+ public boolean updateRepository(String name, RepositoryModel repository, List<String> owners,
List<RegistrantAccessPermission> userPermissions, List<RegistrantAccessPermission> teamPermissions) throws IOException {
boolean success = true;
success &= RpcUtils.updateRepository(name, repository, url, account, password);
+ // set the repository owners
+ if (owners != null) {
+ success &= RpcUtils.setRepositoryOwners(repository, owners, url, account, password);
+ }
+
// set the repository members
if (userPermissions != null) {
success &= RpcUtils.setRepositoryMemberPermissions(repository, userPermissions, url, account,
diff --git a/src/main/java/com/gitblit/client/RepositoriesPanel.java b/src/main/java/com/gitblit/client/RepositoriesPanel.java
index 0fab934d..7e3d96ac 100644
--- a/src/main/java/com/gitblit/client/RepositoriesPanel.java
+++ b/src/main/java/com/gitblit/client/RepositoriesPanel.java
@@ -194,7 +194,6 @@ public abstract class RepositoriesPanel extends JPanel {
setRepositoryRenderer(RepositoriesTableModel.Columns.Name, nameRenderer, -1);
setRepositoryRenderer(RepositoriesTableModel.Columns.Indicators, typeRenderer, 100);
- setRepositoryRenderer(RepositoriesTableModel.Columns.Owner, ownerRenderer, -1);
setRepositoryRenderer(RepositoriesTableModel.Columns.Size, sizeRenderer, 60);
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@@ -466,7 +465,8 @@ public abstract class RepositoriesPanel extends JPanel {
dialog.setLocationRelativeTo(RepositoriesPanel.this);
List<String> usernames = gitblit.getUsernames();
List<RegistrantAccessPermission> members = gitblit.getUserAccessPermissions(repository);
- dialog.setUsers(new ArrayList<String>(repository.owners), usernames, members);
+ List<String> owners = gitblit.getOwners(repository);
+ dialog.setUsers(owners, usernames, members);
dialog.setTeams(gitblit.getTeamnames(), gitblit.getTeamAccessPermissions(repository));
dialog.setRepositories(gitblit.getRepositories());
dialog.setFederationSets(gitblit.getFederationSets(), repository.federationSets);
@@ -486,6 +486,7 @@ public abstract class RepositoriesPanel extends JPanel {
final RepositoryModel revisedRepository = dialog.getRepository();
final List<RegistrantAccessPermission> permittedUsers = dialog.getUserAccessPermissions();
final List<RegistrantAccessPermission> permittedTeams = dialog.getTeamAccessPermissions();
+ final List<String> newOwners = dialog.getOwners();
if (revisedRepository == null) {
return;
}
@@ -494,7 +495,7 @@ public abstract class RepositoriesPanel extends JPanel {
@Override
protected Boolean doRequest() throws IOException {
- boolean success = gitblit.updateRepository(repository.name, revisedRepository,
+ boolean success = gitblit.updateRepository(repository.name, revisedRepository, newOwners,
permittedUsers, permittedTeams);
if (success) {
gitblit.refreshRepositories();
diff --git a/src/main/java/com/gitblit/client/RepositoriesTableModel.java b/src/main/java/com/gitblit/client/RepositoriesTableModel.java
index 0d26e42c..f93f004a 100644
--- a/src/main/java/com/gitblit/client/RepositoriesTableModel.java
+++ b/src/main/java/com/gitblit/client/RepositoriesTableModel.java
@@ -23,7 +23,6 @@ import java.util.List;
import javax.swing.table.AbstractTableModel;
import com.gitblit.models.RepositoryModel;
-import com.gitblit.utils.ArrayUtils;
/**
* Table model of a list of repositories.
@@ -38,7 +37,7 @@ public class RepositoriesTableModel extends AbstractTableModel {
List<RepositoryModel> list;
enum Columns {
- Name, Description, Owner, Indicators, Last_Change, Size;
+ Name, Description, Indicators, Last_Change, Size;
@Override
public String toString() {
@@ -73,8 +72,6 @@ public class RepositoriesTableModel extends AbstractTableModel {
return Translation.get("gb.name");
case Description:
return Translation.get("gb.description");
- case Owner:
- return Translation.get("gb.owner");
case Last_Change:
return Translation.get("gb.lastChange");
case Size:
@@ -112,8 +109,6 @@ public class RepositoriesTableModel extends AbstractTableModel {
return model;
case Description:
return model.description;
- case Owner:
- return ArrayUtils.toString(model.owners);
case Indicators:
return model;
case Last_Change: