Skip to content
Snippets Groups Projects
Commit 14f1ffd1 authored by Daniel Gerhardt's avatar Daniel Gerhardt
Browse files

Implement CouchDB based user management

parent 8142e8d4
No related merge requests found
......@@ -50,6 +50,7 @@ import com.fourspaces.couchdb.ViewResults;
import de.thm.arsnova.connector.model.Course;
import de.thm.arsnova.entities.Answer;
import de.thm.arsnova.entities.DbUser;
import de.thm.arsnova.entities.FoodVote;
import de.thm.arsnova.entities.InterposedQuestion;
import de.thm.arsnova.entities.InterposedReadingCount;
......@@ -1338,4 +1339,50 @@ public class CouchDBDao implements IDatabaseDao {
this.deleteAnswers(q);
}
}
@Override
public DbUser createOrUpdateUser(DbUser user) {
try {
String id = user.getId();
String rev = user.getRev();
Document d = new Document();
if (null != id) {
d = database.getDocument(id, rev);
}
d.put("type", "userdetails");
d.put("username", user.getUsername());
d.put("password", user.getPassword());
d.put("activationKey", user.getActivationKey());
d.put("creation", user.getCreation());
d.put("lastLogin", user.getLastLogin());
database.saveDocument(d, id);
user.setId(d.getId());
user.setRev(d.getRev());
return user;
} catch (IOException e) {
LOGGER.error("Could not save user {}", user);
}
return null;
}
@Override
public DbUser getUser(String username) {
NovaView view = new NovaView("user/all");
view.setKey(username);
ViewResults results = this.getDatabase().view(view);
if (results.getJSONArray("rows").optJSONObject(0) == null) {
return null;
}
return (DbUser) JSONObject.toBean(
results.getJSONArray("rows").optJSONObject(0).optJSONObject("value"),
DbUser.class
);
}
}
......@@ -23,6 +23,7 @@ import java.util.List;
import de.thm.arsnova.connector.model.Course;
import de.thm.arsnova.entities.Answer;
import de.thm.arsnova.entities.DbUser;
import de.thm.arsnova.entities.FoodVote;
import de.thm.arsnova.entities.InterposedQuestion;
import de.thm.arsnova.entities.InterposedReadingCount;
......@@ -161,4 +162,8 @@ public interface IDatabaseDao {
void publishAllQuestions(Session session, boolean publish);
void deleteAllQuestionsAnswers(Session session);
DbUser createOrUpdateUser(DbUser user);
DbUser getUser(String username);
}
......@@ -25,6 +25,7 @@ import java.util.concurrent.ConcurrentHashMap;
import de.thm.arsnova.connector.model.Course;
import de.thm.arsnova.entities.Answer;
import de.thm.arsnova.entities.DbUser;
import de.thm.arsnova.entities.Feedback;
import de.thm.arsnova.entities.FoodVote;
import de.thm.arsnova.entities.InterposedQuestion;
......@@ -497,4 +498,16 @@ public class StubDatabaseDao implements IDatabaseDao {
// TODO Auto-generated method stub
}
@Override
public DbUser createOrUpdateUser(DbUser user) {
// TODO Auto-generated method stub
return null;
}
@Override
public DbUser getUser(String username) {
// TODO Auto-generated method stub
return null;
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment