You need to sign in to do that
Don't have an account?
Debug LightningSelfRegisterController
Hello. I am more of an admin than a developer. Anyway I'm working on a community, and trying to figure out how to customize the apex controller that is automatically created for the Self Registration lightning component that is also created when communities are activated. This class is called LightningSelfRegisterController and it's code is included.
All, I want to do is put some system.debugs into the code so that I can get an understanding of how a portion of it is working. So, putting the debug statements in is no problem. The problem is that I now expect a log to be generated when I use the Self-Registration page, but no logs are generated. I suppose this is because the code is not executed in the context of any user that I have a trace flag on. So, I tried putting a trace flag on the class itself, but that hasn't worked either.
Can anybody point me in the righ direction?
Thanks!!
global class LightningSelfRegisterController { public LightningSelfRegisterController() { } @TestVisible private static boolean isValidPassword(String password, String confirmPassword) { return password == confirmPassword; } @TestVisible private static boolean siteAsContainerEnabled(Id networkId) { Auth.AuthConfiguration authConfig = new Auth.AuthConfiguration(networkId,''); return authConfig.isCommunityUsingSiteAsContainer(); } @TestVisible private static void validatePassword(User u, String password, String confirmPassword) { if(!Test.isRunningTest()) { Site.validatePassword(u, password, confirmPassword); } return; } @AuraEnabled public static String selfRegister(String firstname ,String lastname, String email, String password, String confirmPassword, String accountId, String regConfirmUrl, String extraFields, String startUrl, Boolean includePassword) { Savepoint sp = null; try { sp = Database.setSavepoint(); if (lastname == null || String.isEmpty(lastname)) { return Label.Site.lastname_is_required; } if (email == null || String.isEmpty(email)) { return Label.Site.email_is_required; } User u = new User(); u.Username = email; u.put('Email',email); u.FirstName = firstname; u.LastName = lastname; String networkId = Network.getNetworkId(); // If using site to host the community the user should not hit s1 after logging in from mobile. if(networkId != null && siteAsContainerEnabled(networkId)) { u.put('UserPreferencesHideS1BrowserUI',true); } String nickname = ((firstname != null && firstname.length() > 0) ? firstname.substring(0,1) : '' ) + lastname.substring(0,1); nickname += String.valueOf(Crypto.getRandomInteger()).substring(1,7); u.put('CommunityNickname', nickname); if (extraFields != null) { List<Object> extraFieldsList = (List<Object>) JSON.deserializeUntyped(extraFields); for (Object thisFieldObject : extraFieldsList) { system.debug('thisFieldObject '+thisFieldObject); Map<String,Object> thisField = (Map<String,Object>) thisFieldObject; Schema.SObjectField sof = Schema.SObjectType.User.fields.getMap().get((String) thisField.get('fieldPath')); u.put(sof, thisField.get('value')); } } if (includePassword) { if (!isValidPassword(password, confirmPassword)) { return Label.site.passwords_dont_match; } validatePassword(u, password, confirmPassword); } else { password = null; } // lastName is a required field on user, but if it isn't specified, we'll default it to the username String userId = Site.createPortalUser(u, accountId, password); // create a fake userId for test. if (Test.isRunningTest()) { userId = 'fakeUserId'; } if (userId != null) { if (password != null && password.length() > 1) { ApexPages.PageReference lgn = Site.login(email, password, startUrl); if(!Test.isRunningTest()) { aura.redirect(lgn); } } else { ApexPages.PageReference confirmRef = new PageReference(regConfirmUrl); if(!Test.isRunningTest()) { aura.redirect(confirmRef); } } } return null; } catch (Exception ex) { Database.rollback(sp); return ex.getMessage(); } } @AuraEnabled public static List<Map<String,Object>> getExtraFields(String extraFieldsFieldSet) { List<Map<String,Object>> extraFields = new List<Map<String,Object>>(); Schema.FieldSet fieldSet = Schema.SObjectType.User.fieldSets.getMap().get(extraFieldsFieldSet); if(!Test.isRunningTest()) { if (fieldSet != null) { for (Schema.FieldSetMember f : fieldSet.getFields()) { Map<String, Object> fieldDetail = new Map<String, Object>(); fieldDetail.put('dbRequired', f.getDBRequired()); fieldDetail.put('fieldPath', f.getFieldPath()); fieldDetail.put('label', f.getLabel()); fieldDetail.put('required', f.getRequired()); fieldDetail.put('type', f.getType()); fieldDetail.put('value', ''); // client will populate extraFields.add(fieldDetail); }}} return extraFields; } }