Scripts de extensão do Redefinição de senha
Os scripts de extensão permitem que você estenda a funcionalidade do Redefinição de senha para armazenamento de credenciais, verificação ou tipos de identificação.
Inclusões de script de extensão do Redefinição de senha
Cada inclusão de script está associada a uma categoria específica, que está disponível no campo apropriado de um formulário do Redefinição de senha.
Categoria de inclusão de script "Verificação de inscrição"
| Categoria de inclusão de script | Descrição | Assinatura de método | Campos de entrada | Campos de saída |
|---|---|---|---|---|
| Verificação de inscrição | Verifica se um usuário está inscrito para uma determinada verificação. | process(params) | Parâmetros:
|
Retorna: (booliano) verdadeiro, se o usuário estiver inscrito na verificação especificada; caso contrário, falso. |
Esse exemplo de Verificação de inscrição sinaliza que o usuário está inscrito se os dois parâmetros esperados forem fornecidos. O código estaria contido no campo Script de um script de extensão chamado SampleEnrollmentCheck:
var SampleEnrollmentCheck = Class.create ();
SampleEnrollmentCheck. prototype = {
category:'password_reset.extension.enrollment_check', // DO NOT REMOVE THIS LINE!
/**********
* Returns boolean telling whether the user is enrolled.
* This sample returns true if both parameters are supplied, false otherwise
*
* @param params.userId The sys-id of the user being checked (table: sys_user)
* @param params.verificationId The sys-id of the verification being checked (table: pwd_verification)
* @return Boolean indicating whether the user is enrolled into the specified verification
**********/
process:function (params) {return (params.userId && params.verificationId)? true:false; },
type:'SampleEnrollmentCheck'};
Categoria de inclusão de script do "Processador do formulário de inscrição"
| Categoria de inclusão de script | Descrição | Assinatura de método | Campos de entrada | Campos de saída |
|---|---|---|---|---|
| Processador do formulário de inscrição | Verifica se todas as informações necessárias foram coletadas do usuário. Armazena as informações para que possam ser usadas para verificação quando o usuário redefinir a senha. | process(params) | Parâmetros:
As seguintes informações devem ser adicionadas ao estado do processo de inscrição:
|
Retorna: (booliano) verdadeiro, se o usuário estiver inscrito na verificação especificada; caso contrário, falso. |
Esse exemplo processa um envio de formulário de inscrição com sucesso se a resposta enviada pelo usuário foi bem-sucedida. O código estaria contido no campo Script de um script de extensão chamado SampleEnrollmentProcessor:
var SampleEnrollmentProcessor = Class.create ();
SampleEnrollmentProcessor.prototype = {
category: 'password_reset.extension.enrollment_form_processor', // DO NOT REMOVE THIS LINE!
/**********
* Process the enrollment form request, and return whether the user was successfully enrolled.
*
* @param params.userId The sys_id of the user trying to enroll (table: sys_user)
* @param params.verificationId The sys_id of the verification to be enrolled into (table: pwd_verification)
* @param params.enrollmentId The sys_id of this enrollment process
* @param request The form request object. Felds in the form can be accessed with
* request.getParameter('<element-id>')
* @return boolean telling whether the user was successfully enrolled
* The following information should be added to the state of the enrollment process
* gs.getSession().putProperty("result.status",status) - whether the user was successfully enrolled
* gs.getSession().putProperty("result.message",message) - an associated message to be returned
* to the UI. Eg. a detailed error message
* gs.getSession().putProperty("result.value",value) - custom value associated with the enrollment
**********/
processForm:function (params, request) {var verificationId = params.verificationId; var sampleInput = request.getParameter ('sample_input');
if (gs.nil (verificationId) || (sampleInput!= 'success')) { return false; }
var now_GR = new GlideRecord ('sys_user');
now_GR.get (params. userId);
now_GR.print ('User:' + now_GR.getValue ('user_name') + ' successfully enrolled'); return true; },
type: 'SampleEnrollmentProcessor' };
Categoria de inclusão de script do "processador do formulário de identificação"
| Categoria de inclusão de script | Descrição | Assinatura de método | Campos de entrada | Campos de saída |
|---|---|---|---|---|
| Processador do formulário de identificação | Processa uma solicitação do formulário de identificação. | processForm(params, request) | Parâmetros:
|
Retorna: o sys_id do usuário que corresponde à entrada solicitada. Retorna nulo, se nenhum usuário for encontrado. |
Este exemplo tenta identificar o usuário na tabela sys_user de acordo com um nome de usuário enviado do formulário de identificação. O código estaria contido no campo Script de um script de extensão chamado PwdIdentifyViaUsername:
var PwdIdentifyViaUsername = Class.create ();
PwdIdentifyViaUsername. prototype = {
category: 'password_reset.extension.identification_form_processor', // DO NOT REMOVE THIS LINE!
initialize: function () { },
/**********
* Process the identification form request, and returns the user's sys_id. If user was not identified return null.
*
* @param params.processId The sys_id of the calling Redefinição de senha process (table: pwd_process)
* @param request The form request object. fields in the form can be accessed with
* request.getParameter('<element-id>')
* Supported request parameters: sysparm_user_id - the user identifier value entered in the form
* @return The sys_id of the user that corresponds to the requested input;
* if no user was found, null should be returned
**********/
processForm: function (params, request) {var processId = params. processId; var sysparm_user_id = request.getParameter ('sysparm_user_id');
now_GR = new GlideRecord ('sys_user') ;
now_GR.addQuery ('user_name', sysparm_user_id) ;
now_GR.query (); if (!now_GR.next ()) {return null; } return now_GR.sys_id;},
type:'PwdIdentifyViaUsername' }
Categoria de inclusão de script do "gerador de senha"
| Categoria de inclusão de script | Descrição | Assinatura de método | Campos de entrada | Campos de saída |
|---|---|---|---|---|
| Gerador de senha | Retorna uma senha gerada automaticamente. | process(params) | Parâmetros: params.processId: o sys_id do processo de chamada do Redefinição de senha (tabela: pwd_process). | Retorna: (cadeia de caracteres) uma senha gerada automaticamente. |
Este exemplo gera aleatoriamente uma senha de uma palavra base e números. A palavra base é selecionada dependendo do armazenamento de credenciais. O código estaria contido no campo Script de um script de extensão chamado SamplePasswordGenerator:
var SamplePasswordGenerator = Class.create ();
SamplePasswordGenerator. prototype = {
category: 'password_reset.extension.password_generator', // DO NOT REMOVE THIS LINE!
/**********
* Returns an auto-generated string password.
* This sample randomly generates 4 digits to add to the password.
*
* @param params.credentialStoreId The sys_id of the target Redefinição de senha credential store to generate
* a password for (table: pwd_cred_store)
* @return An auto-generated string password
**********/
process:function (params) { var basePassword ;
var now_GR = new GlideRecord ('pwd_cred_store');
now_GR.addQuery ('name', 'Local ServiceNow Instance');
now_GR.query (); if (now_GR.next ()) { if (params.credentialStoreId = now_GR.getValue ('sys_id'))
basePassword = "Password"; else
basePassword = "Dorwssap"; } return this. generateSimple (basePassword); },
generateSimple:function (base) {var pwd = base; var numbers = '0123456789'; var length = 4;
for (var i = 0 , n = numbers. length ; i < length ; i ++) {
pwd += numbers.charAt (Math.floor (Math.random () * n) + 1); } return pwd;},
type:'SamplePasswordGenerator'} ;
Categoria de inclusão de script de "Pós-redefinição"
| Categoria de inclusão de script | Descrição | Assinatura de método | Campos de entrada | Campos de saída |
|---|---|---|---|---|
| Pós-redefinição | Realiza operações adicionais após a conclusão do processo do Redefinição de senha. | process(params) | Parâmetros:
|
Retorna: vazio |
Este exemplo adiciona solicitações de redefinição com falha ao log do sistema. O código estaria contido no campo Script de um script de extensão chamado PwdPostProcessor':
var PwdPostProcessor = Class.create ();
PwdPostProcessor. prototype = {
category: 'password_reset.extension.post_reset_script', // DO NOT REMOVE THIS LINE!
initialize:function () { },
/**********
* Execute custom actions after the Redefinição de senha process has completed.
*
* @param params.resetRequestId The sys_id of the current Redefinição de senha request (table: pwd_reset_request)
* @param params.wfSuccess A flag indicating if the workflow completed sucessfully.
* True if (and only if) successful.
* @return no return value
**********/
process: function (params) {if (!params. wfSuccess) {
now_GS.log ('[PwdPostProcessor.process] failure post processing for request [' + params. resetRequestId + ']'); }
// We could place actions here that we always want executed return; },
type:'PwdPostProcessor' }
Categoria de inclusão de script da "pesquisa de conta de usuário"
| Categoria de inclusão de script | Descrição | Assinatura de método | Campos de entrada | Campos de saída |
|---|---|---|---|---|
| Pesquisa de conta de usuário | Obtém o ID da conta de armazenamento de credenciais de um determinado usuário. | process(params) | Parâmetros: params.userId: o sys_id do usuário que está sendo verificado (tabela: sys_user). | Retorna: (cadeia de caracteres) o ID da conta de armazenamento de credenciais de um determinado usuário. |
Este exemplo obtém a conta de armazenamento de credenciais de um usuário. O código estaria contido no campo Script de um script de extensão chamado SampleUserAccountLookupExtension:
var SampleUserAccountLookupExtension = Class.create ();
SampleUserAccountLookupExtension. prototype = {
category:'password_reset.extension.user_account_lookup', // DO NOT REMOVE THIS LINE!
/**********
* Returns the credential store account id for a given user.
* This sample echoes the user_id supplied as the credential store account id for that user.
*
* @param params.userId The sys_id of the user being checked (table: sys_user)
* @return The credential store account id (string) for a given user
**********/
process:function (params) {return params.userId;},
type:'SampleUserAccountLookupExtension' }
Categoria de inclusão de script do "processador do formulário de verificação"
| Categoria de inclusão de script | Descrição | Assinatura de método | Campos de entrada | Campos de saída |
|---|---|---|---|---|
| Processador do formulário de verificação | Processa uma solicitação do formulário de verificação e indica se o usuário foi verificado ou não. | processForm(params, request) | Parâmetros:
|
Retorna: (booliano) verdadeiro, se o usuário foi verificado; caso contrário, falso. |
Este exemplo mostra um processador de verificação que retorna verdadeiro somente se o usuário enviou ok no campo de entrada; caso contrário, ele retorna como falso. O código estaria contido no campo Script de um script de extensão chamado SampleVerificationFormProcessor:
var SampleVerificationFormProcessor = Class.create ();
SampleVerificationFormProcessor.prototype = {
category:'password_reset.extension.verification_form_processor', // DO NOT REMOVE THIS LINE!
/**********
* Process the verification form request, and return whether the user was successfully verified.
* This is a sample verification processor returns true only if the user sent "ok" in the input field;
* otherwise, it returns false.
*
* @param params.resetRequestId The sys_id of the current Redefinição de senha request (table: pwd_reset_request)
* @param params.userId The sys_id of the user trying to be verified (table: sys_user)
* @param params.verificationId The sys_id of the verification to be processed (table: pwd_verification)
* @param request The form request object. Fields in the form can be accessed with
* request.getParameter('<element-id>')
* @return Boolean indicating whether the user is successfully verified
**********/
processForm:function (params, request) {if (request.getParameter ("sysparm_simple_input") == "ok") return true; else return false; },
type:'SampleVerificationFormProcessor'};