send default user type back to client

This commit is contained in:
Sebastian Sdorra
2012-03-16 14:09:36 +01:00
parent 9b5b1a26c6
commit fa4fe33082
6 changed files with 63 additions and 7 deletions

View File

@@ -77,12 +77,33 @@ public class ScmState
WebSecurityContext securityContext,
Collection<Type> repositoryTypes,
ScmClientConfig clientConfig)
{
this(provider, securityContext, repositoryTypes, null, clientConfig);
}
/**
* Constructs {@link ScmState} object.
*
*
* @param provider - context provider
* @param securityContext - security context of the current user
* @param repositoryTypes - available repository types
* @param clientConfig - client configuration
* @param defaultUserType = Default user type
*
* @since 1.14
*/
public ScmState(SCMContextProvider provider,
WebSecurityContext securityContext,
Collection<Type> repositoryTypes, String defaultUserType,
ScmClientConfig clientConfig)
{
this.version = provider.getVersion();
this.user = securityContext.getUser();
this.groups = securityContext.getGroups();
this.repositoryTypes = repositoryTypes;
this.clientConfig = clientConfig;
this.defaultUserType = defaultUserType;
}
//~--- get methods ----------------------------------------------------------
@@ -98,6 +119,19 @@ public class ScmState
return clientConfig;
}
/**
* Returns the default user type
*
*
* @return default user type
*
* @since 1.14
*/
public String getDefaultUserType()
{
return defaultUserType;
}
/**
* Returns a {@link java.util.Collection} of groups names which are associated
* to the current user.
@@ -168,6 +202,18 @@ public class ScmState
this.clientConfig = clientConfig;
}
/**
* Sets the default user type
*
*
* @param defaultUserType default user type
* @since 1.14
*/
public void setDefaultUserType(String defaultUserType)
{
this.defaultUserType = defaultUserType;
}
/**
* Setter for the groups.
*
@@ -231,6 +277,9 @@ public class ScmState
/** Field description */
private ScmClientConfig clientConfig;
/** Field description */
private String defaultUserType;
/** Field description */
private Collection<String> groups;

View File

@@ -52,6 +52,7 @@ import sonia.scm.ScmState;
import sonia.scm.config.ScmConfiguration;
import sonia.scm.repository.RepositoryManager;
import sonia.scm.user.User;
import sonia.scm.user.UserManager;
import sonia.scm.web.security.WebSecurityContext;
//~--- JDK imports ------------------------------------------------------------
@@ -93,17 +94,19 @@ public class AuthenticationResource
* @param contextProvider
* @param configuration
* @param repositoryManger
* @param userManager
* @param securityContextProvider
*/
@Inject
public AuthenticationResource(
SCMContextProvider contextProvider, ScmConfiguration configuration,
RepositoryManager repositoryManger,
RepositoryManager repositoryManger, UserManager userManager,
Provider<WebSecurityContext> securityContextProvider)
{
this.contextProvider = contextProvider;
this.configuration = configuration;
this.repositoryManger = repositoryManger;
this.userManager = userManager;
this.securityContextProvider = securityContextProvider;
}
@@ -247,6 +250,7 @@ public class AuthenticationResource
{
return new ScmState(contextProvider, securityContext,
repositoryManger.getConfiguredTypes(),
userManager.getDefaultType(),
new ScmClientConfig(configuration.getDateFormat(),
configuration.isDisableGroupingGrid()));
}
@@ -264,4 +268,7 @@ public class AuthenticationResource
/** Field description */
private Provider<WebSecurityContext> securityContextProvider;
/** Field description */
private UserManager userManager;
}

View File

@@ -94,7 +94,7 @@ Sonia.group.FormPanel = Ext.extend(Sonia.rest.FormPanel,{
if ( debug ){
console.debug( 'create group: ' + item.name );
}
// item.type = 'xml';
item.type = state.defaultUserType;
var url = restUrl + 'groups.json';
var el = this.el;

View File

@@ -190,7 +190,7 @@ Sonia.scm.Main = Ext.extend(Ext.util.Observable, {
var securitySection = null;
if ( state.user.type == 'xml' && state.user.name != 'anonymous' ){
if ( state.user.type == state.defaultUserType && state.user.name != 'anonymous' ){
securitySection = {
title: this.sectionSecurityText,
links: [{

View File

@@ -73,7 +73,7 @@ Sonia.user.FormPanel = Ext.extend(Sonia.rest.FormPanel,{
helpText: this.mailHelpText
}];
if ( this.item == null || this.item.type == 'xml' ){
if ( this.item == null || this.item.type == state.defaultUserType ){
items.push({
fieldLabel: this.passwordText,
id: 'pwd',
@@ -107,7 +107,7 @@ Sonia.user.FormPanel = Ext.extend(Sonia.rest.FormPanel,{
},
isReadOnly: function(){
return this.item != null && this.item.type != 'xml';
return this.item != null && this.item.type != state.defaultUserType;
},
fixRequest: function(user){
@@ -150,7 +150,7 @@ Sonia.user.FormPanel = Ext.extend(Sonia.rest.FormPanel,{
}
this.fixRequest(user);
// set user type
user.type = 'xml';
user.type = state.defaultUserType;
var url = restUrl + 'users.json';
Ext.Ajax.request({
url: url,

View File

@@ -126,7 +126,7 @@ Sonia.user.Grid = Ext.extend(Sonia.rest.Grid, {
scope: this
}
});
if ( item.type == 'xml' ){
if ( item.type == state.defaultUserType ){
panel.getForm().setValues([
{id: 'password', value: dummyPassword},
{id: 'password-confirm', value: dummyPassword}