@@ -25,7 +25,6 @@ import org.sonar.db.Database; | |||
import org.sonar.db.MyBatis; | |||
import org.sonar.server.qualityprofile.db.ActiveRuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.server.user.db.UserDao; | |||
/** | |||
@@ -35,7 +34,6 @@ import org.sonar.server.user.db.UserDao; | |||
public class DbClient extends org.sonar.db.DbClient { | |||
private ActiveRuleDao activeRuleDao; | |||
private GroupDao groupDao; | |||
private RuleDao ruleDao; | |||
private UserDao userDao; | |||
@@ -46,7 +44,6 @@ public class DbClient extends org.sonar.db.DbClient { | |||
@Override | |||
protected void doOnLoad(Map<Class, Dao> daoByClass) { | |||
this.activeRuleDao = (ActiveRuleDao) daoByClass.get(ActiveRuleDao.class); | |||
this.groupDao = (GroupDao) daoByClass.get(GroupDao.class); | |||
this.ruleDao = (RuleDao) daoByClass.get(RuleDao.class); | |||
this.userDao = (UserDao) daoByClass.get(UserDao.class); | |||
} | |||
@@ -55,10 +52,6 @@ public class DbClient extends org.sonar.db.DbClient { | |||
return activeRuleDao; | |||
} | |||
public GroupDao groupDao() { | |||
return groupDao; | |||
} | |||
public RuleDao ruleDao() { | |||
return ruleDao; | |||
} |
@@ -54,7 +54,7 @@ import org.sonar.server.rule.index.RuleNormalizer; | |||
import org.sonar.server.search.EsSearchModule; | |||
import org.sonar.server.search.IndexQueue; | |||
import org.sonar.server.user.ThreadLocalUserSession; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.user.db.UserDao; | |||
public class PlatformLevel1 extends PlatformLevel { |
@@ -76,8 +76,11 @@ public class AddUserAction implements UserGroupsWsAction { | |||
DbSession dbSession = dbClient.openSession(false); | |||
try { | |||
GroupDto group = dbClient.groupDao().selectById(dbSession, groupId); | |||
GroupDto group = dbClient.groupDao().selectNullableById(dbSession, groupId); | |||
UserDto user = dbClient.userDao().selectActiveUserByLogin(dbSession, login); | |||
if (group == null) { | |||
throw new NotFoundException(String.format("Could not find a user group with group id '%s'", groupId)); | |||
} | |||
if (user == null) { | |||
throw new NotFoundException(String.format("Could not find a user with login '%s'", login)); | |||
} |
@@ -68,7 +68,7 @@ public class DeleteAction implements UserGroupsWsAction { | |||
DbSession dbSession = dbClient.openSession(false); | |||
try { | |||
if (dbClient.groupDao().selectById(dbSession, groupId) == null) { | |||
if (dbClient.groupDao().selectNullableById(dbSession, groupId) == null) { | |||
throw new NotFoundException(String.format("Could not find a group with id=%d", groupId)); | |||
} | |||
@@ -31,10 +31,12 @@ import org.sonar.api.utils.text.JsonWriter; | |||
import org.sonar.core.permission.GlobalPermissions; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.MyBatis; | |||
import org.sonar.db.user.GroupDto; | |||
import org.sonar.db.user.GroupMembershipQuery; | |||
import org.sonar.db.user.UserMembershipDto; | |||
import org.sonar.db.user.UserMembershipQuery; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.user.UserSession; | |||
public class UsersAction implements UserGroupsWsAction { | |||
@@ -93,7 +95,10 @@ public class UsersAction implements UserGroupsWsAction { | |||
DbSession dbSession = dbClient.openSession(false); | |||
try { | |||
dbClient.groupDao().selectById(dbSession, groupId); | |||
GroupDto group = dbClient.groupDao().selectNullableById(dbSession, groupId); | |||
if (group == null) { | |||
throw new NotFoundException(String.format("Could not find user group with id '%s'", groupId)); | |||
} | |||
int total = dbClient.groupMembershipDao().countMembers(dbSession, query); | |||
Paging paging = Paging.create(pageSize, page, total); | |||
List<UserMembershipDto> users = dbClient.groupMembershipDao().selectMembers(dbSession, query, paging.offset(), paging.pageSize()); |
@@ -70,7 +70,7 @@ import org.sonar.server.tester.ServerTester; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.user.NewUser; | |||
import org.sonar.server.user.UserUpdater; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.assertj.core.api.Assertions.entry; |
@@ -46,7 +46,7 @@ import org.sonar.server.es.EsTester; | |||
import org.sonar.server.exceptions.BadRequestException; | |||
import org.sonar.server.exceptions.Message; | |||
import org.sonar.server.exceptions.ServerException; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.user.db.UserDao; | |||
import org.sonar.server.user.index.UserIndexDefinition; | |||
import org.sonar.server.user.index.UserIndexer; |
@@ -43,7 +43,7 @@ import org.sonar.server.user.NewUser; | |||
import org.sonar.server.user.NewUserNotifier; | |||
import org.sonar.server.user.SecurityRealmFactory; | |||
import org.sonar.server.user.UserUpdater; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.user.db.UserDao; | |||
import org.sonar.server.user.index.UserIndex; | |||
import org.sonar.server.user.index.UserIndexDefinition; |
@@ -44,7 +44,7 @@ import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.user.NewUserNotifier; | |||
import org.sonar.server.user.SecurityRealmFactory; | |||
import org.sonar.server.user.UserUpdater; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.user.db.UserDao; | |||
import org.sonar.server.user.index.UserDoc; | |||
import org.sonar.server.user.index.UserIndex; |
@@ -39,7 +39,7 @@ import org.sonar.server.db.DbClient; | |||
import org.sonar.server.exceptions.ForbiddenException; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.user.db.UserDao; | |||
import org.sonar.server.ws.WsTester; | |||
@@ -44,7 +44,7 @@ import org.sonar.db.user.UserGroupDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.es.EsTester; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.user.db.UserDao; | |||
import org.sonar.server.user.index.UserDoc; | |||
import org.sonar.server.user.index.UserIndex; |
@@ -42,7 +42,7 @@ import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.user.NewUserNotifier; | |||
import org.sonar.server.user.SecurityRealmFactory; | |||
import org.sonar.server.user.UserUpdater; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.user.db.UserDao; | |||
import org.sonar.server.user.index.UserIndex; | |||
import org.sonar.server.user.index.UserIndexDefinition; |
@@ -41,7 +41,7 @@ import org.sonar.db.user.UserGroupDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.user.db.UserDao; | |||
import org.sonar.server.ws.WsTester; | |||
import org.sonar.test.DbTests; |
@@ -37,7 +37,7 @@ import org.sonar.server.db.DbClient; | |||
import org.sonar.server.exceptions.ForbiddenException; | |||
import org.sonar.server.exceptions.ServerException; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.ws.WsTester; | |||
import org.sonar.test.DbTests; | |||
@@ -41,7 +41,7 @@ import org.sonar.db.user.UserGroupDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.ws.WsTester; | |||
import org.sonar.test.DbTests; | |||
@@ -56,7 +56,7 @@ public class DeleteActionTest { | |||
@Rule | |||
public UserSessionRule userSession = UserSessionRule.standalone(); | |||
private WsTester tester; | |||
private WsTester ws; | |||
private GroupDao groupDao; | |||
@@ -89,7 +89,7 @@ public class DeleteActionTest { | |||
defaultGroupId = defaultGroup.getId(); | |||
session.commit(); | |||
tester = new WsTester(new UserGroupsWs(new DeleteAction(dbClient, userSession, settings))); | |||
ws = new WsTester(new UserGroupsWs(new DeleteAction(dbClient, userSession, settings))); | |||
} | |||
@After | |||
@@ -103,7 +103,7 @@ public class DeleteActionTest { | |||
session.commit(); | |||
loginAsAdmin(); | |||
tester.newPostRequest("api/usergroups", "delete") | |||
ws.newPostRequest("api/usergroups", "delete") | |||
.setParam("id", group.getId().toString()) | |||
.execute().assertNoContent(); | |||
} | |||
@@ -115,7 +115,7 @@ public class DeleteActionTest { | |||
session.commit(); | |||
loginAsAdmin(); | |||
tester.newPostRequest("api/usergroups", "delete") | |||
ws.newPostRequest("api/usergroups", "delete") | |||
.setParam("id", group.getId().toString()) | |||
.execute().assertNoContent(); | |||
@@ -129,7 +129,7 @@ public class DeleteActionTest { | |||
session.commit(); | |||
loginAsAdmin(); | |||
tester.newPostRequest("api/usergroups", "delete") | |||
ws.newPostRequest("api/usergroups", "delete") | |||
.setParam("id", group.getId().toString()) | |||
.execute().assertNoContent(); | |||
@@ -143,7 +143,7 @@ public class DeleteActionTest { | |||
session.commit(); | |||
loginAsAdmin(); | |||
tester.newPostRequest("api/usergroups", "delete") | |||
ws.newPostRequest("api/usergroups", "delete") | |||
.setParam("id", group.getId().toString()) | |||
.execute().assertNoContent(); | |||
@@ -153,7 +153,7 @@ public class DeleteActionTest { | |||
@Test(expected = NotFoundException.class) | |||
public void not_found() throws Exception { | |||
loginAsAdmin(); | |||
tester.newPostRequest("api/usergroups", "delete") | |||
ws.newPostRequest("api/usergroups", "delete") | |||
.setParam("id", "42") | |||
.execute(); | |||
} | |||
@@ -161,7 +161,7 @@ public class DeleteActionTest { | |||
@Test(expected = IllegalArgumentException.class) | |||
public void cannot_delete_default_group() throws Exception { | |||
loginAsAdmin(); | |||
tester.newPostRequest("api/usergroups", "delete") | |||
ws.newPostRequest("api/usergroups", "delete") | |||
.setParam("id", defaultGroupId.toString()) | |||
.execute(); | |||
} |
@@ -40,7 +40,7 @@ import org.sonar.db.user.UserGroupDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.user.db.UserDao; | |||
import org.sonar.server.ws.WsTester; | |||
import org.sonar.test.DbTests; |
@@ -35,7 +35,7 @@ import org.sonar.db.user.GroupMembershipDao; | |||
import org.sonar.db.user.UserGroupDao; | |||
import org.sonar.db.user.UserGroupDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.ws.WsTester; | |||
import org.sonar.test.DbTests; | |||
@@ -41,7 +41,7 @@ import org.sonar.server.exceptions.ForbiddenException; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.exceptions.ServerException; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.ws.WsTester; | |||
import org.sonar.test.DbTests; | |||
@@ -40,7 +40,7 @@ import org.sonar.server.db.DbClient; | |||
import org.sonar.server.exceptions.ForbiddenException; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.server.user.db.UserDao; | |||
import org.sonar.server.ws.WsTester; | |||
import org.sonar.server.ws.WsTester.TestRequest; |
@@ -60,6 +60,7 @@ import org.sonar.db.qualityprofile.QualityProfileDao; | |||
import org.sonar.db.source.FileSourceDao; | |||
import org.sonar.db.user.AuthorDao; | |||
import org.sonar.db.user.AuthorizationDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.db.user.GroupMembershipDao; | |||
import org.sonar.db.user.RoleDao; | |||
import org.sonar.db.user.UserDao; | |||
@@ -111,6 +112,7 @@ public class DbClient { | |||
private final NotificationQueueDao notificationQueueDao; | |||
private final CustomMeasureDao customMeasureDao; | |||
private final MetricDao metricDao; | |||
private final GroupDao groupDao; | |||
public DbClient(Database database, MyBatis myBatis, Dao... daos) { | |||
this.database = database; | |||
@@ -162,6 +164,7 @@ public class DbClient { | |||
notificationQueueDao = getDao(map, NotificationQueueDao.class); | |||
customMeasureDao = getDao(map, CustomMeasureDao.class); | |||
metricDao = getDao(map, MetricDao.class); | |||
groupDao = getDao(map, GroupDao.class); | |||
doOnLoad(map); | |||
} | |||
@@ -350,6 +353,10 @@ public class DbClient { | |||
return metricDao; | |||
} | |||
public GroupDao groupDao() { | |||
return groupDao; | |||
} | |||
protected <K extends Dao> K getDao(Map<Class, Dao> map, Class<K> clazz) { | |||
return (K) map.get(clazz); | |||
} |
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.user.db; | |||
package org.sonar.db.user; | |||
import java.util.Date; | |||
import java.util.List; | |||
@@ -29,9 +29,7 @@ import org.apache.ibatis.session.RowBounds; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.Dao; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.user.GroupDto; | |||
import org.sonar.db.user.GroupMapper; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.db.util.RowNotFoundException; | |||
public class GroupDao implements Dao { | |||
@@ -45,7 +43,7 @@ public class GroupDao implements Dao { | |||
public GroupDto selectByKey(DbSession session, String key) { | |||
GroupDto group = selectNullableByKey(session, key); | |||
if (group == null) { | |||
throw new NotFoundException(String.format("Could not find a group with name '%s'", key)); | |||
throw new RowNotFoundException(String.format("Could not find a group with name '%s'", key)); | |||
} | |||
return group; | |||
} | |||
@@ -58,7 +56,7 @@ public class GroupDao implements Dao { | |||
public GroupDto selectById(DbSession dbSession, long groupId) { | |||
GroupDto group = selectNullableById(dbSession, groupId); | |||
if (group == null) { | |||
throw new NotFoundException(String.format("Could not find a group with id '%d'", groupId)); | |||
throw new RowNotFoundException(String.format("Could not find a group with id '%d'", groupId)); | |||
} | |||
return group; | |||
} |
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.user.db; | |||
package org.sonar.db.user; | |||
import org.junit.After; | |||
import org.junit.Before; | |||
@@ -29,7 +29,6 @@ import org.sonar.api.utils.DateUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.user.GroupDto; | |||
import org.sonar.test.DbTests; | |||
import static org.assertj.core.api.Assertions.assertThat; |