Warning: session_start(): open(/var/lib/php/sessions/sess_muttv5drb1897u2ua9h4r0ae2e, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
concept User {
GlobalID eleuUserGlobalID;
S googleEmail;
Superposition defaultSuperposition;
Superposition defaultSuperposition() {
ret withDBLock(this, () -> {
if (defaultSuperposition == null)
cset(this, defaultSuperposition := cnew Superposition(user := User.this, name := shortUserName() + "1"));
ret defaultSuperposition;
});
}
S shortUserName() {
ret or2(takeCharsWhile isLetter(googleEmail), "unknown");
}
}
concept Superposition > ConceptWithGlobalID {
User user;
S name;
}
concept Rewrite > ConceptWithGlobalID {
Superposition sp;
S in, out, purpose, conditions;
}
concept Statement > ConceptWithGlobalID {
Superposition sp;
S text, meta;
bool enabled;
}
cmodule RewriteDBWebBot > DynPrintLogAndEnabled {
set flag NoNanoHTTPD.
S myLink() { ret "/db/"; }
start {
dbIndexing(User, 'eleuUserGlobalID);
}
O html(virtual Request req) {
try {
SS params = cast rget params(req);
virtual User eleuUser = rcall loggedInUser(req);
if (eleuUser == null) ret "Need cookie";
GlobalID userID = cast quickImport(rcall globalID(eleuUser));
User user = uniq User(eleuUserGlobalID := assertNotNull(userID));
cset(user, googleEmail := getString googleEmail(eleuUser));
HCRUD_Concepts data = new <>(Superposition.class).addFilter(+user);
HCRUD crud = new(myLink(), data);
crud.uneditableFields = litset("globalID", "user");
ret "Hello " + eleuUser
+ ", " + user.eleuUserGlobalID + ", " + user.googleEmail
+ h3("Your superpositions")
+ crud.renderPage(params);
} on fail e { printStackTrace(e); }
}
// API for Eleu
void setEleu(O eleu) { mainBot = eleu; }
}