const queryRunner = this.dataSource.createQueryRunner();
queryRunner.connect();
queryRunner.startTransaction();
try {
const u = await this.repository
.createQueryBuilder('u', queryRunner)
.update({ password: passwordHash })
.where('email = :email', { email: user.email })
.returning('*')
.updateEntity(true)
.execute();
const p = await this.passwordUpdateLogsRepository
.createQueryBuilder('p', queryRunner)
.insert()
.values({ user: { id: user.id } })
.execute();
queryRunner.commitTransaction();
return new HttpException(lang.ru.passwordChanged, HttpStatus.OK);
} catch (error) {
console.log(error);
queryRunner.rollbackTransaction();
throw new BadRequestException(lang.ru.error);
} finally {
queryRunner.release();
}
npx prisma db push
, а после npm run seed
, как в инструкции призмы и сработало.// import { AbilityBuilder } from '@casl/ability';
const {data} = await this.$axios.get('abilities')
const { can, rules } = new AbilityBuilder();
can(data.data, 'all');
this.$ability.update(rules);
export default function({$auth, route, redirect}) {
// Если не подтверждена почта
if ($auth.loggedIn && !$auth.user.email_verified_at) {
// Не вызывать переадресацию на /auth/verify-email
if (route.path !== '/auth/verify-email') {
return redirect('/auth/verify-email')
}
}
}
<div id="<?php esc_attr( get_theme_mod( 'название-настройки', 'значение-по-умолчание' ) ); ?>"></div>
'active_callback' => function(){
return get_theme_mod( 'position_breadcrumb', 'none' );
},
'active_callback' => function(){
return get_theme_mod( 'position_breadcrumb' ) == 'none';
},
'active_callback' => function(){
return get_theme_mod( 'position_breadcrumb' ) !== 'none';
},
'active_callback' => function(){
return get_theme_mod( 'topbar', true );
},