Bladeren bron

Show additional columns in users and teams tables

tags/v0.8.0
James Moger 12 jaren geleden
bovenliggende
commit
abeaaf7767

+ 29
- 0
src/com/gitblit/ConfigUserService.java Bestand weergeven

@@ -312,6 +312,21 @@ public class ConfigUserService implements IUserService {
return list;
}
/**
* Returns the list of all teams available to the login service.
*
* @return list of all teams
* @since 0.8.0
*/
@Override
public List<TeamModel> getAllTeams() {
read();
List<TeamModel> list = new ArrayList<TeamModel>(teams.values());
list = DeepCopier.copy(list);
Collections.sort(list);
return list;
}
/**
* Returns the list of all users who are allowed to bypass the access
* restriction placed on the specified repository.
@@ -478,6 +493,20 @@ public class ConfigUserService implements IUserService {
Collections.sort(list);
return list;
}
/**
* Returns the list of all users available to the login service.
*
* @return list of all usernames
*/
@Override
public List<UserModel> getAllUsers() {
read();
List<UserModel> list = new ArrayList<UserModel>(users.values());
list = DeepCopier.copy(list);
Collections.sort(list);
return list;
}
/**
* Returns the list of all users who are allowed to bypass the access

+ 31
- 1
src/com/gitblit/FileUserService.java Bestand weergeven

@@ -339,6 +339,22 @@ public class FileUserService extends FileSettings implements IUserService {
return list;
}
/**
* Returns the list of all users available to the login service.
*
* @return list of all usernames
*/
@Override
public List<UserModel> getAllUsers() {
read();
List<UserModel> list = new ArrayList<UserModel>();
for (String username : getAllUsernames()) {
list.add(getUserModel(username));
}
Collections.sort(list);
return list;
}
/**
* Returns the list of all users who are allowed to bypass the access
* restriction placed on the specified repository.
@@ -669,6 +685,20 @@ public class FileUserService extends FileSettings implements IUserService {
return list;
}
/**
* Returns the list of all teams available to the login service.
*
* @return list of all teams
* @since 0.8.0
*/
@Override
public List<TeamModel> getAllTeams() {
List<TeamModel> list = new ArrayList<TeamModel>(teams.values());
list = DeepCopier.copy(list);
Collections.sort(list);
return list;
}
/**
* Returns the list of all teams who are allowed to bypass the access
* restriction placed on the specified repository.
@@ -757,7 +787,7 @@ public class FileUserService extends FileSettings implements IUserService {
// remove role from team
for (String name : needsRemoveRole) {
String team = "@" + name;
String[] values = allUsers.getProperty(team).split(",");
String[] values = allUsers.getProperty(team).split(",");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < values.length; i++) {
String value = values[i];

+ 22
- 2
src/com/gitblit/GitBlit.java Bestand weergeven

@@ -449,9 +449,19 @@ public class GitBlit implements ServletContextListener {
*/
public List<String> getAllUsernames() {
List<String> names = new ArrayList<String>(userService.getAllUsernames());
Collections.sort(names);
return names;
}
/**
* Returns the list of all users available to the login service.
*
* @see IUserService.getAllUsernames()
* @return list of all usernames
*/
public List<UserModel> getAllUsers() {
List<UserModel> users = userService.getAllUsers();
return users;
}
/**
* Delete the user object with the specified username
@@ -533,7 +543,17 @@ public class GitBlit implements ServletContextListener {
*/
public List<String> getAllTeamnames() {
List<String> teams = new ArrayList<String>(userService.getAllTeamNames());
Collections.sort(teams);
return teams;
}
/**
* Returns the list of available teams that a user or repository may be
* assigned to.
*
* @return the list of teams
*/
public List<TeamModel> getAllTeams() {
List<TeamModel> teams = userService.getAllTeams();
return teams;
}

+ 10
- 0
src/com/gitblit/GitblitUserService.java Bestand weergeven

