Procházet zdrojové kódy

Add clone transport user preference

tags/v1.6.0
James Moger před 10 roky
rodič
revize
1b04d7730f

+ 1
- 0
releases.moxie Zobrazit soubor

- Simplified repository creation, offer simple README generation, and insertion of a pre-defined .gitignore file (ticket-76) - Simplified repository creation, offer simple README generation, and insertion of a pre-defined .gitignore file (ticket-76)
- Added an extension point for monitoring onStartup and onShutdown (ticket-79) - Added an extension point for monitoring onStartup and onShutdown (ticket-79)
- Tag server-side merges when incremental push tags are enabled (issue-432, ticket-85) - Tag server-side merges when incremental push tags are enabled (issue-432, ticket-85)
- Add a user preference for the clone transport (ticket-90)
- Add setting to control default thread pool size for miscellaneous background tasks (ticket-92) - Add setting to control default thread pool size for miscellaneous background tasks (ticket-92)
dependencyChanges: dependencyChanges:
- Update to javax.mail 1.5.1 (issue-417, ticket-58) - Update to javax.mail 1.5.1 (issue-417, ticket-58)

+ 9
- 0
src/main/java/com/gitblit/ConfigUserService.java Zobrazit soubor

import com.gitblit.Constants.AccessPermission; import com.gitblit.Constants.AccessPermission;
import com.gitblit.Constants.AccountType; import com.gitblit.Constants.AccountType;
import com.gitblit.Constants.Transport;
import com.gitblit.manager.IRuntimeManager; import com.gitblit.manager.IRuntimeManager;
import com.gitblit.models.TeamModel; import com.gitblit.models.TeamModel;
import com.gitblit.models.UserModel; import com.gitblit.models.UserModel;
private static final String EMAILONMYTICKETCHANGES = "emailMeOnMyTicketChanges"; private static final String EMAILONMYTICKETCHANGES = "emailMeOnMyTicketChanges";
private static final String TRANSPORT = "transport";
private static final String ACCOUNTTYPE = "accountType"; private static final String ACCOUNTTYPE = "accountType";
private static final String DISABLED = "disabled"; private static final String DISABLED = "disabled";
String val = model.getPreferences().getLocale().getLanguage() + "_" + model.getPreferences().getLocale().getCountry(); String val = model.getPreferences().getLocale().getLanguage() + "_" + model.getPreferences().getLocale().getCountry();
config.setString(USER, model.username, LOCALE, val); config.setString(USER, model.username, LOCALE, val);
} }
config.setBoolean(USER, model.username, EMAILONMYTICKETCHANGES, model.getPreferences().isEmailMeOnMyTicketChanges()); config.setBoolean(USER, model.username, EMAILONMYTICKETCHANGES, model.getPreferences().isEmailMeOnMyTicketChanges());
if (model.getPreferences().getTransport() != null) {
config.setString(USER, model.username, TRANSPORT, model.getPreferences().getTransport().name());
}
} }
// user roles // user roles
// preferences // preferences
user.getPreferences().setLocale(config.getString(USER, username, LOCALE)); user.getPreferences().setLocale(config.getString(USER, username, LOCALE));
user.getPreferences().setEmailMeOnMyTicketChanges(config.getBoolean(USER, username, EMAILONMYTICKETCHANGES, true)); user.getPreferences().setEmailMeOnMyTicketChanges(config.getBoolean(USER, username, EMAILONMYTICKETCHANGES, true));
user.getPreferences().setTransport(Transport.fromString(config.getString(USER, username, TRANSPORT)));
// user roles // user roles
Set<String> roles = new HashSet<String>(Arrays.asList(config.getStringList( Set<String> roles = new HashSet<String>(Arrays.asList(config.getStringList(

+ 19
- 0
src/main/java/com/gitblit/GitBlit.java Zobrazit soubor

import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;


} }
}); });


// consider the user's transport preference
RepositoryUrl preferredUrl = null;
Transport preferredTransport = user.getPreferences().getTransport();
if (preferredTransport != null) {
Iterator<RepositoryUrl> itr = list.iterator();
while (itr.hasNext()) {
RepositoryUrl url = itr.next();
if (url.transport.equals(preferredTransport)) {
itr.remove();
preferredUrl = url;
break;
}
}
}
if (preferredUrl != null) {
list.add(0, preferredUrl);
}

return list; return list;
} }



+ 11
- 0
src/main/java/com/gitblit/models/UserPreferences.java Zobrazit soubor

import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;


import com.gitblit.Constants.Transport;
import com.gitblit.utils.StringUtils; import com.gitblit.utils.StringUtils;


