gluu
公開メンバ関数 | 関数 | 変数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel クラス
org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel の継承関係図
Inheritance graph
org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel 連携図
Collaboration graph

公開メンバ関数

String getEditingNumber ()
 
boolean isUiPanelOpened ()
 
VerifiedMobile getNewPhone ()
 
List< VerifiedMobilegetPhones ()
 
String getCode ()
 
boolean isUiCodesMatch ()
 
void setCode (String code)
 
void setNewPhone (VerifiedMobile newPhone)
 
void setUiPanelOpened (boolean uiPanelOpened)
 
void childInit () throws Exception
 
void sendCode ()
 
void checkCode ()
 
void add ()
 
void cancel ()
 
void cancelUpdate ()
 
void prepareForUpdate (@BindingParam("phone") VerifiedMobile phone)
 
void update ()
 
void delete (@BindingParam("device") VerifiedMobile phone)
 
void init ()
 
void logoutFromAuthzServer ()
 

関数

int getScreenWidth ()
 
BrowserInfo getBrowserInfo ()
 
Pair< String, String > getDeleteMessages (String nick, String extraMessage)
 
String resetPreferenceMessage (String credentialType, int nCredsOfType)
 

変数

UserService userService
 
User user
 

非公開メンバ関数

void resetAddPhoneSettings ()
 

非公開変数類

Logger logger = LogManager.getLogger(getClass())
 
LdapService ldapService
 
MobilePhoneService mpService
 
boolean uiCodesMatch
 
boolean uiPanelOpened
 
List< VerifiedMobilephones
 
VerifiedMobile newPhone
 
String code
 
String realCode
 
String editingNumber
 

詳解

Created by jgomer on 2018-06-18. This is the ViewModel of page phone-detail.zul. It controls the CRUD of verified phones

関数詳解

◆ add()

void org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.add ( )
inline
135  {
136 
137  if (Utils.isNotEmpty(newPhone.getNickName())) {
138  try {
139  newPhone.setAddedOn(new Date().getTime());
141  UIUtils.showMessageUI(true, Labels.getLabel("usr.enroll.success"));
142  } catch (Exception e) {
143  UIUtils.showMessageUI(false, Labels.getLabel("usr.enroll.error"));
144  logger.error(e.getMessage(), e);
145  }
146  cancel();
147  }
148 
149  }
User user
Definition: UserViewModel.java:58
Logger logger
Definition: VerifiedPhoneViewModel.java:34
List< VerifiedMobile > phones
Definition: VerifiedPhoneViewModel.java:45
void setAddedOn(long addedOn)
Definition: VerifiedMobile.java:39
String getId()
Definition: User.java:43
boolean updateMobilePhonesAdd(String userId, List< VerifiedMobile > mobiles, VerifiedMobile newPhone)
Definition: MobilePhoneService.java:121
void cancel()
Definition: VerifiedPhoneViewModel.java:152
String getNickName()
Definition: RegisteredCredential.java:19
VerifiedMobile newPhone
Definition: VerifiedPhoneViewModel.java:46
MobilePhoneService mpService
Definition: VerifiedPhoneViewModel.java:40

◆ cancel()

void org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.cancel ( )
inline
152  {
154  uiPanelOpened = false;
155  }
void resetAddPhoneSettings()
Definition: VerifiedPhoneViewModel.java:157
boolean uiPanelOpened
Definition: VerifiedPhoneViewModel.java:43

◆ cancelUpdate()

void org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.cancelUpdate ( )
inline
166  {
167  newPhone.setNickName(null);
168  editingNumber = null;
169  }
String editingNumber
Definition: VerifiedPhoneViewModel.java:49
void setNickName(String nickname)
Definition: RegisteredCredential.java:23
VerifiedMobile newPhone
Definition: VerifiedPhoneViewModel.java:46

◆ checkCode()

void org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.checkCode ( )
inline
129  {
130  uiCodesMatch=Utils.isNotEmpty(code) && Utils.isNotEmpty(realCode) && realCode.equals(code.trim());
131  }
String realCode
Definition: VerifiedPhoneViewModel.java:48
boolean uiCodesMatch
Definition: VerifiedPhoneViewModel.java:42
String code
Definition: VerifiedPhoneViewModel.java:47

