~aleteoryx/muditaos

ref: 85cd9dd6902b49221fa94f91b062f64c3ef9df8e muditaos/module-apps/application-desktop/doc/appdesktop_pinflow_withFailure.pu -rw-r--r-- 3.8 KiB
85cd9dd6 — Lukasz Mastalerz [CP-1852] Too many user files removes default relaxation audio from the list 2 years 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
140
141
142
143
144
145
146
@startuml
skinparam BackgroundColor F0F0F0

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

    == PIN required - invalid PIN flow ==

note left of srvclr
    Cellular side data:
    State: PIN required
    SIM: SIM1
    phone: +48500500500
    attempts: 4
end note
/ note left of appdsktp
    Desktop side state:
    Screen Locked
end note
/ note left of pinwin
    Desktop side data:
    None
end note

[o->srvclr : need PIN1

activate srvclr
srvclr -> appmgr : ActionMessage{RequestPin1, {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(RequestPinAction) -> queued
        deactivate appdsktp

        ... ...
        appdsktp <- User : Unlock screen
        activate appdsktp
note left of pinwin
    Desktop side data:
    State: PIN required
    SIM: SIM1
    attempts: 4
end note
/ note left of appdsktp
    Desktop side state:
    Screen Unlocked
end note
        appdsktp -> pinwin ** : switchWindow(SIM1, reqPIN, attempts)
            activate pinwin
        deactivate appdsktp
            pinwin -> pinwin : setVisiblePinRequired
            pinwin <- User : Enters PIN (invalid)
            pinwin <- User : Confirm
        appdsktp <- pinwin : handlePasscode(pinValue)
        activate appdsktp
            deactivate pinwin
srvclr <- appdsktp : PinData(pinValue) via sys::bus message
activate srvclr
        deactivate appdsktp
srvclr -> srvclr : verification failed,
srvclr -> srvclr : attempts--
deactivate srvclr
note over of srvclr
    Cellular side data:
    State: PIN required
    SIM: SIM1
    phone: +48500500500
    attempts: 3
end note

    == Pin invalid: Retry with 3 attempts left ==


[o->srvclr : need PIN1
activate srvclr
srvclr -> appmgr : ActionMessage{RequestPin1, {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(SimUnlockedAction) -> compare cards, attempts?
note left of pinwin
    Desktop side data:
    State: PIN required
    SIM: SIM1
    attempts: 3
end note
/ note left of appdsktp
    Desktop side state:
    Screen Unlocked
end note
        appdsktp -> pinwin : switchWindow(SIM1, invalidPIN, attempts)
            activate pinwin
        deactivate appdsktp
            pinwin -> pinwin : rebuild
            pinwin -> pinwin : setVisibleInvalidPin
            pinwin <- User : Confirm
            pinwin -> pinwin : setVisiblePinRequired
            pinwin <- User : Enters PIN (invalid)
            pinwin <- User : Confirm
        appdsktp <- pinwin : handlePasscode(pinValue)
        activate appdsktp
            deactivate pinwin

srvclr <- appdsktp : PinData(pinValue) via sys::bus message
activate srvclr
    deactivate appdsktp
srvclr -> srvclr : verification failed
srvclr -> srvclr : attempts--
deactivate srvclr
note over of srvclr
    Cellular side data:
    State: PIN required
    SIM: SIM1
    phone: +48500500500
    attempts: 2
end note

    == Pin invalid: Retry with 2 attempts left ==
    ... ...
    == Pin invalid: Retry with 1 attempts left ==
    ... ...

srvclr <- appdsktp :  PinData(pinValue) via sys::bus message
activate srvclr
srvclr -> srvclr : verification failed,
srvclr -> srvclr : attempts--
deactivate srvclr

    == Pin invalid: 0 attempts left, PUK required ==

[o->srvclr : need PUK1
activate srvclr
srvclr -> appmgr : ActionMessage{RequestPuk1, {SIM1, attempts}} via sys::bus message
    activate appmgr
deactivate srvclr
    ... PUK Flow ...
@enduml