/** /**


private Boolean emailMeOnMyTicketChanges; private Boolean emailMeOnMyTicketChanges;


private Transport transport;

private final Map<String, UserRepositoryPreferences> repositoryPreferences = new TreeMap<String, UserRepositoryPreferences>(); private final Map<String, UserRepositoryPreferences> repositoryPreferences = new TreeMap<String, UserRepositoryPreferences>();


public UserPreferences(String username) { public UserPreferences(String username) {
public void setEmailMeOnMyTicketChanges(boolean value) { public void setEmailMeOnMyTicketChanges(boolean value) {
this.emailMeOnMyTicketChanges = value; this.emailMeOnMyTicketChanges = value;
} }

public Transport getTransport() {
return transport;
}

public void setTransport(Transport transport) {
this.transport = transport;
}
} }

+ 3
- 1
src/main/java/com/gitblit/wicket/GitBlitWebApp.properties Zobrazit soubor

gb.comment = Comment gb.comment = Comment
gb.sshKeyCommentDescription = Enter an optional comment. If blank, the comment will be extracted from the key data. gb.sshKeyCommentDescription = Enter an optional comment. If blank, the comment will be extracted from the key data.
gb.permission = Permission gb.permission = Permission
gb.sshKeyPermissionDescription = Specify the access permission for the SSH key
gb.sshKeyPermissionDescription = Specify the access permission for the SSH key
gb.transportPreference = Transport Preference
gb.transportPreferenceDescription = Set the transport that you prefer to use for cloning

+ 1
- 0
src/main/java/com/gitblit/wicket/pages/UserPage.html Zobrazit soubor

<div wicket:id="emailAddress"></div> <div wicket:id="emailAddress"></div>
<div wicket:id="language"></div> <div wicket:id="language"></div>
<div wicket:id="emailMeOnMyTicketChanges"></div> <div wicket:id="emailMeOnMyTicketChanges"></div>
<div wicket:id="transport"></div>
<div class="form-actions"><input class="btn btn-appmenu" type="submit" value="Save" wicket:message="value:gb.save" wicket:id="save" /></div> <div class="form-actions"><input class="btn btn-appmenu" type="submit" value="Save" wicket:message="value:gb.save" wicket:id="save" /></div>
</form> </form>

+ 21
- 0
src/main/java/com/gitblit/wicket/pages/UserPage.java Zobrazit soubor

import org.apache.wicket.model.IModel; import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model; import org.apache.wicket.model.Model;
import com.gitblit.Constants.Transport;
import com.gitblit.GitBlitException; import com.gitblit.GitBlitException;
import com.gitblit.Keys; import com.gitblit.Keys;
import com.gitblit.models.Menu.ParameterMenuItem; import com.gitblit.models.Menu.ParameterMenuItem;
final IModel<String> emailAddress = Model.of(user.emailAddress == null ? "" : user.emailAddress); final IModel<String> emailAddress = Model.of(user.emailAddress == null ? "" : user.emailAddress);
final IModel<Language> language = Model.of(preferredLanguage); final IModel<Language> language = Model.of(preferredLanguage);
final IModel<Boolean> emailMeOnMyTicketChanges = Model.of(user.getPreferences().isEmailMeOnMyTicketChanges()); final IModel<Boolean> emailMeOnMyTicketChanges = Model.of(user.getPreferences().isEmailMeOnMyTicketChanges());
final IModel<Transport> transport = Model.of(user.getPreferences().getTransport());
prefs.add(new TextOption("displayName", prefs.add(new TextOption("displayName",
getString("gb.displayName"), getString("gb.displayName"),
getString("gb.emailMeOnMyTicketChangesDescription"), getString("gb.emailMeOnMyTicketChangesDescription"),
emailMeOnMyTicketChanges).setVisible(app().notifier().isSendingMail())); emailMeOnMyTicketChanges).setVisible(app().notifier().isSendingMail()));
List<Transport> availableTransports = new ArrayList<>();
if (app().gitblit().isServingSSH()) {
availableTransports.add(Transport.SSH);
}
if (app().gitblit().isServingHTTP()) {
availableTransports.add(Transport.HTTPS);
availableTransports.add(Transport.HTTP);
}
if (app().gitblit().isServingGIT()) {
availableTransports.add(Transport.GIT);
}
prefs.add(new ChoiceOption<Transport>("transport",
getString("gb.transportPreference"),
getString("gb.transportPreferenceDescription"),
transport,
availableTransports));
prefs.add(new AjaxButton("save") { prefs.add(new AjaxButton("save") {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }
user.getPreferences().setEmailMeOnMyTicketChanges(emailMeOnMyTicketChanges.getObject()); user.getPreferences().setEmailMeOnMyTicketChanges(emailMeOnMyTicketChanges.getObject());
user.getPreferences().setTransport(transport.getObject());
try { try {
app().gitblit().reviseUser(user.username, user); app().gitblit().reviseUser(user.username, user);

Načítá se…
Zrušit
Uložit