◆ childInit()

void org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.childInit ( ) throws Exception
inline
88  {
89  newPhone = new VerifiedMobile(null);
91  uiPanelOpened=true;
92  }
User user
Definition: UserViewModel.java:58
List< VerifiedMobile > phones
Definition: VerifiedPhoneViewModel.java:45
boolean uiPanelOpened
Definition: VerifiedPhoneViewModel.java:43
String getId()
Definition: User.java:43
List< VerifiedMobile > getVerifiedPhones(String userId)
Definition: MobilePhoneService.java:169
VerifiedMobile newPhone
Definition: VerifiedPhoneViewModel.java:46
MobilePhoneService mpService
Definition: VerifiedPhoneViewModel.java:40

◆ delete()

void org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.delete ( @BindingParam("device") VerifiedMobile  phone)
inline
205  {
206 
207  String resetMessages = resetPreferenceMessage(OTPSmsExtension.ACR, phones.size());
208  boolean reset = resetMessages != null;
209  Pair<String, String> delMessages = getDeleteMessages(phone.getNickName(), resetMessages);
210 
211  Messagebox.show(delMessages.getY(), delMessages.getX(), Messagebox.YES | Messagebox.NO, reset ? Messagebox.EXCLAMATION : Messagebox.QUESTION,
212  event -> {
213  if (Messagebox.ON_YES.equals(event.getName())) {
214  try {
215  if (phones.remove(phone)) {
216  if (reset) {
218  }
219 
221  //trigger refresh (this method is asynchronous...)
222  BindUtils.postNotifyChange(null, null, VerifiedPhoneViewModel.this, "devices");
223 
224  UIUtils.showMessageUI(true);
225  }
226  } catch (Exception e) {
227  UIUtils.showMessageUI(false);
228  logger.error(e.getMessage(), e);
229  }
230  }
231  });
232  }
User user
Definition: UserViewModel.java:58
Logger logger
Definition: VerifiedPhoneViewModel.java:34
boolean setPreferredMethod(User user, String method)
Definition: UserService.java:136
List< VerifiedMobile > phones
Definition: VerifiedPhoneViewModel.java:45
UserService userService
Definition: UserViewModel.java:48
String getId()
Definition: User.java:43
boolean updateMobilePhonesAdd(String userId, List< VerifiedMobile > mobiles, VerifiedMobile newPhone)
Definition: MobilePhoneService.java:121
Pair< String, String > getDeleteMessages(String nick, String extraMessage)
Definition: UserViewModel.java:90
String resetPreferenceMessage(String credentialType, int nCredsOfType)
Definition: UserViewModel.java:105
MobilePhoneService mpService
Definition: VerifiedPhoneViewModel.java:40

◆ getBrowserInfo()

BrowserInfo org.gluu.credmanager.ui.vm.user.UserViewModel.getBrowserInfo ( )
inlinepackageinherited
86  {
87  return sessionContext.getBrowser();
88  }
BrowserInfo getBrowser()
Definition: SessionContext.java:82
SessionContext sessionContext
Definition: UserViewModel.java:51

◆ getCode()

String org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.getCode ( )
inline
67  {
68  return code;
69  }
String code
Definition: VerifiedPhoneViewModel.java:47

◆ getDeleteMessages()

Pair<String, String> org.gluu.credmanager.ui.vm.user.UserViewModel.getDeleteMessages ( String  nick,
String  extraMessage 
)
inlinepackageinherited
90  {
91 
92  StringBuilder text=new StringBuilder();
93  if (extraMessage != null) {
94  text.append(extraMessage).append("\n\n");
95  }
96  text.append(Labels.getLabel("usr.del_confirm", new String[]{ nick==null ? Labels.getLabel("general.no_named") : nick }));
97  if (extraMessage != null) {
98  text.append("\n");
99  }
100 
101  return new Pair<>(Labels.getLabel("usr.del_title"), text.toString());
102 
103  }

