mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-11 07:55:47 +01:00
create default accounts only, if no other user exists in the dao
This commit is contained in:
@@ -102,7 +102,6 @@ public class DefaultUserManager extends AbstractUserManager
|
||||
* Constructs ...
|
||||
*
|
||||
*
|
||||
* @param scurityContextProvider
|
||||
* @param userDAO
|
||||
* @param userListenerProvider
|
||||
*/
|
||||
@@ -234,8 +233,8 @@ public class DefaultUserManager extends AbstractUserManager
|
||||
public void init(SCMContextProvider context)
|
||||
{
|
||||
|
||||
// TODO improve
|
||||
if (!userDAO.contains("scmadmin") &&!userDAO.contains("anonymous"))
|
||||
// create default account only, if no other account is available
|
||||
if (userDAO.getAll().isEmpty())
|
||||
{
|
||||
createDefaultAccounts();
|
||||
}
|
||||
@@ -531,6 +530,8 @@ public class DefaultUserManager extends AbstractUserManager
|
||||
{
|
||||
try
|
||||
{
|
||||
logger.info("create default accounts");
|
||||
|
||||
JAXBContext context = JAXBContext.newInstance(User.class);
|
||||
Unmarshaller unmarshaller = context.createUnmarshaller();
|
||||
|
||||
|
||||
@@ -35,20 +35,27 @@ package sonia.scm.user;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.inject.Provider;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import sonia.scm.store.JAXBStoreFactory;
|
||||
import sonia.scm.store.StoreFactory;
|
||||
import sonia.scm.user.xml.XmlUserDAO;
|
||||
import sonia.scm.util.MockUtil;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import org.junit.Before;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -57,11 +64,6 @@ import org.junit.Before;
|
||||
public class DefaultUserManagerTest extends UserManagerTestBase
|
||||
{
|
||||
|
||||
@Before
|
||||
public void setAdminSubject(){
|
||||
setSubject(MockUtil.createAdminSubject());
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
@@ -71,16 +73,87 @@ public class DefaultUserManagerTest extends UserManagerTestBase
|
||||
@Override
|
||||
public UserManager createManager()
|
||||
{
|
||||
StoreFactory factory = new JAXBStoreFactory();
|
||||
return new DefaultUserManager(createXmlUserDAO(), createListenerProvider());
|
||||
}
|
||||
|
||||
factory.init(contextProvider);
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*/
|
||||
@Test
|
||||
public void testDefaultAccountAfterFristStart()
|
||||
{
|
||||
UserDAO userDAO = mock(UserDAO.class);
|
||||
List<User> users = Lists.newArrayList(new User("tuser"));
|
||||
|
||||
when(userDAO.getAll()).thenReturn(users);
|
||||
|
||||
UserManager userManager = new DefaultUserManager(userDAO,
|
||||
createListenerProvider());
|
||||
|
||||
userManager.init(contextProvider);
|
||||
verify(userDAO, never()).add(any(User.class));
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*/
|
||||
@Test
|
||||
public void testDefaultAccountCreation()
|
||||
{
|
||||
UserDAO userDAO = mock(UserDAO.class);
|
||||
|
||||
when(userDAO.getAll()).thenReturn(Collections.EMPTY_LIST);
|
||||
|
||||
UserManager userManager = new DefaultUserManager(userDAO,
|
||||
createListenerProvider());
|
||||
|
||||
userManager.init(contextProvider);
|
||||
verify(userDAO, times(2)).add(any(User.class));
|
||||
}
|
||||
|
||||
//~--- set methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*/
|
||||
@Before
|
||||
public void setAdminSubject()
|
||||
{
|
||||
setSubject(MockUtil.createAdminSubject());
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private Provider<Set<UserListener>> createListenerProvider()
|
||||
{
|
||||
Provider<Set<UserListener>> listenerProvider = mock(Provider.class);
|
||||
|
||||
when(listenerProvider.get()).thenReturn(new HashSet<UserListener>());
|
||||
|
||||
XmlUserDAO userDAO = new XmlUserDAO(factory);
|
||||
return listenerProvider;
|
||||
}
|
||||
|
||||
return new DefaultUserManager(userDAO, listenerProvider);
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private XmlUserDAO createXmlUserDAO()
|
||||
{
|
||||
StoreFactory factory = new JAXBStoreFactory();
|
||||
|
||||
factory.init(contextProvider);
|
||||
|
||||
return new XmlUserDAO(factory);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user