package codeine.permissions; import java.util.List; import org.apache.log4j.Logger; import codeine.jsons.auth.CodeineUser; import com.google.common.collect.Lists; public class PermissionsConfJson { private static final Logger log = Logger .getLogger(PermissionsConfJson.class); private List<UserPermissions> permissions = Lists.newArrayList(); public PermissionsConfJson() { } public PermissionsConfJson(List<UserPermissions> permissions) { this.permissions = permissions; } public UserPermissions get(String user) { UserPermissions userPermissions = getOrNull(user); if (null == userPermissions) { throw new IllegalArgumentException("user does not have permissions " + user); } return userPermissions; } public UserPermissions getOrNull(String user) { for (UserPermissions u : permissions) { if (u.user() == null || u.user().username() == null) { log.warn("permissions contains non existing user " + u.usernameString(), new AssertionError()); continue; } if (user.equals(u.user().username())) { return u; } } return null; } public List<UserPermissions> permissions() { return permissions; } public void makeAdmin(CodeineUser user) { UserPermissions p = new UserPermissions(user,true); permissions.add(p); } }