Search in sources :

Example 16 with HasPermission

use of org.craftercms.commons.security.permissions.annotations.HasPermission in project studio by craftercms.

the class ContentServiceImpl method deleteContent.

@Override
@HasPermission(type = CompositePermission.class, action = ACTION_DELETE_CONTENT)
public boolean deleteContent(@ProtectedResourceId(SITE_ID_RESOURCE_ID) String siteId, @ProtectedResourceId(PATH_LIST_RESOURCE_ID) List<String> paths, String submissionComment) throws ServiceLayerException, AuthenticationException, DeploymentException {
    List<String> contentToDelete = new ArrayList<String>();
    contentToDelete.addAll(getChildItems(siteId, paths));
    contentToDelete.addAll(paths);
    objectStateService.setSystemProcessingBulk(siteId, contentToDelete, true);
    AuthenticatedUser currentUser = userService.getCurrentUser();
    deploymentService.delete(siteId, contentToDelete, currentUser.getUsername(), ZonedDateTime.now(ZoneOffset.UTC), submissionComment);
    objectStateService.setSystemProcessingBulk(siteId, contentToDelete, false);
    insertDeleteContentApprovedActivity(siteId, currentUser.getUsername(), contentToDelete);
    return true;
}
Also used : ArrayList(java.util.ArrayList) AuthenticatedUser(org.craftercms.studio.model.AuthenticatedUser) HasPermission(org.craftercms.commons.security.permissions.annotations.HasPermission)

Example 17 with HasPermission

use of org.craftercms.commons.security.permissions.annotations.HasPermission in project studio by craftercms.

the class ContentServiceImpl method deleteContent.

@Override
@HasPermission(type = DefaultPermission.class, action = ACTION_DELETE_CONTENT)
public boolean deleteContent(@ProtectedResourceId(SITE_ID_RESOURCE_ID) String siteId, @ProtectedResourceId(PATH_RESOURCE_ID) String path, String submissionComment) throws ServiceLayerException, AuthenticationException, DeploymentException {
    List<String> contentToDelete = new ArrayList<String>();
    contentToDelete.addAll(getChildItems(siteId, path));
    contentToDelete.add(path);
    objectStateService.setSystemProcessingBulk(siteId, contentToDelete, true);
    AuthenticatedUser currentUser = userService.getCurrentUser();
    deploymentService.delete(siteId, contentToDelete, currentUser.getUsername(), ZonedDateTime.now(ZoneOffset.UTC), submissionComment);
    objectStateService.setSystemProcessingBulk(siteId, contentToDelete, false);
    insertDeleteContentApprovedActivity(siteId, currentUser.getUsername(), contentToDelete);
    return true;
}
Also used : ArrayList(java.util.ArrayList) AuthenticatedUser(org.craftercms.studio.model.AuthenticatedUser) HasPermission(org.craftercms.commons.security.permissions.annotations.HasPermission)

Example 18 with HasPermission

use of org.craftercms.commons.security.permissions.annotations.HasPermission in project studio by craftercms.

the class GroupServiceImpl method addGroupMembers.

@Override
@HasPermission(type = DefaultPermission.class, action = "update_groups")
public List<User> addGroupMembers(long groupId, List<Long> userIds, List<String> usernames) throws ServiceLayerException, UserNotFoundException, GroupNotFoundException, AuthenticationException {
    List<User> users = groupServiceInternal.addGroupMembers(groupId, userIds, usernames);
    Group group = groupServiceInternal.getGroup(groupId);
    SiteFeed siteFeed = siteService.getSite(studioConfiguration.getProperty(CONFIGURATION_GLOBAL_SYSTEM_SITE));
    AuditLog auditLog = auditServiceInternal.createAuditLogEntry();
    List<AuditLogParameter> parameters = new ArrayList<AuditLogParameter>();
    for (User user : users) {
        AuditLogParameter parameter = new AuditLogParameter();
        parameter.setTargetId(Long.toString(user.getId()));
        parameter.setTargetType(TARGET_TYPE_USER);
        parameter.setTargetValue(user.getUsername());
        parameters.add(parameter);
    }
    auditLog.setParameters(parameters);
    auditLog.setOperation(OPERATION_ADD_MEMBERS);
    auditLog.setSiteId(siteFeed.getId());
    auditLog.setActorId(userService.getCurrentUser().getUsername());
    auditLog.setPrimaryTargetId(Long.toString(groupId));
    auditLog.setPrimaryTargetType(TARGET_TYPE_GROUP);
    auditLog.setPrimaryTargetValue(group.getGroupName());
    auditServiceInternal.insertAuditLog(auditLog);
    return users;
}
Also used : Group(org.craftercms.studio.api.v2.dal.Group) User(org.craftercms.studio.api.v2.dal.User) SiteFeed(org.craftercms.studio.api.v1.dal.SiteFeed) ArrayList(java.util.ArrayList) AuditLogParameter(org.craftercms.studio.api.v2.dal.AuditLogParameter) AuditLog(org.craftercms.studio.api.v2.dal.AuditLog) HasPermission(org.craftercms.commons.security.permissions.annotations.HasPermission)

Example 19 with HasPermission

use of org.craftercms.commons.security.permissions.annotations.HasPermission in project studio by craftercms.

the class GroupServiceImpl method deleteGroup.

@Override
@HasPermission(type = DefaultPermission.class, action = "delete_groups")
public void deleteGroup(List<Long> groupIds) throws ServiceLayerException, GroupNotFoundException, AuthenticationException {
    Group sysAdminGroup;
    try {
        sysAdminGroup = groupServiceInternal.getGroupByName(SYSTEM_ADMIN_GROUP);
    } catch (GroupNotFoundException e) {
        throw new ServiceLayerException("The System Admin group is not found", e);
    }
    if (CollectionUtils.isNotEmpty(groupIds)) {
        if (groupIds.contains(sysAdminGroup.getId())) {
            throw new ServiceLayerException("Deleting the System Admin group is not allowed.");
        }
    }
    List<Group> groups = groupServiceInternal.getGroups(groupIds);
    groupServiceInternal.deleteGroup(groupIds);
    SiteFeed siteFeed = siteService.getSite(studioConfiguration.getProperty(CONFIGURATION_GLOBAL_SYSTEM_SITE));
    AuditLog auditLog = auditServiceInternal.createAuditLogEntry();
    auditLog.setOperation(OPERATION_DELETE);
    auditLog.setActorId(userService.getCurrentUser().getUsername());
    auditLog.setSiteId(siteFeed.getId());
    auditLog.setPrimaryTargetId(studioConfiguration.getProperty(CONFIGURATION_GLOBAL_SYSTEM_SITE));
    auditLog.setPrimaryTargetType(TARGET_TYPE_GROUP);
    auditLog.setPrimaryTargetValue(studioConfiguration.getProperty(CONFIGURATION_GLOBAL_SYSTEM_SITE));
    List<AuditLogParameter> paramters = new ArrayList<AuditLogParameter>();
    for (Group g : groups) {
        AuditLogParameter paramter = new AuditLogParameter();
        paramter.setTargetId(Long.toString(g.getId()));
        paramter.setTargetType(TARGET_TYPE_GROUP);
        paramter.setTargetValue(g.getGroupName());
        paramters.add(paramter);
    }
    auditLog.setParameters(paramters);
    auditServiceInternal.insertAuditLog(auditLog);
}
Also used : Group(org.craftercms.studio.api.v2.dal.Group) SiteFeed(org.craftercms.studio.api.v1.dal.SiteFeed) ArrayList(java.util.ArrayList) ServiceLayerException(org.craftercms.studio.api.v1.exception.ServiceLayerException) GroupNotFoundException(org.craftercms.studio.api.v1.exception.security.GroupNotFoundException) AuditLogParameter(org.craftercms.studio.api.v2.dal.AuditLogParameter) AuditLog(org.craftercms.studio.api.v2.dal.AuditLog) HasPermission(org.craftercms.commons.security.permissions.annotations.HasPermission)

Example 20 with HasPermission

use of org.craftercms.commons.security.permissions.annotations.HasPermission in project studio by craftercms.

the class GroupServiceImpl method createGroup.

@Override
@HasPermission(type = DefaultPermission.class, action = "create_groups")
public Group createGroup(long orgId, String groupName, String groupDescription) throws GroupAlreadyExistsException, ServiceLayerException, AuthenticationException {
    Group toRet = groupServiceInternal.createGroup(orgId, groupName, groupDescription);
    SiteFeed siteFeed = siteService.getSite(studioConfiguration.getProperty(CONFIGURATION_GLOBAL_SYSTEM_SITE));
    AuditLog auditLog = auditServiceInternal.createAuditLogEntry();
    auditLog.setOperation(OPERATION_CREATE);
    auditLog.setSiteId(siteFeed.getId());
    auditLog.setActorId(userService.getCurrentUser().getUsername());
    auditLog.setPrimaryTargetId(groupName);
    auditLog.setPrimaryTargetType(TARGET_TYPE_GROUP);
    auditLog.setPrimaryTargetValue(groupName);
    auditServiceInternal.insertAuditLog(auditLog);
    return toRet;
}
Also used : Group(org.craftercms.studio.api.v2.dal.Group) SiteFeed(org.craftercms.studio.api.v1.dal.SiteFeed) AuditLog(org.craftercms.studio.api.v2.dal.AuditLog) HasPermission(org.craftercms.commons.security.permissions.annotations.HasPermission)

Aggregations

HasPermission (org.craftercms.commons.security.permissions.annotations.HasPermission)25 ArrayList (java.util.ArrayList)13 SiteFeed (org.craftercms.studio.api.v1.dal.SiteFeed)11 AuditLog (org.craftercms.studio.api.v2.dal.AuditLog)11 AuditLogParameter (org.craftercms.studio.api.v2.dal.AuditLogParameter)8 Group (org.craftercms.studio.api.v2.dal.Group)8 User (org.craftercms.studio.api.v2.dal.User)6 AuthenticatedUser (org.craftercms.studio.model.AuthenticatedUser)6 ServiceLayerException (org.craftercms.studio.api.v1.exception.ServiceLayerException)5 List (java.util.List)4 StringTokenizer (java.util.StringTokenizer)4 CmisObject (org.apache.chemistry.opencmis.client.api.CmisObject)4 Document (org.apache.chemistry.opencmis.client.api.Document)4 Session (org.apache.chemistry.opencmis.client.api.Session)4 AmazonS3 (com.amazonaws.services.s3.AmazonS3)3 StringUtils (org.apache.commons.lang3.StringUtils)3 DataSourceRepository (org.craftercms.studio.api.v2.dal.DataSourceRepository)3 Sardine (com.github.sardine.Sardine)2 InputStream (java.io.InputStream)2 Collections (java.util.Collections)2