@@ -161,11 +161,21 @@ public class GitblitUserService implements IUserService {
return serviceImpl.getAllUsernames();
}
@Override
public List<UserModel> getAllUsers() {
return serviceImpl.getAllUsers();
}
@Override
public List<String> getAllTeamNames() {
return serviceImpl.getAllTeamNames();
}
@Override
public List<TeamModel> getAllTeams() {
return serviceImpl.getAllTeams();
}
@Override
public List<String> getTeamnamesForRepositoryRole(String role) {
return serviceImpl.getTeamnamesForRepositoryRole(role);

+ 19
- 0
src/com/gitblit/IUserService.java Bestand weergeven

@@ -121,6 +121,14 @@ public interface IUserService {
* @return list of all usernames
*/
List<String> getAllUsernames();
/**
* Returns the list of all users available to the login service.
*
* @return list of all users
* @since 0.8.0
*/
List<UserModel> getAllUsers();
/**
* Returns the list of all teams available to the login service.
@@ -130,6 +138,14 @@ public interface IUserService {
*/
List<String> getAllTeamNames();
/**
* Returns the list of all teams available to the login service.
*
* @return list of all teams
* @since 0.8.0
*/
List<TeamModel> getAllTeams();
/**
* Returns the list of all users who are allowed to bypass the access
* restriction placed on the specified repository.
@@ -137,6 +153,7 @@ public interface IUserService {
* @param role
* the repository name
* @return list of all usernames that can bypass the access restriction
* @since 0.8.0
*/
List<String> getTeamnamesForRepositoryRole(String role);
@@ -148,6 +165,7 @@ public interface IUserService {
* the repository name
* @param teamnames
* @return true if successful
* @since 0.8.0
*/
boolean setTeamnamesForRepositoryRole(String role, List<String> teamnames);
@@ -207,6 +225,7 @@ public interface IUserService {
* @param role
* the repository name
* @return list of all usernames that can bypass the access restriction
* @since 0.8.0
*/
List<String> getUsernamesForRepositoryRole(String role);

+ 1
- 1
src/com/gitblit/wicket/GitBlitWebApp.properties Bestand weergeven

@@ -207,4 +207,4 @@ gb.accessPermissionsDescription = restrict access by users and teams
gb.accessPermissionsForUserDescription = set team memberships or grant access to specific restricted repositories
gb.accessPermissionsForTeamDescription = set team members and grant access to specific restricted repositories
gb.federationRepositoryDescription = share this repository with other Gitblit servers
gb.hookScriptsDescription = run custom scripts on pushes to this Gitblit server
gb.hookScriptsDescription = run Groovy scripts on pushes to this Gitblit server

+ 5
- 1
src/com/gitblit/wicket/panels/TeamsPanel.html Bestand weergeven

@@ -15,11 +15,15 @@
<img style="vertical-align: middle; border: 1px solid #888; background-color: white;" src="users_16x16.png"/>
<wicket:message key="gb.teams">[teams]</wicket:message>
</th>
<th class="right"></th>
<th style="width:140px;"><wicket:message key="gb.teamMembers">[team members]</wicket:message></th>
<th style="width:100px;"><wicket:message key="gb.repositories">[repositories]</wicket:message></th>
<th style="width:80px;" class="right"></th>
</tr>
<tbody>
<tr wicket:id="teamRow">
<td class="left" ><div class="list" wicket:id="teamname">[teamname]</div></td>
<td class="left" ><div class="list" wicket:id="members">[members]</div></td>
<td class="left" ><div class="list" wicket:id="repositories">[repositories]</div></td>
<td class="rightAlign"><span wicket:id="teamLinks"></span></td>
</tr>
</tbody>

+ 21
- 14
src/com/gitblit/wicket/panels/TeamsPanel.java Bestand weergeven

@@ -18,6 +18,7 @@ package com.gitblit.wicket.panels;
import java.text.MessageFormat;
import java.util.List;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.panel.Fragment;
@@ -26,6 +27,7 @@ import org.apache.wicket.markup.repeater.data.DataView;
import org.apache.wicket.markup.repeater.data.ListDataProvider;
import com.gitblit.GitBlit;
import com.gitblit.models.TeamModel;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.pages.EditTeamPage;
@@ -40,9 +42,9 @@ public class TeamsPanel extends BasePanel {
adminLinks.add(new BookmarkablePageLink<Void>("newTeam", EditTeamPage.class));
add(adminLinks.setVisible(showAdmin));
final List<String> teamnames = GitBlit.self().getAllTeamnames();
DataView<String> teamsView = new DataView<String>("teamRow", new ListDataProvider<String>(
teamnames)) {
final List<TeamModel> teams = GitBlit.self().getAllTeams();
DataView<TeamModel> teamsView = new DataView<TeamModel>("teamRow",
new ListDataProvider<TeamModel>(teams)) {
private static final long serialVersionUID = 1L;
private int counter;
@@ -52,31 +54,36 @@ public class TeamsPanel extends BasePanel {
counter = 0;
}
public void populateItem(final Item<String> item) {
final String entry = item.getModelObject();
LinkPanel editLink = new LinkPanel("teamname", "list", entry, EditTeamPage.class,
WicketUtils.newTeamnameParameter(entry));
WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry);
public void populateItem(final Item<TeamModel> item) {
final TeamModel entry = item.getModelObject();
LinkPanel editLink = new LinkPanel("teamname", "list", entry.name,
EditTeamPage.class, WicketUtils.newTeamnameParameter(entry.name));
WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.name);
item.add(editLink);
item.add(new Label("members", entry.users.size() > 0 ? ("" + entry.users.size())
: ""));
item.add(new Label("repositories",
entry.repositories.size() > 0 ? ("" + entry.repositories.size()) : ""));
Fragment teamLinks = new Fragment("teamLinks", "teamAdminLinks", this);
teamLinks.add(new BookmarkablePageLink<Void>("editTeam", EditTeamPage.class,
WicketUtils.newTeamnameParameter(entry)));
WicketUtils.newTeamnameParameter(entry.name)));
Link<Void> deleteLink = new Link<Void>("deleteTeam") {
private static final long serialVersionUID = 1L;
@Override
public void onClick() {
if (GitBlit.self().deleteTeam(entry)) {
teamnames.remove(entry);
info(MessageFormat.format("Team ''{0}'' deleted.", entry));
if (GitBlit.self().deleteTeam(entry.name)) {
teams.remove(entry);
info(MessageFormat.format("Team ''{0}'' deleted.", entry.name));
} else {
error(MessageFormat.format("Failed to delete team ''{0}''!", entry));
error(MessageFormat
.format("Failed to delete team ''{0}''!", entry.name));
}
}
};
deleteLink.add(new JavascriptEventConfirmation("onclick", MessageFormat.format(
"Delete team \"{0}\"?", entry)));
"Delete team \"{0}\"?", entry.name)));
teamLinks.add(deleteLink);
item.add(teamLinks);

+ 8
- 2
src/com/gitblit/wicket/panels/UsersPanel.html Bestand weergeven

@@ -15,11 +15,17 @@
<img style="vertical-align: middle; border: 1px solid #888; background-color: white;" src="user_16x16.png"/>
<wicket:message key="gb.users">[users]</wicket:message>
</th>
<th class="right"></th>
<th style="width:120px;"><wicket:message key="gb.accessLevel">[access level]</wicket:message></th>
<th style="width:140px;"><wicket:message key="gb.teamMemberships">[team memberships]</wicket:message></th>
<th style="width:100px;"><wicket:message key="gb.repositories">[repositories]</wicket:message></th>
<th style="width:80px;" class="right"></th>
</tr>
<tbody>
<tr wicket:id="userRow">
<td class="left" ><div class="list" wicket:id="username">[username]</div></td>
<td class="left" ><span class="list" wicket:id="username">[username]</span></td>
<td class="left" ><span class="list" wicket:id="accesslevel">[access level]</span></td>
<td class="left" ><span class="list" wicket:id="teams">[team memberships]</span></td>
<td class="left" ><span class="list" wicket:id="repositories">[repositories]</span></td>
<td class="rightAlign"><span wicket:id="userLinks"></span></td>
</tr>
</tbody>

+ 21
- 14
src/com/gitblit/wicket/panels/UsersPanel.java Bestand weergeven

@@ -18,6 +18,7 @@ package com.gitblit.wicket.panels;
import java.text.MessageFormat;
import java.util.List;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.panel.Fragment;
@@ -26,6 +27,7 @@ import org.apache.wicket.markup.repeater.data.DataView;
import org.apache.wicket.markup.repeater.data.ListDataProvider;
import com.gitblit.GitBlit;
import com.gitblit.models.UserModel;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.pages.EditUserPage;
@@ -40,9 +42,9 @@ public class UsersPanel extends BasePanel {
adminLinks.add(new BookmarkablePageLink<Void>("newUser", EditUserPage.class));
add(adminLinks.setVisible(showAdmin));
final List<String> usernames = GitBlit.self().getAllUsernames();
DataView<String> usersView = new DataView<String>("userRow", new ListDataProvider<String>(
usernames)) {
final List<UserModel> users = GitBlit.self().getAllUsers();
DataView<UserModel> usersView = new DataView<UserModel>("userRow",
new ListDataProvider<UserModel>(users)) {
private static final long serialVersionUID = 1L;
private int counter;
@@ -52,31 +54,36 @@ public class UsersPanel extends BasePanel {
counter = 0;
}
public void populateItem(final Item<String> item) {
final String entry = item.getModelObject();
LinkPanel editLink = new LinkPanel("username", "list", entry, EditUserPage.class,
WicketUtils.newUsernameParameter(entry));
WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry);
public void populateItem(final Item<UserModel> item) {
final UserModel entry = item.getModelObject();
LinkPanel editLink = new LinkPanel("username", "list", entry.username,
EditUserPage.class, WicketUtils.newUsernameParameter(entry.username));
WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.username);
item.add(editLink);
item.add(new Label("accesslevel", entry.canAdmin ? "administrator" : ""));
item.add(new Label("teams", entry.teams.size() > 0 ? ("" + entry.teams.size()) : ""));
item.add(new Label("repositories",
entry.repositories.size() > 0 ? ("" + entry.repositories.size()) : ""));
Fragment userLinks = new Fragment("userLinks", "userAdminLinks", this);
userLinks.add(new BookmarkablePageLink<Void>("editUser", EditUserPage.class,
WicketUtils.newUsernameParameter(entry)));
WicketUtils.newUsernameParameter(entry.username)));
Link<Void> deleteLink = new Link<Void>("deleteUser") {
private static final long serialVersionUID = 1L;
@Override
public void onClick() {
if (GitBlit.self().deleteUser(entry)) {
usernames.remove(entry);
info(MessageFormat.format("User ''{0}'' deleted.", entry));
if (GitBlit.self().deleteUser(entry.username)) {
users.remove(entry);
info(MessageFormat.format("User ''{0}'' deleted.", entry.username));
} else {
error(MessageFormat.format("Failed to delete user ''{0}''!", entry));
error(MessageFormat.format("Failed to delete user ''{0}''!",
entry.username));
}
}
};
deleteLink.add(new JavascriptEventConfirmation("onclick", MessageFormat.format(
"Delete user \"{0}\"?", entry)));
"Delete user \"{0}\"?", entry.username)));
userLinks.add(deleteLink);
item.add(userLinks);

Laden…
Annuleren
Opslaan