UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

2 lines 2.6 kB
import{copy as e}from"../../libs/i18n/copy.mjs";import t from"../../constants/constants.mjs";import n from"../../libs/repositories/users.mjs";import r from"./checks/check-update-password.mjs";import{invalidateAuthCache as i}from"../auth/helpers/auth-cache.mjs";import a from"./request-email-change.mjs";import{normalizeEmailInput as o}from"../../utils/helpers/normalize-input.mjs";import s from"../security-audit/log-security-audit.mjs";const c=async(c,l)=>{if(l.newPassword&&c.config.auth.password.enabled===!1)return{error:{type:`basic`,status:400,message:e(`server:core.auth.password.authentication.disabled.message`)},data:void 0};let u=new n(c.db.client,c.config.db),d=l.email===void 0?void 0:o(l.email),f=await u.selectSingle({select:[`super_admin`,`password`,`first_name`,`secret`,`email`],where:[{key:`id`,operator:`=`,value:l.auth.id}],validation:{enabled:!0,defaultError:{message:e(`server:core.account.not.found.message`),status:404}}});if(f.error)return f;let p=d!==void 0&&d!==f.data.email,[m,h]=await Promise.all([l.username===void 0?void 0:u.selectSingle({select:[`id`],where:[{key:`username`,operator:`=`,value:l.username},{key:`id`,operator:`!=`,value:l.auth.id}]}),r(c,{encryptedSecret:f.data.secret,password:f.data.password,currentPassword:l.currentPassword,newPassword:l.newPassword,passwordConfirmation:l.passwordConfirmation,encryptionKey:c.config.secrets.encryption})]);if(m?.error)return m;if(h.error)return h;if(l.username!==void 0&&m?.data!==void 0)return{error:{type:`basic`,status:400,errors:{username:{code:`invalid`,message:e(`server:core.users.username.duplicate`)}}},data:void 0};let[g,_]=await Promise.all([u.updateSingle({data:{first_name:l.firstName,last_name:l.lastName,username:l.username,updated_at:new Date().toISOString(),password:h.data.newPassword,secret:h.data.encryptSecret,triggered_password_reset:h.data.triggerPasswordReset},where:[{key:`id`,operator:`=`,value:l.auth.id}],returning:[`id`,`first_name`,`last_name`,`email`],validation:{enabled:!0,defaultError:{message:e(`server:core.routes.user.me.update.error.message`),status:400}}}),h.data.newPassword===void 0?void 0:s(c,{userId:l.auth.id,action:t.securityAudit.actions.passwordChange,performedBy:l.auth.id,previousValue:t.securityAudit.redactedValue,newValue:t.securityAudit.redactedValue})]);if(await i(c),g.error)return g;if(_?.error)return _;if(p){let e=await a(c,{auth:l.auth,oldEmail:f.data.email,newEmail:d,firstName:g.data.first_name,lastName:g.data.last_name});if(e.error)return e}return f.data.super_admin,{error:void 0,data:void 0}};export{c as default}; //# sourceMappingURL=update-me.mjs.map