implemented project creation
This commit is contained in:
@@ -140,6 +140,11 @@ public class UserModule extends BaseHandler implements UserService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Long, UmbrellaUser> list(Collection<Long> ids) throws UmbrellaException {
|
||||
return users.list(0,null,ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UmbrellaUser loadUser(long userId) throws UmbrellaException {
|
||||
return users.load(userId);
|
||||
@@ -191,7 +196,7 @@ public class UserModule extends BaseHandler implements UserService {
|
||||
if (user.isEmpty()) return unauthorized(ex);
|
||||
if (!(user.get() instanceof DbUser dbUser)) return unauthorized(ex);
|
||||
if (!(dbUser.id() == userId || dbUser.permissions().contains(LIST_USERS))) throw forbidden("You are not allowed to access that user!");
|
||||
return sendContent(ex,users.load(userId));
|
||||
return sendContent(ex,loadUser(userId));
|
||||
} catch (UmbrellaException e) {
|
||||
return send(ex,e);
|
||||
} catch (NumberFormatException ignored) {}
|
||||
@@ -216,7 +221,7 @@ public class UserModule extends BaseHandler implements UserService {
|
||||
if (PASSWORD.equals(head)) return patchPassword(ex,requestingUser.get());
|
||||
if (OIDC.equals(head)) return patchService(ex,path.pop(),requestingUser.get());
|
||||
userId = Long.parseLong(head);
|
||||
DbUser editedUser = (DbUser) users.load(userId);
|
||||
DbUser editedUser = (DbUser) loadUser(userId);
|
||||
|
||||
if (!(requestingUser.get() instanceof DbUser dbUser) || !(dbUser.id() == userId || dbUser.permissions().contains(UPDATE_USERS))) throw forbidden("You are not allowed to update user "+editedUser.name());
|
||||
|
||||
@@ -288,7 +293,7 @@ public class UserModule extends BaseHandler implements UserService {
|
||||
var assignment = new ForeignLogin(state.loginService.name(),oidcUserId,currentUser.id());
|
||||
logins.save(assignment);
|
||||
}
|
||||
var user = users.load(logins.getUserId(state.loginService.name(), oidcUserId));
|
||||
var user = loadUser(logins.getUserId(state.loginService.name(), oidcUserId));
|
||||
var session = users.getSession(user);
|
||||
var returnTo = "/user";
|
||||
if (state.config.has("returnTo")) returnTo = state.config.getString("returnTo");
|
||||
@@ -384,7 +389,7 @@ public class UserModule extends BaseHandler implements UserService {
|
||||
|
||||
private boolean getUserList(HttpExchange ex, UmbrellaUser user) throws IOException, UmbrellaException {
|
||||
if (!(user instanceof DbUser dbUser && dbUser.permissions().contains(LIST_USERS))) throw forbidden("You are not allowed to list users!");
|
||||
var list = users.list(0, null).stream().map(UmbrellaUser::toMap).toList();
|
||||
var list = users.list(0, null,null).values().stream().map(UmbrellaUser::toMap).toList();
|
||||
return sendContent(ex,list);
|
||||
}
|
||||
|
||||
@@ -393,7 +398,7 @@ public class UserModule extends BaseHandler implements UserService {
|
||||
if (!(requestingUser.isPresent() && requestingUser.get() instanceof DbUser dbUser)) return unauthorized(ex);
|
||||
if (!dbUser.permissions().contains(PERMISSION.IMPERSONATE)) throw forbidden("You are not allowed to impersonate other users!");
|
||||
if (targetId == null) return sendContent(ex,HTTP_UNPROCESSABLE,"user id missing");
|
||||
var targetUser = users.load(targetId);
|
||||
var targetUser = loadUser(targetId);
|
||||
users.getSession(targetUser).cookie().addTo(ex);
|
||||
return sendContent(ex,targetUser.toMap());
|
||||
}
|
||||
|
||||
@@ -8,7 +8,8 @@ import de.srsoftware.umbrella.core.model.Token;
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
import de.srsoftware.umbrella.user.model.DbUser;
|
||||
import de.srsoftware.umbrella.user.model.Password;
|
||||
import java.util.List;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
public interface UserDb {
|
||||
|
||||
@@ -25,7 +26,7 @@ public interface UserDb {
|
||||
|
||||
Session extend(Session session) throws UmbrellaException;
|
||||
|
||||
List<UmbrellaUser> list(Integer start, Integer limit, Long ... ids) throws UmbrellaException;
|
||||
Map<Long, UmbrellaUser> list(Integer start, Integer limit, Collection<Long> ids) throws UmbrellaException;
|
||||
|
||||
Session load(Token token) throws UmbrellaException;
|
||||
|
||||
|
||||
@@ -295,15 +295,18 @@ CREATE TABLE IF NOT EXISTS {0} (
|
||||
|
||||
|
||||
@Override
|
||||
public List<UmbrellaUser> list(Integer start, Integer limit, Long ... ids) throws UmbrellaException {
|
||||
var list = new ArrayList<UmbrellaUser>();
|
||||
public Map<Long, UmbrellaUser> list(Integer start, Integer limit, Collection<Long> ids) throws UmbrellaException {
|
||||
var list = new HashMap<Long, UmbrellaUser>();
|
||||
try {
|
||||
var query = select(ALL).from(TABLE_USERS);
|
||||
if (start != null && start > 0) query.skip(start);
|
||||
if (limit != null && limit > 0) query.limit(limit);
|
||||
if (ids != null && ids.length>0) query.where(ID,in((Object[]) ids));
|
||||
if (ids != null && !ids.isEmpty()) query.where(ID,in(ids.toArray()));
|
||||
var rs = query.exec(db);
|
||||
while (rs.next()) list.add(toUser(rs));
|
||||
while (rs.next()) {
|
||||
var user = toUser(rs);
|
||||
list.put(user.id(),user);
|
||||
}
|
||||
rs.close();
|
||||
} catch (SQLException e) {
|
||||
LOG.log(WARNING,"Failed to load user list from database!",e);
|
||||
|
||||
Reference in New Issue
Block a user