Skip to content
Snippets Groups Projects
Commit e5bf5876 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

configuration parameter for default custom overlays privilege

parent f8b212bb
No related branches found
No related tags found
2 merge requests!412changes from 12.1.0~beta.1 into master,!398Resolve "Default for `Custom overlays`"
......@@ -224,6 +224,8 @@ public enum ConfigurationElementType {
LDAP_FILTER("LDAP filter ", "(memberof=cn=minerva,cn=groups,cn=accounts,dc=uni,dc=lu)", ConfigurationElementEditType.STRING, true,
ConfigurationElementTypeGroup.LDAP_CONFIGURATION), //
DEFAULT_CUSTOM_LAYOUTS("Default user privilege for: " + PrivilegeType.CUSTOM_LAYOUTS.getCommonName(), "0",
ConfigurationElementEditType.INTEGER, true, ConfigurationElementTypeGroup.DEFAULT_USER_PRIVILEGES),
;
/**
......
......@@ -475,6 +475,7 @@ public class ProjectService implements IProjectService {
for (User user : userDao.getAll()) {
if (!processedUser.contains(user)) {
processedUser.add(user);
userService.createDefaultBasicPrivilegesForUser(user);
userService.createDefaultProjectPrivilegesForUser(project, user);
}
}
......
......@@ -10,6 +10,7 @@ import java.util.List;
import java.util.Map;
import java.util.Random;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.authority.AuthorityUtils;
......@@ -30,6 +31,7 @@ import lcsb.mapviewer.model.Project;
import lcsb.mapviewer.model.log.LogType;
import lcsb.mapviewer.model.user.BasicPrivilege;
import lcsb.mapviewer.model.user.ConfigurationElementType;
import lcsb.mapviewer.model.user.ConfigurationOption;
import lcsb.mapviewer.model.user.ObjectPrivilege;
import lcsb.mapviewer.model.user.PrivilegeType;
import lcsb.mapviewer.model.user.User;
......@@ -538,6 +540,7 @@ public class UserService implements IUserService {
user.setEmail(ldapUserData.getEmail());
user.setConnectedToLdap(true);
addUser(user);
createDefaultBasicPrivilegesForUser(user);
for (Project project : projectDao.getAll()) {
createDefaultProjectPrivilegesForUser(project, user);
}
......@@ -572,9 +575,30 @@ public class UserService implements IUserService {
}
}
ObjectPrivilege privilege = new ObjectPrivilege(project, level, type, user);
setUserPrivilege(user, privilege);
updateUserPrivilegesWithoutDbModification(user, privilege);
}
}
updateUser(user);
}
@Override
public void createDefaultBasicPrivilegesForUser(User user) {
for (PrivilegeType type : PrivilegeType.values()) {
if (BasicPrivilege.class.equals(type.getPrivilegeClassType())) {
int level = 0;
ConfigurationOption option = configurationService.getValue(type);
if (option != null) {
if (option.getValue().equalsIgnoreCase("true")) {
level = 1;
} else if (StringUtils.isNumeric(option.getValue())) {
level = Integer.valueOf(option.getValue());
}
BasicPrivilege privilege = new BasicPrivilege(level, type, user);
updateUserPrivilegesWithoutDbModification(user, privilege);
}
}
}
updateUser(user);
}
@Override
......
......@@ -184,6 +184,7 @@ public interface IUserService {
void setLdapService(ILdapService ldapService);
void createDefaultProjectPrivilegesForUser(Project project, User user);
void createDefaultBasicPrivilegesForUser(User user);
Map<String, Boolean> ldapAccountExistsForLogin(Collection<User> logins);
}
......@@ -85,7 +85,8 @@ public class UserServiceTest extends ServiceTestFunctions {
private LdapService createMockLdapService(String filename, String login, String passwd) throws LDAPException {
configurationService.setConfigurationValue(ConfigurationElementType.LDAP_BASE_DN, "dc=uni,dc=lu");
configurationService.setConfigurationValue(ConfigurationElementType.LDAP_OBJECT_CLASS, "person");
configurationService.setConfigurationValue(ConfigurationElementType.LDAP_FILTER, "memberof=cn=gitlab,cn=groups,cn=accounts,dc=uni,dc=lu");
configurationService.setConfigurationValue(ConfigurationElementType.LDAP_FILTER,
"memberof=cn=gitlab,cn=groups,cn=accounts,dc=uni,dc=lu");
LdapService ldapService = Mockito.spy(LdapService.class);
ldapService.setConfigurationService(configurationService);
......@@ -226,4 +227,21 @@ public class UserServiceTest extends ServiceTestFunctions {
throw e;
}
}
@Test
public void testCreateDefaultBasicPrivilegesForUser() throws Exception {
String originalValue = configurationService.getConfigurationValue(ConfigurationElementType.DEFAULT_CUSTOM_LAYOUTS);
try {
configurationService.setConfigurationValue(ConfigurationElementType.DEFAULT_CUSTOM_LAYOUTS, "127");
createUser();
userService.createDefaultBasicPrivilegesForUser(user);
assertEquals(127, userService.getUserPrivilegeLevel(user, PrivilegeType.CUSTOM_LAYOUTS));
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
configurationService.setConfigurationValue(ConfigurationElementType.DEFAULT_CUSTOM_LAYOUTS, originalValue);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment