diff --git a/src/main/java/org/caosdb/server/accessControl/UserSources.java b/src/main/java/org/caosdb/server/accessControl/UserSources.java index b169849b4ec910d998e6e4184a195ef804c2a9f8..bd63da6fb7a116f0fb9c75f1724c93913e308a22 100644 --- a/src/main/java/org/caosdb/server/accessControl/UserSources.java +++ b/src/main/java/org/caosdb/server/accessControl/UserSources.java @@ -282,10 +282,7 @@ public class UserSources extends HashMap<String, UserSource> { return false; } - /** - * Log the current time as the user's last visit. - * - */ + /** Log the current time as the user's last visit. */ public static void logUserVisit(String realm, String username, String type) { try { LogUserVisitTransaction t = diff --git a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListRoles.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListRoles.java index 11505b0772792504e1146f4b6103d9274f20dd2d..69ac524eae823d06fdbd4346056979ea15307437 100644 --- a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListRoles.java +++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListRoles.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.database.backend.implementation.MySQL; diff --git a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListUsers.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListUsers.java index cb79d4adea2250dd447d4bbd9f0d3e284e2d8301..83ebffe679e6625da720fd2933a5d8defb7264c3 100644 --- a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListUsers.java +++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListUsers.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.database.backend.implementation.MySQL; diff --git a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLLogUserVisit.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLLogUserVisit.java index 7a0e8ba45b2ddd501c81fef39ba45bfc7c685e68..23050da87e324026be1eefa02690959d0a0590cc 100644 --- a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLLogUserVisit.java +++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLLogUserVisit.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.database.backend.implementation.MySQL; diff --git a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveEntityACL.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveEntityACL.java index 2cb97d80b6b95e76fb0042141f87d57343dd572a..5db8ed7597b1c0d357273848fb7c36febdcfed13 100644 --- a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveEntityACL.java +++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveEntityACL.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.database.backend.implementation.MySQL; diff --git a/src/main/java/org/caosdb/server/database/backend/interfaces/ListRolesImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/ListRolesImpl.java index aafa16e221e076ca0ca380515414f45fb41b4360..aab9041ae0f4e02d4b601e97d042dff591fbbf85 100644 --- a/src/main/java/org/caosdb/server/database/backend/interfaces/ListRolesImpl.java +++ b/src/main/java/org/caosdb/server/database/backend/interfaces/ListRolesImpl.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.database.backend.interfaces; diff --git a/src/main/java/org/caosdb/server/database/backend/interfaces/ListUsersImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/ListUsersImpl.java index 0508a01a22cf0565a95969b5de04d074b2b9fa2b..6bdfda92f2b5a78b8b2dfc8b6f20aac3b68c08a9 100644 --- a/src/main/java/org/caosdb/server/database/backend/interfaces/ListUsersImpl.java +++ b/src/main/java/org/caosdb/server/database/backend/interfaces/ListUsersImpl.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.database.backend.interfaces; diff --git a/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveEntityACLImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveEntityACLImpl.java index d9c5fbba2e3d6d16c98f3a2d38d6d82177c16418..230d4d34103603d5499532a7dc1a941cf82068e7 100644 --- a/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveEntityACLImpl.java +++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveEntityACLImpl.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.database.backend.interfaces; diff --git a/src/main/java/org/caosdb/server/database/backend/transaction/ListRoles.java b/src/main/java/org/caosdb/server/database/backend/transaction/ListRoles.java index 747b3c5ccb4ef11de286bb26de0de6c3f15137df..75792475c4c5a6ae9091f89c8de1b4ef157aa11f 100644 --- a/src/main/java/org/caosdb/server/database/backend/transaction/ListRoles.java +++ b/src/main/java/org/caosdb/server/database/backend/transaction/ListRoles.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.database.backend.transaction; diff --git a/src/main/java/org/caosdb/server/database/backend/transaction/ListUsers.java b/src/main/java/org/caosdb/server/database/backend/transaction/ListUsers.java index e4d5dabb948acad4091cb598e09c633d110bcf35..9f29a3c5888104140eb6e2c29b83370fc1c56401 100644 --- a/src/main/java/org/caosdb/server/database/backend/transaction/ListUsers.java +++ b/src/main/java/org/caosdb/server/database/backend/transaction/ListUsers.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.database.backend.transaction; diff --git a/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveEntityACLTransaction.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveEntityACLTransaction.java index b3d2402e81475a3bbe30d351a206cef4e81e5ebe..9cb96112532fe249fd81c3e8d10d85ca900293d9 100644 --- a/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveEntityACLTransaction.java +++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveEntityACLTransaction.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.database.backend.transaction; diff --git a/src/main/java/org/caosdb/server/database/backend/transaction/UpdateUserRoles.java b/src/main/java/org/caosdb/server/database/backend/transaction/UpdateUserRoles.java index 5950c2554875bd9cae8d90df9690742c5def8db1..bbd23aa95d3eb1bed4f2bafc78fa12d112a02169 100644 --- a/src/main/java/org/caosdb/server/database/backend/transaction/UpdateUserRoles.java +++ b/src/main/java/org/caosdb/server/database/backend/transaction/UpdateUserRoles.java @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.database.backend.transaction; diff --git a/src/main/java/org/caosdb/server/grpc/AccessControlManagementServiceImpl.java b/src/main/java/org/caosdb/server/grpc/AccessControlManagementServiceImpl.java index 0079af6f25bfcc6f9471786d17f821e66fcd3c2b..18dd29a2c6ccd95de74ff530a7d574b14e3b4b52 100644 --- a/src/main/java/org/caosdb/server/grpc/AccessControlManagementServiceImpl.java +++ b/src/main/java/org/caosdb/server/grpc/AccessControlManagementServiceImpl.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.grpc; diff --git a/src/main/java/org/caosdb/server/grpc/AuthInterceptor.java b/src/main/java/org/caosdb/server/grpc/AuthInterceptor.java index 7f192503ab957c786e46966962d4b0d664e5ac24..b58769d4ba6bff28ea922160a29b9747ff99e992 100644 --- a/src/main/java/org/caosdb/server/grpc/AuthInterceptor.java +++ b/src/main/java/org/caosdb/server/grpc/AuthInterceptor.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.grpc; diff --git a/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java b/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java index 29b4ea11889eff8218025bd70df81297bf13c946..fe09df562663289fd796c79bc1db30875e266da5 100644 --- a/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java +++ b/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.grpc; @@ -299,6 +299,11 @@ public class CaosDBToGrpcConverters { } private ScalarValue convertScalarValue(final IndexedSingleValue v) { + if (v == null) { + return ScalarValue.newBuilder() + .setSpecialValue(SpecialValue.SPECIAL_VALUE_UNSPECIFIED) + .build(); + } return convertScalarValue(v.getWrapped()).build(); } diff --git a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java index 0d5288d946f7e4240f73d0fca997993ef76f75e6..9b43a04c19387559f95e05084519974817db852b 100644 --- a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java +++ b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.grpc; diff --git a/src/main/java/org/caosdb/server/grpc/GrpcToCaosDBConverters.java b/src/main/java/org/caosdb/server/grpc/GrpcToCaosDBConverters.java index 9798cbf52d025508c736393038322fd66dbe6e31..5ec896fd44899cd59520f2f45c6ceec6c55042a5 100644 --- a/src/main/java/org/caosdb/server/grpc/GrpcToCaosDBConverters.java +++ b/src/main/java/org/caosdb/server/grpc/GrpcToCaosDBConverters.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.grpc; diff --git a/src/main/java/org/caosdb/server/transaction/ListRolesTransaction.java b/src/main/java/org/caosdb/server/transaction/ListRolesTransaction.java index 5fda2b62f7f1c866ffe1252837447e18b0b07b7f..b8f5943cb6e48fe31784ce0795cead3baeff226e 100644 --- a/src/main/java/org/caosdb/server/transaction/ListRolesTransaction.java +++ b/src/main/java/org/caosdb/server/transaction/ListRolesTransaction.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.transaction; diff --git a/src/main/java/org/caosdb/server/transaction/ListUsersTransaction.java b/src/main/java/org/caosdb/server/transaction/ListUsersTransaction.java index 1756b2e1c3d8ae5fc60caf3a297471d83822dce6..b0c4af3503ed4eb8672870604586b9795faa0658 100644 --- a/src/main/java/org/caosdb/server/transaction/ListUsersTransaction.java +++ b/src/main/java/org/caosdb/server/transaction/ListUsersTransaction.java @@ -16,13 +16,12 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.transaction; import java.util.List; -import java.util.function.Predicate; import java.util.stream.Collectors; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; @@ -37,16 +36,23 @@ public class ListUsersTransaction extends AccessControlTransaction { @Override protected void transaction() throws Exception { Subject currentUser = SecurityUtils.getSubject(); - users = execute(new ListUsers(), getAccess()).getUsers().stream().filter(user -> currentUser.isPermitted(ACMPermissions.PERMISSION_RETRIEVE_USER_INFO(user.realm, user.name)) - ).collect(Collectors.toList()); - + users = + execute(new ListUsers(), getAccess()) + .getUsers() + .stream() + .filter( + user -> + currentUser.isPermitted( + ACMPermissions.PERMISSION_RETRIEVE_USER_INFO(user.realm, user.name))) + .collect(Collectors.toList()); + // remove roles - for(ProtoUser user : users) { - if(!currentUser.isPermitted(ACMPermissions.PERMISSION_RETRIEVE_USER_ROLES(user.realm, user.name))) { + for (ProtoUser user : users) { + if (!currentUser.isPermitted( + ACMPermissions.PERMISSION_RETRIEVE_USER_ROLES(user.realm, user.name))) { user.roles = null; } } - } public List<ProtoUser> getUsers() { diff --git a/src/main/java/org/caosdb/server/transaction/RetrieveACL.java b/src/main/java/org/caosdb/server/transaction/RetrieveACL.java index e780b460e12aaa56854b568bd6e05bf01745c355..c82ff76e696d73da030f6b0c1b815a0620e6e7c4 100644 --- a/src/main/java/org/caosdb/server/transaction/RetrieveACL.java +++ b/src/main/java/org/caosdb/server/transaction/RetrieveACL.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.transaction; diff --git a/src/main/java/org/caosdb/server/transaction/UpdateACL.java b/src/main/java/org/caosdb/server/transaction/UpdateACL.java index a5025181889ba59405d04ae20bea567f62d4563f..49125a2b67abac4fd640e7d07b2d4ddc2960c72f 100644 --- a/src/main/java/org/caosdb/server/transaction/UpdateACL.java +++ b/src/main/java/org/caosdb/server/transaction/UpdateACL.java @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.transaction; diff --git a/src/main/java/org/caosdb/server/utils/ServerMessages.java b/src/main/java/org/caosdb/server/utils/ServerMessages.java index 2938048c269838fdb240f2f95841c78ddc8b5c2f..c1f361e24ce88260d9ac2932d542eedb136180df 100644 --- a/src/main/java/org/caosdb/server/utils/ServerMessages.java +++ b/src/main/java/org/caosdb/server/utils/ServerMessages.java @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. - * + * */ package org.caosdb.server.utils;