Skip to content

Commit

Permalink
Deprecate PermissionTemplateUpdater
Browse files Browse the repository at this point in the history
  • Loading branch information
teryk committed Aug 24, 2015
1 parent f763e13 commit 4aa1109
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 8 deletions.
Expand Up @@ -39,8 +39,8 @@
import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.user.UserSession; import org.sonar.server.user.UserSession;


import static org.sonar.server.permission.PermissionPrivilegeChecker.checkProjectAdminUserByComponentKey;
import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdminUser; import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdminUser;
import static org.sonar.server.permission.PermissionPrivilegeChecker.checkProjectAdminUserByComponentKey;


/** /**
* Used by ruby code <pre>Internal.permission_templates</pre> * Used by ruby code <pre>Internal.permission_templates</pre>
Expand Down Expand Up @@ -111,6 +111,10 @@ public void deletePermissionTemplate(Long templateId) {
permissionTemplateDao.deletePermissionTemplate(templateId); permissionTemplateDao.deletePermissionTemplate(templateId);
} }


/**
* @deprecated since 5.2 can be removed when Ruby doesn't rely on PermissionTemplateService
*/
@Deprecated
public void addUserPermission(String templateKey, String permission, String userLogin) { public void addUserPermission(String templateKey, String permission, String userLogin) {
PermissionTemplateUpdater updater = new PermissionTemplateUpdater(dbClient, userSession, templateKey, permission, userLogin) { PermissionTemplateUpdater updater = new PermissionTemplateUpdater(dbClient, userSession, templateKey, permission, userLogin) {
@Override @Override
Expand All @@ -122,6 +126,10 @@ protected void doExecute(Long templateId, String permission) {
updater.executeUpdate(); updater.executeUpdate();
} }


/**
* @deprecated since 5.2 can be removed when Ruby doesn't rely on PermissionTemplateService
*/
@Deprecated
public void removeUserPermission(String templateKey, String permission, String userLogin) { public void removeUserPermission(String templateKey, String permission, String userLogin) {
PermissionTemplateUpdater updater = new PermissionTemplateUpdater(dbClient, userSession, templateKey, permission, userLogin) { PermissionTemplateUpdater updater = new PermissionTemplateUpdater(dbClient, userSession, templateKey, permission, userLogin) {
@Override @Override
Expand All @@ -133,6 +141,10 @@ protected void doExecute(Long templateId, String permission) {
updater.executeUpdate(); updater.executeUpdate();
} }


/**
* @deprecated since 5.2 can be removed when Ruby doesn't rely on PermissionTemplateService
*/
@Deprecated
public void addGroupPermission(String templateKey, String permission, String groupName) { public void addGroupPermission(String templateKey, String permission, String groupName) {
PermissionTemplateUpdater updater = new PermissionTemplateUpdater(dbClient, userSession, templateKey, permission, groupName) { PermissionTemplateUpdater updater = new PermissionTemplateUpdater(dbClient, userSession, templateKey, permission, groupName) {
@Override @Override
Expand All @@ -144,6 +156,10 @@ protected void doExecute(Long templateId, String permission) {
updater.executeUpdate(); updater.executeUpdate();
} }


/**
* @deprecated since 5.2 can be removed when Ruby doesn't rely on PermissionTemplateService
*/
@Deprecated
public void removeGroupPermission(String templateKey, String permission, String groupName) { public void removeGroupPermission(String templateKey, String permission, String groupName) {
PermissionTemplateUpdater updater = new PermissionTemplateUpdater(dbClient, userSession, templateKey, permission, groupName) { PermissionTemplateUpdater updater = new PermissionTemplateUpdater(dbClient, userSession, templateKey, permission, groupName) {
@Override @Override
Expand Down
Expand Up @@ -33,6 +33,10 @@
import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdminUser; import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdminUser;
import static org.sonar.server.permission.PermissionValueValidator.validateProjectPermission; import static org.sonar.server.permission.PermissionValueValidator.validateProjectPermission;


/**
* @deprecated since 5.2 can be removed when Ruby doesn't rely on PermissionTemplateService
*/
@Deprecated
abstract class PermissionTemplateUpdater { abstract class PermissionTemplateUpdater {


private final String templateKey; private final String templateKey;
Expand Down
Expand Up @@ -43,7 +43,7 @@ PermissionChange buildUserPermissionChange(DbSession dbSession, PermissionReques
} }


PermissionChange buildGroupPermissionChange(DbSession dbSession, PermissionRequest request) { PermissionChange buildGroupPermissionChange(DbSession dbSession, PermissionRequest request) {
String groupName = dependenciesFinder.getGroup(dbSession, request).getName(); String groupName = dependenciesFinder.getGroupName(dbSession, request);


PermissionChange permissionChange = new PermissionChange() PermissionChange permissionChange = new PermissionChange()
.setPermission(request.permission()) .setPermission(request.permission())
Expand Down
Expand Up @@ -21,14 +21,19 @@
package org.sonar.server.permission.ws; package org.sonar.server.permission.ws;


import com.google.common.base.Optional; import com.google.common.base.Optional;
import javax.annotation.CheckForNull;
import org.sonar.db.DbClient; import org.sonar.db.DbClient;
import org.sonar.db.DbSession; import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto; import org.sonar.db.component.ComponentDto;
import org.sonar.db.permission.PermissionTemplateDto;
import org.sonar.db.user.GroupDto; import org.sonar.db.user.GroupDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.component.ComponentFinder; import org.sonar.server.component.ComponentFinder;
import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.exceptions.NotFoundException;


import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkNotNull;
import static org.sonar.api.security.DefaultGroups.ANYONE;
import static org.sonar.api.security.DefaultGroups.isAnyone;


public class PermissionDependenciesFinder { public class PermissionDependenciesFinder {
private final DbClient dbClient; private final DbClient dbClient;
Expand All @@ -39,7 +44,22 @@ public PermissionDependenciesFinder(DbClient dbClient, ComponentFinder component
this.componentFinder = componentFinder; this.componentFinder = componentFinder;
} }


GroupDto getGroup(DbSession dbSession, PermissionRequest request) { /**
* @throws org.sonar.server.exceptions.NotFoundException if a project identifier is provided but it's not found
*/
Optional<ComponentDto> searchProject(DbSession dbSession, PermissionRequest request) {
if (!request.hasProject()) {
return Optional.absent();
}

return Optional.of(componentFinder.getProjectByUuidOrKey(dbSession, request.projectUuid(), request.projectKey()));
}

String getGroupName(DbSession dbSession, PermissionRequest request) {
if (isAnyone(request.groupName())) {
return ANYONE;
}

GroupDto group = null; GroupDto group = null;


Long groupId = request.groupId(); Long groupId = request.groupId();
Expand All @@ -58,14 +78,35 @@ GroupDto getGroup(DbSession dbSession, PermissionRequest request) {
} }
} }


return checkNotNull(group); return checkNotNull(group).getName();
} }


Optional<ComponentDto> searchProject(DbSession dbSession, PermissionRequest request) { @CheckForNull
if (!request.hasProject()) { Long getGroupId(DbSession dbSession, String groupName) {
return Optional.absent(); if (isAnyone(groupName)) {
return null;
} }


return Optional.of(componentFinder.getProjectByUuidOrKey(dbSession, request.projectUuid(), request.projectKey())); GroupDto group = dbClient.groupDao().selectByKey(dbSession, groupName);
if (group == null) {
throw new NotFoundException(String.format("Group with name '%s' is not found", groupName));
}
return group.getId();
}

UserDto getUser(DbSession dbSession, String userLogin) {
UserDto user = dbClient.userDao().selectActiveUserByLogin(dbSession, userLogin);
if (user == null) {
throw new NotFoundException(String.format("User with login '%s' is not found'", userLogin));
}
return user;
}

PermissionTemplateDto getTemplate(String templateKey) {
PermissionTemplateDto permissionTemplate = dbClient.permissionTemplateDao().selectTemplateByKey(templateKey);
if (permissionTemplate == null) {
throw new NotFoundException(String.format("Template with key '%s' is not found", templateKey));
}
return permissionTemplate;
} }
} }

0 comments on commit 4aa1109

Please sign in to comment.