~aleteoryx/muditaos

ref: a405cad694b867fcd2498984830bd97d4b9bde2f muditaos/module-apps/application-desktop/doc/appdesktop_pukflow_withFailure.pu -rw-r--r-- 4.1 KiB
a405cad6Aleteoryx trim readme 7 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
@startuml
skinparam BackgroundColor F0F0F0

participant "Service Cellular" as srvclr
participant "Application Manager" as appmgr
participant "ApplicaionDesktop" as appdsktp
participant "PinLockWindow" as pinwin
actor User

    == PUK required flow ==

[o->srvclr : need PUK1
activate srvclr
srvclr -> appmgr : ActionMessage{RequestPuk1, {SIM1, attempts}} via sys::bus message
    activate appmgr
deactivate srvclr
    appmgr -> appmgr : translate request to action
    appmgr -> appdsktp : forward action
        activate appdsktp
    deactivate appmgr
        appdsktp -> appdsktp : handle(RequestPukAction)
note over of srvclr
    Cellular side data:
    State: PUK required
    SIM: SIM1
    phone: +48500500500
    attempts: 8
end note
/ note left of pinwin
    Desktop side data:
    State: PUK required
    SIM: SIM1
    attempts: 8
end note
/ note left of appdsktp
    Desktop side state:
    Screen Unlocked
end note

        appdsktp -> pinwin : switchWindow(SIM1, reqPUK, attempts)
            activate pinwin
        deactivate appdsktp
            pinwin -> pinwin : rebuild
            pinwin -> pinwin : setVisiblePukRequired
            pinwin <- User : Enters PUK (invalid)
            pinwin <- User : Confirm
            loop valid new PIN provided
                pinwin -> pinwin : setVisibleNewPinRequired
                pinwin <- User : Enters PIN
                pinwin -> pinwin : setVisibleConfirmPIN
                pinwin <- User : Enters PIN
            end
        appdsktp <- pinwin : handlePasscode(pukValue, newPin)
        activate appdsktp
            deactivate pinwin

srvclr <- appdsktp : PukData(pukValue, newPin) via sys::bus message
activate srvclr
        deactivate appdsktp
srvclr -> srvclr : verification failed
srvclr -> srvclr : attempts --
deactivate srvclr

    == PUK invalid: Retry with 7 attempts left ==

[o->srvclr : need PUK1
activate srvclr
srvclr -> appmgr : ActionMessage{RequestPuk1, {SIM1, attempts}} via sys::bus message
    activate appmgr
deactivate srvclr
    appmgr -> appmgr : translate request to action
    appmgr -> appdsktp : forward action
        activate appdsktp
    deactivate appmgr
        appdsktp -> appdsktp : handle(RequestPukAction)
note over of srvclr
    Cellular side data:
    State: PUK required
    SIM: SIM1
    phone: +48500500500
    attempts: 7
end note
/ note left of pinwin
    Desktop side data:
    State: PUK invalid
    SIM: SIM1
    attempts: 7
end note
/ note left of appdsktp
    Desktop side state:
    Screen Unlocked
end note

        appdsktp -> pinwin : switchWindow(SIM1, invalidPUK, attempts)
            activate pinwin
        deactivate appdsktp
            pinwin -> pinwin : rebuild
            pinwin -> pinwin : setVisibleInvalidPuk
            pinwin <- User : Confirm
            pinwin -> pinwin : setVisiblePukRequired
            pinwin <- User : Enters PUK (invalid)
            pinwin <- User : Confirm
            loop valid new PIN provided
                pinwin -> pinwin : setVisibleNewPinRequired
                pinwin <- User : Enters PIN
                pinwin -> pinwin : setVisibleConfirmPIN
                pinwin <- User : Enters PIN
            end
        appdsktp <- pinwin : handlePasscode(pukValue, newPin)
        activate appdsktp
            deactivate pinwin

srvclr <- appdsktp : PukData(pukValue, newPin) via sys::bus message
activate srvclr
        deactivate appdsktp
srvclr -> srvclr : verification failed
srvclr -> srvclr : attempts --
deactivate srvclr
    == PUK invalid: Retry with 6 attempts left ==
    ... multiple failures ...

    == SIM blocked : Retry with 0 attempts left ==

[o->srvclr : SIM1 unlocked
activate srvclr
srvclr -> appmgr : ActionMessage{SimBlocked, {SIM1}} via sys::bus message
    activate appmgr
deactivate srvclr
    appmgr -> appmgr : translate request to action
    appmgr -> appdsktp : forward action
        activate appdsktp
    deactivate appmgr
        appdsktp -> appdsktp : handle(SimUnlockedAction)
        appdsktp -> pinwin : switchWindow( Blocked, SIM1 )
            activate pinwin
        deactivate appdsktp
            pinwin -> pinwin : setVisibleBlocked

@enduml