diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java
index 2e9f2635975fd8858d385de89e0af2dbcb46c6cf..025355abd30f6817ca89e7ba32631917620271f7 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java
@@ -3,6 +3,7 @@ package lcsb.mapviewer.api.users;
 import java.io.IOException;
 import java.util.Calendar;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.servlet.http.Cookie;
@@ -71,6 +72,15 @@ public class UserController extends BaseController {
 	) throws SecurityException, ObjectNotFoundException {
 		return userRest.getUser(token, login, columns);
 	}
+	
+	@RequestMapping(value = "/users/", method = { RequestMethod.GET }, produces = { MediaType.APPLICATION_JSON_VALUE })
+	public List<Map<String, Object>> getUsers(//
+			@CookieValue(value = Configuration.AUTH_TOKEN) String token, //
+			@PathVariable(value = "login") String login, //
+			@RequestParam(value = "columns", defaultValue = "") String columns//
+	) throws SecurityException, ObjectNotFoundException {
+		return userRest.getUsers(token, columns);
+	}
 
 	@RequestMapping(value = "/doLogout", method = { RequestMethod.GET, RequestMethod.POST }, produces = { MediaType.APPLICATION_JSON_VALUE })
 	public Map<String, String> logout(@CookieValue(value = Configuration.AUTH_TOKEN) String token,
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java
index bcd07b094b7ae9854fe2952e8f656493de13458f..427f8f0b07a4d8300cbb5f46ec54194eac45ec60 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java
@@ -10,6 +10,7 @@ import java.util.Set;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import lcsb.mapviewer.api.BaseRestImpl;
 import lcsb.mapviewer.api.ObjectNotFoundException;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.user.BasicPrivilege;
@@ -19,44 +20,25 @@ import lcsb.mapviewer.model.user.User;
 import lcsb.mapviewer.services.SecurityException;
 import lcsb.mapviewer.services.interfaces.ILayoutService;
 import lcsb.mapviewer.services.interfaces.IUserService;
+import lcsb.mapviewer.services.view.AuthenticationToken;
 
 @Transactional(value = "txManager")
-public class UserRestImpl {
-
-	@Autowired
-	private IUserService	 userService;
+public class UserRestImpl extends BaseRestImpl {
 
 	@Autowired
 	private ILayoutService layoutService;
 
-	/**
-	 * @return the userService
-	 * @see #userService
-	 */
-	public IUserService getUserService() {
-		return userService;
-	}
-
-	/**
-	 * @param userService
-	 *          the userService to set
-	 * @see #userService
-	 */
-	public void setUserService(IUserService userService) {
-		this.userService = userService;
-	}
-
 	public Map<String, Object> getUser(String token, String login, String columns) throws SecurityException, ObjectNotFoundException {
-		User ownUserData = userService.getUserByToken(token);
+		User ownUserData = getUserService().getUserByToken(token);
 
 		Set<String> columnSet = createUserColumnSet(columns);
 
-		boolean isAdmin = userService.userHasPrivilege(ownUserData, PrivilegeType.USER_MANAGEMENT);
+		boolean isAdmin = getUserService().userHasPrivilege(ownUserData, PrivilegeType.USER_MANAGEMENT);
 
 		if (ownUserData.getLogin().equals(login)) {
 			return prepareUse(ownUserData, columnSet, true);
 		} else if (isAdmin) {
-			User user = userService.getUserByLogin(login);
+			User user = getUserService().getUserByLogin(login);
 			if (user == null) {
 				throw new ObjectNotFoundException("User doesn't exist");
 			}
@@ -172,4 +154,18 @@ public class UserRestImpl {
 		this.layoutService = layoutService;
 	}
 
+	public List<Map<String, Object>> getUsers(String token, String columns) throws SecurityException {
+		AuthenticationToken authenticationToken = getUserService().getToken(token);
+		User ownUserData = getUserService().getUserByToken(token);
+		boolean isAdmin = getUserService().userHasPrivilege(ownUserData, PrivilegeType.USER_MANAGEMENT);
+
+		Set<String> columnSet = createUserColumnSet(columns);
+
+		List<Map<String, Object>> result = new ArrayList<>();
+		for (User user : getUserService().getUsers(authenticationToken)) {
+			result.add(prepareUse(user, columnSet, isAdmin));
+		}
+		return result;
+	}
+
 }
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/users/UserRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/users/UserRestImplTest.java
index 7fe01ae6bb5c568e29ca6543e4d9ff18791c94a9..af81cc5eed77fd422a0ff86815ea7a3f7da494f8 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/users/UserRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/users/UserRestImplTest.java
@@ -14,7 +14,7 @@ import lcsb.mapviewer.api.users.UserRestImpl;
 import lcsb.mapviewer.common.Configuration;
 
 public class UserRestImplTest extends RestTestFunctions {
-	Logger logger = Logger.getLogger(UserRestImplTest.class);
+	Logger			 logger	= Logger.getLogger(UserRestImplTest.class);
 
 	@Autowired
 	UserRestImpl userRestImpl;
@@ -32,7 +32,7 @@ public class UserRestImplTest extends RestTestFunctions {
 	}
 
 	@Test
-	public void test() throws Exception {
+	public void testGetUser() throws Exception {
 		try {
 			Object response = userRestImpl.getUser(token.getId(), Configuration.ANONYMOUS_LOGIN, "");
 			assertNotNull(response);
@@ -42,4 +42,15 @@ public class UserRestImplTest extends RestTestFunctions {
 		}
 	}
 
+	@Test
+	public void testGetUsers() throws Exception {
+		try {
+			Object response = userRestImpl.getUsers(adminToken.getId(), "");
+			assertNotNull(response);
+		} catch (Exception e) {
+			e.printStackTrace();
+			throw e;
+		}
+	}
+
 }
diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java b/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java
index bf663ae19f13ded13a04fc934679110cc58af457..3c21473a3550bac683b8704ef44451abe2780a25 100644
--- a/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java
@@ -207,7 +207,7 @@ public class UserService implements IUserService {
 	public List<UserView> getAllUserRows() {
 		List<Project> projects = projectDao.getAll();
 
-		List<UserView> result = new ArrayList<UserView>();
+		List<UserView> result = new ArrayList<>();
 		List<User> fullList = userDao.getAll();
 		for (User user : fullList) {
 			result.add(userViewFactory.create(user, projects));
@@ -581,4 +581,13 @@ public class UserService implements IUserService {
 			throw new SecurityException("You cannot access data of other users");
 		}
 	}
+
+	@Override
+	public List<User> getUsers(AuthenticationToken token) throws SecurityException {
+		if (userHasPrivilege(token, PrivilegeType.USER_MANAGEMENT)) {
+			return userDao.getAll();
+		} else {
+			throw new SecurityException("You have no access to users data");
+		}
+	}
 }
diff --git a/service/src/main/java/lcsb/mapviewer/services/interfaces/IUserService.java b/service/src/main/java/lcsb/mapviewer/services/interfaces/IUserService.java
index ad4c6dd627f37f7dc1e86b21efdad2be1f78c4e5..f9bfadc911c527e1a7bceb76192878b8c636aa1f 100644
--- a/service/src/main/java/lcsb/mapviewer/services/interfaces/IUserService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/interfaces/IUserService.java
@@ -256,4 +256,6 @@ public interface IUserService {
 	boolean userHasPrivilege(AuthenticationToken token, PrivilegeType addMap);
 
 	User getUserById(String creatorId, AuthenticationToken authenticationToken) throws SecurityException;
+
+	List<User> getUsers(AuthenticationToken token) throws SecurityException;
 }