/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.geofence.gui.client.service;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import org.geoserver.geofence.gui.client.ApplicationException;
import org.geoserver.geofence.gui.client.model.GSUserModel;
import org.geoserver.geofence.gui.client.model.UsernameModel;
import org.geoserver.geofence.gui.client.model.data.UserLimitsInfoModel;
/**
* The Interface GsUsersManagerRemoteService.
*/
@RemoteServiceRelativePath("GsUsersManagerRemoteService")
public interface GsUsersManagerRemoteService extends RemoteService
{
/**
* Gets the gs users.
*
* @param config
* the config
* @param full
* the full
* @return the gs users
* @throws ApplicationException
* the application exception
*/
public PagingLoadResult<GSUserModel> getGsUsers(int offset, int limit, boolean full) throws ApplicationException;
public PagingLoadResult<UsernameModel> getGsUsernames(int offset, int limit, boolean full) throws ApplicationException;
/**
* Save gs profile.
*
* @param profile
* the profile
* @throws ApplicationException
* the application exception
*/
public void saveGsUser(GSUserModel user) throws ApplicationException;
/**
* Delete gs profile.
*
* @param profile
* the profile
* @throws ApplicationException
* the application exception
*/
public void deleteGsUser(GSUserModel user) throws ApplicationException;
/**
* @param user
* @return UserLimitInfo
* @throws ApplicationException
*/
public UserLimitsInfoModel getUserLimitsInfo(GSUserModel user) throws ApplicationException;
/**
* @param user
* @return UserLimitInfo
* @throws ApplicationException
*/
public UserLimitsInfoModel saveUserLimitsInfo(UserLimitsInfoModel userLimitInfo) throws ApplicationException;
/**
* This service returns to the client the information about the need for load the users and group management tabs
*
* @return true if the tab must be loaded, false otherwise
* @throws ApplicationException
*/
public boolean activateUserGroupTabs() throws ApplicationException;
}