◆ getEditingNumber()

String org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.getEditingNumber ( )
inline
51  {
52  return editingNumber;
53  }
String editingNumber
Definition: VerifiedPhoneViewModel.java:49

◆ getNewPhone()

VerifiedMobile org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.getNewPhone ( )
inline
59  {
60  return newPhone;
61  }
VerifiedMobile newPhone
Definition: VerifiedPhoneViewModel.java:46

◆ getPhones()

List<VerifiedMobile> org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.getPhones ( )
inline
63  {
64  return phones;
65  }
List< VerifiedMobile > phones
Definition: VerifiedPhoneViewModel.java:45

◆ getScreenWidth()

int org.gluu.credmanager.ui.vm.user.UserViewModel.getScreenWidth ( )
inlinepackageinherited
82  {
84  }
int getScreenWidth()
Definition: SessionContext.java:98
SessionContext sessionContext
Definition: UserViewModel.java:51

◆ init()

void org.gluu.credmanager.ui.vm.user.UserViewModel.init ( )
inlineinherited
61  {
64  }
User getUser()
Definition: SessionContext.java:74
User user
Definition: UserViewModel.java:58
Integer getMinCredsFor2FA()
Definition: MainSettings.java:138
int minCredsFor2FA
Definition: UserViewModel.java:56
ConfigurationHandler confHandler
Definition: UserViewModel.java:42
MainSettings getSettings()
Definition: ConfigurationHandler.java:126
SessionContext sessionContext
Definition: UserViewModel.java:51

◆ isUiCodesMatch()

boolean org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.isUiCodesMatch ( )
inline
71  {
72  return uiCodesMatch;
73  }
boolean uiCodesMatch
Definition: VerifiedPhoneViewModel.java:42

◆ isUiPanelOpened()

boolean org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.isUiPanelOpened ( )
inline
55  {
56  return uiPanelOpened;
57  }
boolean uiPanelOpened
Definition: VerifiedPhoneViewModel.java:43

◆ logoutFromAuthzServer()

void org.gluu.credmanager.ui.vm.user.UserViewModel.logoutFromAuthzServer ( )
inlineinherited
67  {
68 
69  try {
70  logger.trace("Log off attempt");
71  purgeSession();
72  //After End-User has logged out, the Client might request to log him out of the OP too
73  //TODO: what happens after session expiration?
74  String idToken = authFlowContext.getIdToken();
75  Executions.sendRedirect(oxdService.getLogoutUrl(idToken));
76  } catch (Exception e) {
77  logger.error(e.getMessage(), e);
78  }
79 
80  }
AuthFlowContext authFlowContext
Definition: UserViewModel.java:54
String getLogoutUrl(String idTokenHint)
Definition: OxdService.java:331
Logger logger
Definition: UserViewModel.java:39
void purgeSession()
Definition: UserViewModel.java:137
OxdService oxdService
Definition: UserViewModel.java:45
String getIdToken()
Definition: AuthFlowContext.java:31

◆ prepareForUpdate()

void org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.prepareForUpdate ( @BindingParam("phone") VerifiedMobile  phone)
inline
173  {
174  //This will make the modal window to become visible
175  editingNumber = phone.getNumber();
176  newPhone = new VerifiedMobile("");
177  newPhone.setNickName(phone.getNickName());
178  }
String editingNumber
Definition: VerifiedPhoneViewModel.java:49
void setNickName(String nickname)
Definition: RegisteredCredential.java:23
VerifiedMobile newPhone
Definition: VerifiedPhoneViewModel.java:46

◆ resetAddPhoneSettings()

void org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.resetAddPhoneSettings ( )
inlineprivate
157  {
158  uiCodesMatch = false;
159  realCode = null;
160  code = null;
161  newPhone = new VerifiedMobile();
162  }
String realCode
Definition: VerifiedPhoneViewModel.java:48
boolean uiCodesMatch
Definition: VerifiedPhoneViewModel.java:42
String code
Definition: VerifiedPhoneViewModel.java:47
VerifiedMobile newPhone
Definition: VerifiedPhoneViewModel.java:46

