package fi.arcusys.koku.common.soa;
import java.util.List;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/**
* External SOA/Web Service interface for providing user/group/role related operations to other parts of the system (UI, Intalio Forms etc.)
*
* @author Dmitry Kudinov (dmitry.kudinov@arcusys.fi)
* Sep 16, 2011
*/
@WebService(targetNamespace = "http://soa.common.koku.arcusys.fi/")
public interface UsersAndGroupsService {
// Portal part
@WebResult(name = "user")
UserInfo loginByKunpoNameAndSsn(@WebParam(name = "kunpoUsername") final String username, @WebParam(name = "ssn") final String ssn);
@WebResult(name = "user")
UserInfo loginByLooraNameAndSsn(@WebParam(name = "looraUsername") final String username, @WebParam(name = "ssn") final String ssn);
@WebResult(name = "userUid")
String getUserUidByKunpoName(@WebParam(name = "kunpoUsername") final String username);
@WebResult(name = "kunpoUsername")
String getKunpoNameByUserUid(@WebParam(name = "userUid") final String userUid);
@WebResult(name = "userUid")
String getUserUidByLooraName(@WebParam(name = "looraUsername") final String username);
@WebResult(name = "looraUsername")
String getLooraNameByUserUid(@WebParam(name = "userUid") final String userUid);
// Intalio part
// get groups
// get users
@WebResult(name = "user")
List<UserInfo> searchUsers(
@WebParam(name = "searchString") final String searchString,
@WebParam(name = "limit") final int limit);
@WebResult(name = "user")
List<UserInfo> searchEmployees(
@WebParam(name = "searchString") final String searchString,
@WebParam(name = "limit") final int limit);
@WebResult(name = "group")
List<Group> searchGroups(
@WebParam(name = "searchString") final String searchString,
@WebParam(name = "limit") final int limit);
@WebResult(name = "user")
List<UserInfo> getUsersByGroupUid(@WebParam(name = "groupUid") final String groupUid);
@WebResult(name = "child")
List<Child> searchChildren(
@WebParam(name = "searchString") final String searchString,
@WebParam(name = "limit") final int limit);
// get user's children with their parents/guardians (excluding user itself)
@WebResult(name = "child")
List<ChildWithHetu> getUsersChildren(@WebParam(name = "userUid") final String userUid);
@WebResult(name = "child")
List<Child> getChildInfo(@WebParam(name = "childUid") final List<String> childUids);
@WebResult(name = "user")
UserInfo getUserInfo(@WebParam(name = "userUid") final String userUid);
String getSsnByLdapName(final String username);
String getSsnByLooraName(final String looraName);
String getSsnByKunpoName(final String kunpoName);
String getUserUidByKunpoSsn(@WebParam(name = "ssn") final String ssn);
String getUserUidByEmployeeSsn(@WebParam(name = "ssn") final String ssn);
// Roles impl
@WebResult(name = "role")
List<Role> getUserRoles(
@WebParam(name = "userUid") final String userUid);
@WebResult(name = "role")
List<Role> searchRoles(
@WebParam(name = "searchString") final String searchString,
@WebParam(name = "limit") final int limit);
@WebResult(name = "username")
List<String> getUsernamesInRole(
@WebParam(name = "roleUid") final String roleUid);
}