mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-11 16:05:44 +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 ...
|
* Constructs ...
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @param scurityContextProvider
|
|
||||||
* @param userDAO
|
* @param userDAO
|
||||||
* @param userListenerProvider
|
* @param userListenerProvider
|
||||||
*/
|
*/
|
||||||
@@ -234,8 +233,8 @@ public class DefaultUserManager extends AbstractUserManager
|
|||||||
public void init(SCMContextProvider context)
|
public void init(SCMContextProvider context)
|
||||||
{
|
{
|
||||||
|
|
||||||
// TODO improve
|
// create default account only, if no other account is available
|
||||||
if (!userDAO.contains("scmadmin") &&!userDAO.contains("anonymous"))
|
if (userDAO.getAll().isEmpty())
|
||||||
{
|
{
|
||||||
createDefaultAccounts();
|
createDefaultAccounts();
|
||||||
}
|
}
|
||||||
@@ -531,6 +530,8 @@ public class DefaultUserManager extends AbstractUserManager
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
logger.info("create default accounts");
|
||||||
|
|
||||||
JAXBContext context = JAXBContext.newInstance(User.class);
|
JAXBContext context = JAXBContext.newInstance(User.class);
|
||||||
Unmarshaller unmarshaller = context.createUnmarshaller();
|
Unmarshaller unmarshaller = context.createUnmarshaller();
|
||||||
|
|
||||||
|
|||||||
@@ -35,20 +35,27 @@ package sonia.scm.user;
|
|||||||
|
|
||||||
//~--- non-JDK imports --------------------------------------------------------
|
//~--- non-JDK imports --------------------------------------------------------
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
import com.google.inject.Provider;
|
import com.google.inject.Provider;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
import sonia.scm.store.JAXBStoreFactory;
|
import sonia.scm.store.JAXBStoreFactory;
|
||||||
import sonia.scm.store.StoreFactory;
|
import sonia.scm.store.StoreFactory;
|
||||||
import sonia.scm.user.xml.XmlUserDAO;
|
import sonia.scm.user.xml.XmlUserDAO;
|
||||||
import sonia.scm.util.MockUtil;
|
import sonia.scm.util.MockUtil;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
import static org.mockito.Mockito.*;
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
//~--- JDK imports ------------------------------------------------------------
|
//~--- JDK imports ------------------------------------------------------------
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import org.junit.Before;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -57,11 +64,6 @@ import org.junit.Before;
|
|||||||
public class DefaultUserManagerTest extends UserManagerTestBase
|
public class DefaultUserManagerTest extends UserManagerTestBase
|
||||||
{
|
{
|
||||||
|
|
||||||
@Before
|
|
||||||
public void setAdminSubject(){
|
|
||||||
setSubject(MockUtil.createAdminSubject());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method description
|
* Method description
|
||||||
*
|
*
|
||||||
@@ -71,16 +73,87 @@ public class DefaultUserManagerTest extends UserManagerTestBase
|
|||||||
@Override
|
@Override
|
||||||
public UserManager createManager()
|
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);
|
Provider<Set<UserListener>> listenerProvider = mock(Provider.class);
|
||||||
|
|
||||||
when(listenerProvider.get()).thenReturn(new HashSet<UserListener>());
|
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