◆ resetPreferenceMessage()

String org.gluu.credmanager.ui.vm.user.UserViewModel.resetPreferenceMessage ( String  credentialType,
int  nCredsOfType 
)
inlinepackageinherited
105  {
106 
107  //Assume removal has no problem
108  String message = null;
109  Set<String> enabledMethods = confHandler.getEnabledAcrs();
110  List<Pair<AuthnMethod, Integer>> userMethodsCount = userService.getUserMethodsCount(user.getId(), enabledMethods);
111  int totalCreds = userMethodsCount.stream().mapToInt(Pair::getY).sum();
112 
113  if (totalCreds == minCredsFor2FA) {
114  message = CredRemovalConflict.CREDS2FA_NUMBER_UNDERFLOW.getMessage(minCredsFor2FA);
115  } else if (nCredsOfType == 1 && credentialType.equals(user.getPreferredMethod())){
116  message = CredRemovalConflict.PREFERRED_CREDENTIAL_REMOVED.getMessage();
117  } else {
118  List<AuthnMethod> methods = userService.get2FARequisiteMethods();
119  boolean typeOfCredIs2FARequisite = methods.stream().map(AuthnMethod::getAcr).anyMatch(acr -> acr.equals(credentialType));
120 
121  if (typeOfCredIs2FARequisite) {
122  int nCredsBelongingTo2FARequisite = userMethodsCount.stream()
123  .filter(pair -> pair.getX().mayBe2faActivationRequisite()).mapToInt(Pair::getY).sum();
124  if (nCredsBelongingTo2FARequisite == 1) {
125  //Compute the names of those authentication methods which are requisite for 2FA activation
126  String commaSepNames = methods.stream().map(aMethod -> Labels.getLabel(aMethod.getUINameKey()))
127  .collect(Collectors.toList()).toString();
128  commaSepNames = commaSepNames.substring(1, commaSepNames.length() - 1);
129  message = CredRemovalConflict.REQUISITE_NOT_FULFILED.getMessage(commaSepNames);
130  }
131  }
132  }
133  return message;
134 
135  }
List< AuthnMethod > get2FARequisiteMethods()
Definition: UserService.java:126
String getPreferredMethod()
Definition: User.java:39
User user
Definition: UserViewModel.java:58
List< Pair< AuthnMethod, Integer > > getUserMethodsCount(String userId, Set< String > retainMethods)
Definition: UserService.java:130
int minCredsFor2FA
Definition: UserViewModel.java:56
UserService userService
Definition: UserViewModel.java:48
Set< String > getEnabledAcrs()
Definition: ConfigurationHandler.java:249
String getId()
Definition: User.java:43
ConfigurationHandler confHandler
Definition: UserViewModel.java:42

◆ sendCode()

void org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.sendCode ( )
inline
95  {
96 
97  //Note similar logic exists at REST service MobilePhoneEnrollingWS
98  String numb = newPhone.getNumber();
99  if (Utils.isNotEmpty(numb)) { //Did user fill out the phone text box?
100  //Check for uniquess throughout all phones in LDAP. Only new numbers are accepted
101  try {
102  if (mpService.isNumberRegistered(numb) || mpService.isNumberRegistered(numb.replaceAll("[-\\+\\s]", ""))) {
103  Messagebox.show(Labels.getLabel("usr.mobile_already_exists"),
104  Labels.getLabel("general.warning"), Messagebox.OK, Messagebox.INFORMATION);
105  } else {
106  //Generate random in [100000, 999999]
107  realCode = Integer.toString(new Double(100000 + Math.random() * 899999).intValue());
108  //Compose SMS body
109  String body = ldapService.getOrganization().getDisplayName();
110  body = Labels.getLabel("usr.mobile_sms_body", new String[] { body, realCode });
111  logger.trace("sendCode. code={}", realCode);
112 
113  //Send message (service bean already knows all settings to perform this step)
114  if (mpService.sendSMS(numb, body).equals(SendCode.SUCCESS)) {
115  Messagebox.show(Labels.getLabel("usr.mobile_sms_sent", new String[]{ numb }), null, Messagebox.OK, Messagebox.INFORMATION);
116  } else {
117  UIUtils.showMessageUI(false);
118  }
119  }
120  } catch (Exception e) {
121  UIUtils.showMessageUI(false);
122  logger.error(e.getMessage(), e);
123  }
124  }
125  }
String getDisplayName()
Definition: gluuOrganization.java:56
String realCode
Definition: VerifiedPhoneViewModel.java:48
SendCode sendSMS(String number, String body)
Definition: MobilePhoneService.java:82
gluuOrganization getOrganization()
Definition: LdapService.java:195
Logger logger
Definition: VerifiedPhoneViewModel.java:34
LdapService ldapService
Definition: VerifiedPhoneViewModel.java:37
boolean isNumberRegistered(String number)
Definition: MobilePhoneService.java:73
VerifiedMobile newPhone
Definition: VerifiedPhoneViewModel.java:46
MobilePhoneService mpService
Definition: VerifiedPhoneViewModel.java:40
String getNumber()
Definition: VerifiedMobile.java:35

