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.apache.commons.lang.StringUtils;
import org.sonar.api.server.ServerSide; import org.sonar.api.server.ServerSide;
import org.sonar.core.permission.GlobalPermissions; import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession; import org.sonar.db.DbSession;
import org.sonar.db.MyBatis;
import org.sonar.db.permission.PermissionTemplateDao; import org.sonar.db.permission.PermissionTemplateDao;
import org.sonar.db.permission.PermissionTemplateDto; import org.sonar.db.permission.PermissionTemplateDto;
import org.sonar.db.user.GroupDto; import org.sonar.db.user.GroupDto;
import org.sonar.db.user.UserDao;
import org.sonar.server.exceptions.BadRequestException; import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.user.UserSession; import org.sonar.server.user.UserSession;
Expand All @@ -46,16 +45,14 @@
@ServerSide @ServerSide
public class PermissionTemplateService { public class PermissionTemplateService {


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


public PermissionTemplateService(MyBatis myBatis, PermissionTemplateDao permissionTemplateDao, UserDao userDao, PermissionFinder finder, UserSession userSession) { public PermissionTemplateService(DbClient dbClient, UserSession userSession, PermissionFinder finder) {
this.myBatis = myBatis; this.dbClient = dbClient;
this.permissionTemplateDao = permissionTemplateDao; this.permissionTemplateDao = dbClient.permissionTemplateDao();
this.userDao = userDao;
this.finder = finder; this.finder = finder;
this.userSession = userSession; 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) { 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 @Override
protected void doExecute(Long templateId, String permission) { protected void doExecute(Long templateId, String permission) {
Long userId = getUserId(); 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) { 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 @Override
protected void doExecute(Long templateId, String permission) { protected void doExecute(Long templateId, String permission) {
Long userId = getUserId(); 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) { 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 @Override
protected void doExecute(Long templateId, String permission) { protected void doExecute(Long templateId, String permission) {
Long groupId = getGroupId(); 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) { 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 @Override
protected void doExecute(Long templateId, String permission) { protected void doExecute(Long templateId, String permission) {
Long groupId = getGroupId(); Long groupId = getGroupId();
Expand All @@ -157,16 +154,16 @@ protected void doExecute(Long templateId, String permission) {


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


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


package org.sonar.server.permission; package org.sonar.server.permission;


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


import javax.annotation.Nullable;

abstract class PermissionTemplateUpdater { abstract class PermissionTemplateUpdater {


private final String templateKey; private final String templateKey;
Expand All @@ -44,13 +44,13 @@ abstract class PermissionTemplateUpdater {
private final UserDao userDao; private final UserDao userDao;
private final UserSession userSession; 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.templateKey = templateKey;
this.permission = permission; this.permission = permission;
this.updatedReference = updatedReference; this.updatedReference = updatedReference;
this.permissionTemplateDao = permissionTemplateDao;
this.userDao = userDao;
this.userSession = userSession;
} }


void executeUpdate() { void executeUpdate() {
Expand Down

0 comments on commit 291fb3a

Please sign in to comment.