瀏覽代碼

System can boot up just fine and create new non-privileged users

Yentl Van Tendeloo 8 年之前
父節點
當前提交
3548527a6a
共有 1 個文件被更改,包括 28 次插入3 次删除
  1. 28 3
      core/core_algorithm.alc

+ 28 - 3
core/core_algorithm.alc

@@ -80,9 +80,18 @@ Void function main():
 	// Switch all new users to the user_function
 	// This accesses the bootstrap level, so do not change this unless you know what you are doing
 	Element root
+	Element prev
 	root = read_root()
-	dict_delete(root["__hierarchy"], "__IP")
-	dict_add(root["__hierarchy"], "__IP", user_function)
+	root = root["__hierarchy"]["__IP"]
+	log("Found " + cast_e2s(root))
+	while (value_neq(root, !call)):
+		log("Found " + cast_e2s(root))
+		prev = root
+		root = root["next"]
+	log("End at " + cast_e2s(root))
+	log("to: " + cast_e2s(root["func"]["var"]["var"]))
+	dict_delete(prev, "next")
+	dict_add(prev, "next", user_function["body"])
 
 	// Call this for ourselves as well
 	user_function_skip_init(admin_user)
@@ -165,11 +174,27 @@ Boolean function check_login(user_id : String):
 	return False!
 
 Element function user_function():
+	log("Got to user_function")
 	String username
 	String user_id
 
 	output("Log on as which user?")
-	output("non-existing user will be created")
+
+	// Load in all global variables, as this code is hotloaded!
+	Element root
+	root = read_root()
+	root = root["__hierarchy"]["objects"]
+	exec(root["bootstrap/modelling.alc"]["initializers"])
+	exec(root["bootstrap/library.alc"]["initializers"])
+	exec(root["bootstrap/constructors.alc"]["initializers"])
+	exec(root["bootstrap/object_operations.alc"]["initializers"])
+	exec(root["core/mini_modify.alc"]["initializers"])
+	exec(root["bootstrap/model_management.alc"]["initializers"])
+	exec(root["bootstrap/ramify.alc"]["initializers"])
+	exec(root["bootstrap/transform.alc"]["initializers"])
+	exec(root["bootstrap/conformance_scd.alc"]["initializers"])
+	exec(root["core/core_algorithm.alc"]["initializers"])
+	core = import_node("models/core")
 
 	username = input()