Skip to content

Commit

Permalink
Improve interfaces of permission template services
Browse files Browse the repository at this point in the history
  • Loading branch information
teryk committed Aug 24, 2015
1 parent 1dd1cd5 commit 291fb3a
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 87 deletions.
Expand Up @@ -30,12 +30,11 @@
import org.apache.commons.lang.StringUtils;
import org.sonar.api.server.ServerSide;
import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.MyBatis;
import org.sonar.db.permission.PermissionTemplateDao;
import org.sonar.db.permission.PermissionTemplateDto;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.UserDao;
import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.user.UserSession;
Expand All @@ -46,16 +45,14 @@
@ServerSide
public class PermissionTemplateService {

private final MyBatis myBatis;
private final DbClient dbClient;
private final PermissionTemplateDao permissionTemplateDao;
private final UserDao userDao;
private final PermissionFinder finder;
private final UserSession userSession;

public PermissionTemplateService(MyBatis myBatis, PermissionTemplateDao permissionTemplateDao, UserDao userDao, PermissionFinder finder, UserSession userSession) {
this.myBatis = myBatis;
this.permissionTemplateDao = permissionTemplateDao;
this.userDao = userDao;
public PermissionTemplateService(DbClient dbClient, UserSession userSession, PermissionFinder finder) {
this.dbClient = dbClient;
this.permissionTemplateDao = dbClient.permissionTemplateDao();
this.finder = finder;
this.userSession = userSession;
}
Expand Down Expand Up @@ -112,7 +109,7 @@ public void deletePermissionTemplate(Long templateId) {
}

public void addUserPermission(String templateKey, String permission, String userLogin) {
PermissionTemplateUpdater updater = new PermissionTemplateUpdater(templateKey, permission, userLogin, permissionTemplateDao, userDao, userSession) {
PermissionTemplateUpdater updater = new PermissionTemplateUpdater(dbClient, userSession, templateKey, permission, userLogin) {
@Override
protected void doExecute(Long templateId, String permission) {
Long userId = getUserId();
Expand All @@ -123,7 +120,7 @@ protected void doExecute(Long templateId, String permission) {
}

public void removeUserPermission(String templateKey, String permission, String userLogin) {
PermissionTemplateUpdater updater = new PermissionTemplateUpdater(templateKey, permission, userLogin, permissionTemplateDao, userDao, userSession) {
PermissionTemplateUpdater updater = new PermissionTemplateUpdater(dbClient, userSession, templateKey, permission, userLogin) {
@Override
protected void doExecute(Long templateId, String permission) {
Long userId = getUserId();
Expand All @@ -134,7 +131,7 @@ protected void doExecute(Long templateId, String permission) {
}

public void addGroupPermission(String templateKey, String permission, String groupName) {
PermissionTemplateUpdater updater = new PermissionTemplateUpdater(templateKey, permission, groupName, permissionTemplateDao, userDao, userSession) {
PermissionTemplateUpdater updater = new PermissionTemplateUpdater(dbClient, userSession, templateKey, permission, groupName) {
@Override
protected void doExecute(Long templateId, String permission) {
Long groupId = getGroupId();
Expand All @@ -145,7 +142,7 @@ protected void doExecute(Long templateId, String permission) {
}

public void removeGroupPermission(String templateKey, String permission, String groupName) {
PermissionTemplateUpdater updater = new PermissionTemplateUpdater(templateKey, permission, groupName, permissionTemplateDao, userDao, userSession) {
PermissionTemplateUpdater updater = new PermissionTemplateUpdater(dbClient, userSession, templateKey, permission, groupName) {
@Override
protected void doExecute(Long templateId, String permission) {
Long groupId = getGroupId();
Expand All @@ -157,16 +154,16 @@ protected void doExecute(Long templateId, String permission) {

public void removeGroupFromTemplates(String groupName) {
userSession.checkGlobalPermission(GlobalPermissions.SYSTEM_ADMIN);
DbSession session = myBatis.openSession(false);
DbSession session = dbClient.openSession(false);
try {
GroupDto group = userDao.selectGroupByName(groupName, session);
GroupDto group = dbClient.userDao().selectGroupByName(groupName, session);
if (group == null) {
throw new NotFoundException("Group does not exists : " + groupName);
}
permissionTemplateDao.deleteByGroup(session, group.getId());
session.commit();
} finally {
MyBatis.closeQuietly(session);
dbClient.closeSession(session);
}
}

Expand Down
Expand Up @@ -20,10 +20,12 @@

package org.sonar.server.permission;

import javax.annotation.Nullable;
import org.sonar.api.security.DefaultGroups;
import org.sonar.api.web.UserRole;
import org.sonar.core.permission.ComponentPermissions;
import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.permission.PermissionTemplateDao;
import org.sonar.db.permission.PermissionTemplateDto;
import org.sonar.db.user.GroupDto;
Expand All @@ -33,8 +35,6 @@
import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.user.UserSession;

import javax.annotation.Nullable;

abstract class PermissionTemplateUpdater {

private final String templateKey;
Expand All @@ -44,13 +44,13 @@ abstract class PermissionTemplateUpdater {
private final UserDao userDao;
private final UserSession userSession;

PermissionTemplateUpdater(String templateKey, String permission, String updatedReference, PermissionTemplateDao permissionTemplateDao, UserDao userDao, UserSession userSession) {
PermissionTemplateUpdater(DbClient dbClient, UserSession userSession, String templateKey, String permission, String updatedReference) {
this.userSession = userSession;
this.permissionTemplateDao = dbClient.permissionTemplateDao();
this.userDao = dbClient.userDao();
this.templateKey = templateKey;
this.permission = permission;
this.updatedReference = updatedReference;
this.permissionTemplateDao = permissionTemplateDao;
this.userDao = userDao;
this.userSession = userSession;
}

void executeUpdate() {
Expand Down

0 comments on commit 291fb3a

Please sign in to comment.