◆ setCode()

void org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.setCode ( String  code)
inline
75  {
76  this.code = code;
77  }
String code
Definition: VerifiedPhoneViewModel.java:47

◆ setNewPhone()

void org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.setNewPhone ( VerifiedMobile  newPhone)
inline
79  {
80  this.newPhone = newPhone;
81  }
VerifiedMobile newPhone
Definition: VerifiedPhoneViewModel.java:46

◆ setUiPanelOpened()

void org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.setUiPanelOpened ( boolean  uiPanelOpened)
inline
83  {
85  }
boolean uiPanelOpened
Definition: VerifiedPhoneViewModel.java:43

◆ update()

void org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.update ( )
inline
182  {
183 
184  String nick = newPhone.getNickName();
185  if (Utils.isNotEmpty(nick)) {
186  int i = Utils.firstTrue(phones, p -> p.getNumber().equals(editingNumber));
187  VerifiedMobile ph = phones.get(i);
188  ph.setNickName(nick);
189  cancelUpdate();
190 
191  try {
193  UIUtils.showMessageUI(true);
194  } catch (Exception e) {
195  UIUtils.showMessageUI(false);
196  logger.error(e.getMessage(), e);
197  }
198  }
199 
200  }
User user
Definition: UserViewModel.java:58
String editingNumber
Definition: VerifiedPhoneViewModel.java:49
Logger logger
Definition: VerifiedPhoneViewModel.java:34
List< VerifiedMobile > phones
Definition: VerifiedPhoneViewModel.java:45
String getId()
Definition: User.java:43
void cancelUpdate()
Definition: VerifiedPhoneViewModel.java:166
boolean updateMobilePhonesAdd(String userId, List< VerifiedMobile > mobiles, VerifiedMobile newPhone)
Definition: MobilePhoneService.java:121
String getNickName()
Definition: RegisteredCredential.java:19
VerifiedMobile newPhone
Definition: VerifiedPhoneViewModel.java:46
MobilePhoneService mpService
Definition: VerifiedPhoneViewModel.java:40

メンバ詳解

◆ code

String org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.code
private

◆ editingNumber

String org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.editingNumber
private

◆ ldapService

LdapService org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.ldapService
private

◆ logger

Logger org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.logger = LogManager.getLogger(getClass())
private

◆ mpService

MobilePhoneService org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.mpService
private

◆ newPhone

VerifiedMobile org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.newPhone
private

◆ phones

List<VerifiedMobile> org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.phones
private

◆ realCode

String org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.realCode
private

◆ uiCodesMatch

boolean org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.uiCodesMatch
private

◆ uiPanelOpened

boolean org.gluu.credmanager.ui.vm.user.VerifiedPhoneViewModel.uiPanelOpened
private

◆ user

User org.gluu.credmanager.ui.vm.user.UserViewModel.user
packageinherited

◆ userService

UserService org.gluu.credmanager.ui.vm.user.UserViewModel.userService
packageinherited

このクラス詳解は次のファイルから抽出されました: