Search in sources :

Example 11 with Role

use of com.willshex.blogwt.shared.api.datatype.Role in project blogwt by billy1380.

the class RoleValidator method lookup.

public static Role lookup(Role role, String name) throws InputValidationException {
    if (role == null)
        throwServiceError(InputValidationException.class, ApiError.InvalidValueNull, TYPE + ": " + name);
    boolean isIdLookup = false, isCodeLookup = false, isNameLookup = false;
    if (role.id != null) {
        isIdLookup = true;
    } else if (role.code != null) {
        isCodeLookup = true;
    }
    if (!(isIdLookup || isNameLookup || isCodeLookup))
        throwServiceError(InputValidationException.class, ApiError.DataTypeNoLookup, TYPE + ": " + name);
    Role lookupRole = null;
    if (isIdLookup) {
        lookupRole = RoleServiceProvider.provide().getRole(role.id);
    } else if (isCodeLookup) {
        lookupRole = RoleServiceProvider.provide().getCodeRole(role.code);
    }
    if (lookupRole == null)
        throwServiceError(InputValidationException.class, ApiError.DataTypeNotFound, TYPE + ": " + name);
    return lookupRole;
}
Also used : Role(com.willshex.blogwt.shared.api.datatype.Role) InputValidationException(com.willshex.gson.web.service.server.InputValidationException)

Example 12 with Role

use of com.willshex.blogwt.shared.api.datatype.Role in project blogwt by billy1380.

the class GetRolesAndPermissionsActionHandler method handle.

/* (non-Javadoc)
	 * 
	 * @see
	 * com.willshex.gson.web.service.server.ActionHandler#handle(com.willshex.
	 * gson.web.service.shared.Request,
	 * com.willshex.gson.web.service.shared.Response) */
@Override
protected void handle(GetRolesAndPermissionsRequest input, GetRolesAndPermissionsResponse output) throws Exception {
    ApiValidator.request(input, GetRolesAndPermissionsRequest.class);
    ApiValidator.accessCode(input.accessCode, "input.accessCode");
    output.session = input.session = SessionValidator.lookupCheckAndExtend(input.session, "input.session");
    input.user = UserValidator.lookup(input.user, "input.user");
    if (!DataTypeHelper.<User>same(input.user, input.session.user)) {
        UserValidator.authorisation(input.session.user, Arrays.asList(PermissionServiceProvider.provide().getCodePermission(PermissionHelper.MANAGE_USERS)), "input.session.user");
    }
    boolean idsOnly = Boolean.TRUE.equals(input.idsOnly);
    if (idsOnly) {
        input.user.roles = PersistenceHelper.typeList(Role.class, input.user.roleKeys);
        input.user.permissions = PersistenceHelper.typeList(Permission.class, input.user.permissionKeys);
    } else {
        if ((input.permissionOnly == null && input.rolesOnly == null) || (Boolean.FALSE.equals(input.rolesOnly) && Boolean.FALSE.equals(input.permissionOnly))) {
            UserHelper.populateRolesAndPermissionsFromKeys(input.user);
            output.roles = input.user.roles;
            output.permissions = input.user.permissions;
        } else if (Boolean.TRUE.equals(input.permissionOnly) && Boolean.TRUE.equals(input.rolesOnly)) {
        } else if (Boolean.TRUE.equals(input.permissionOnly)) {
            UserHelper.populatePermissionsFromKeys(input.user);
            output.permissions = input.user.permissions;
        } else if (Boolean.TRUE.equals(input.rolesOnly)) {
            UserHelper.populateRolesFromKeys(input.user);
            output.roles = input.user.roles;
        }
    }
    if (input.user.roleKeys != null && !Boolean.TRUE.equals(input.rolesOnly) && Boolean.TRUE.equals(input.expandRoles)) {
        List<Permission> expandedPermissions;
        if (idsOnly) {
            Role lookupRole;
            for (Role role : input.user.roles) {
                lookupRole = RoleServiceProvider.provide().getRole(role.id);
                if (lookupRole != null) {
                    expandedPermissions = PersistenceHelper.typeList(Permission.class, lookupRole.permissionKeys);
                    if (expandedPermissions != null) {
                        if (output.permissions != null) {
                            output.permissions.addAll(expandedPermissions);
                        } else {
                            output.permissions = expandedPermissions;
                        }
                    }
                }
            }
        } else {
            for (Role role : input.user.roles) {
                expandedPermissions = PermissionServiceProvider.provide().getRolePermissions(role);
                if (expandedPermissions != null) {
                    if (output.permissions != null) {
                        output.permissions.addAll(expandedPermissions);
                    } else {
                        output.permissions = expandedPermissions;
                    }
                }
            }
        }
    }
}
Also used : Role(com.willshex.blogwt.shared.api.datatype.Role) Permission(com.willshex.blogwt.shared.api.datatype.Permission)

Aggregations

Role (com.willshex.blogwt.shared.api.datatype.Role)12 Permission (com.willshex.blogwt.shared.api.datatype.Permission)8 JsonElement (com.google.gson.JsonElement)4 User (com.willshex.blogwt.shared.api.datatype.User)4 Date (java.util.Date)3 InputValidationException (com.willshex.gson.web.service.server.InputValidationException)2 BlobKey (com.google.appengine.api.blobstore.BlobKey)1 Document (com.google.appengine.api.search.Document)1 ScoredDocument (com.google.appengine.api.search.ScoredDocument)1 JsonObject (com.google.gson.JsonObject)1 JsonParser (com.google.gson.JsonParser)1 SafeHtml (com.google.gwt.safehtml.shared.SafeHtml)1 Column (com.google.gwt.user.cellview.client.Column)1 TextColumn (com.google.gwt.user.cellview.client.TextColumn)1 Key (com.googlecode.objectify.Key)1 GetPostsActionHandler (com.willshex.blogwt.server.api.blog.action.GetPostsActionHandler)1 ISearch (com.willshex.blogwt.server.service.search.ISearch)1 Pager (com.willshex.blogwt.shared.api.Pager)1 SortDirectionType (com.willshex.blogwt.shared.api.SortDirectionType)1 GetPostsRequest (com.willshex.blogwt.shared.api.blog.call.GetPostsRequest)1