package io.lumify.core.model.user;
import io.lumify.core.config.Configuration;
import io.lumify.web.clientapi.model.Privilege;
import io.lumify.core.user.SystemUser;
import io.lumify.core.user.User;
import io.lumify.web.clientapi.model.UserStatus;
import org.json.JSONObject;
import org.securegraph.Authorizations;
import org.securegraph.inmemory.InMemoryAuthorizations;
import javax.inject.Inject;
import java.util.*;
public class InMemoryUserRepository extends UserRepository {
private UserListenerUtil userListenerUtil;
@Inject
public InMemoryUserRepository(Configuration configuration, UserListenerUtil userListenerUtil) {
super(configuration);
this.userListenerUtil = userListenerUtil;
}
@Override
public User findByUsername(String username) {
throw new RuntimeException("Not implemented");
}
@Override
public Iterable<User> find(int skip, int limit) {
throw new RuntimeException("Not implemented");
}
@Override
public User findById(String userId) {
throw new RuntimeException("Not implemented");
}
@Override
public User addUser(String username, String displayName, String emailAddress, String password, String[] userAuthorizations) {
username = formatUsername(username);
displayName = displayName.trim();
InMemoryUser user = new InMemoryUser(username, displayName, emailAddress, getDefaultPrivileges(), userAuthorizations, null);
userListenerUtil.fireNewUserAddedEvent(user);
return user;
}
@Override
public void setPassword(User user, String password) {
throw new RuntimeException("Not implemented");
}
@Override
public boolean isPasswordValid(User user, String password) {
throw new RuntimeException("Not implemented");
}
@Override
public void recordLogin(User user, String remoteAddr) {
throw new RuntimeException("Not implemented");
}
@Override
public User setCurrentWorkspace(String userId, String workspaceId) {
throw new RuntimeException("Not implemented");
}
@Override
public String getCurrentWorkspaceId(String userId) {
throw new RuntimeException("Not implemented");
}
@Override
public void setUiPreferences(User user, JSONObject preferences) {
throw new RuntimeException("Not implemented");
}
@Override
public User setStatus(String userId, UserStatus status) {
throw new RuntimeException("Not implemented");
}
@Override
public void addAuthorization(User userUser, String auth) {
throw new RuntimeException("Not implemented");
}
@Override
public void removeAuthorization(User userUser, String auth) {
throw new RuntimeException("Not implemented");
}
@Override
public Authorizations getAuthorizations(User user, String... additionalAuthorizations) {
List<String> auths = new ArrayList<String>();
Collections.addAll(auths, ((InMemoryUser) user).getAuthorizations());
Collections.addAll(auths, additionalAuthorizations);
return new InMemoryAuthorizations(auths.toArray(new String[auths.size()]));
}
@Override
public void setDisplayName(User user, String displayName) { throw new RuntimeException("Not implemented"); }
@Override
public void setEmailAddress(User user, String emailAddress) { throw new RuntimeException("Not implemented"); }
@Override
public Set<Privilege> getPrivileges(User user) {
if (user instanceof SystemUser) {
return Privilege.ALL;
}
return ((InMemoryUser) user).getPrivileges();
}
@Override
public void delete(User user) {
}
@Override
public void setPrivileges(User user, Set<Privilege> privileges) {
((InMemoryUser) user).setPrivileges(privileges);
}
@Override
public User findByPasswordResetToken(String token) {
throw new RuntimeException("Not implemented");
}
@Override
public void setPasswordResetTokenAndExpirationDate(User user, String token, Date expirationDate) {
throw new RuntimeException("Not implemented");
}
@Override
public void clearPasswordResetTokenAndExpirationDate(User user) {
throw new RuntimeException("Not implemented");
}
}