Skip to content

Commit 422ac0f

Browse files
committed
FEAT: store user's persistent data before releasing existing user
1 parent e92f1f5 commit 422ac0f

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/mezz/mezz-shell.reb

+6-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,12 @@ su: set-user: func[
7070
/local su
7171
][
7272
su: system/user
73-
if unset? :name [su/name: none su/data: make map! 1 exit]
73+
if unset? :name [
74+
try [update su/data] ;; save changes if there are any
75+
su/name: none
76+
su/data: make map! 1
77+
exit
78+
]
7479

7580
sys/log/info 'REBOL ["Initialize user:" as-green :name]
7681

src/tests/units/codecs-test.r3

+7
Original file line numberDiff line numberDiff line change
@@ -780,6 +780,13 @@ if find codecs 'safe [
780780
--assert not error? try [set-user/n/p temp-user "passw"]
781781
--assert system/user/name = @temp-user
782782
--assert 'file = exists? try [system/user/data/spec/ref]
783+
--assert put system/user/data 'key "hello" ;; store some data...
784+
--assert "hello" = user's key ;; resolve the data
785+
--assert not error? try [su] ;; release user
786+
--assert none? system/user/name
787+
--assert not error? try [set-user/p temp-user "passw"]
788+
--assert "hello" = user's key ;; resolve the data
789+
783790
try [delete system/user/data/spec/ref]
784791

785792
===end-group===

0 commit comments

Comments
 (0)