Joomla 4. Компонент K2 и форк K2ForJ4 (18 янв 2024)

Если вас, как и меня, достало выслушивать (вычитывать) бесконечные обещания разработчика K2 опубликовать версию компонента K2 под Joomla 4 (без чего невозможно реализовать апгрейд from Joomla 3 to Joomla 4) - воспользуйтесь форком K2ForJ4. Который в данный момент установлен и без каких-либо проблем работает на этом веб-сайте.

Rails: устанавливаем и конфигурируем devise

Больше
6 года 1 мес. назад - 6 года 1 мес. назад #1 от serge
Ruby on Rails: устанавливаем и конфигурируем devise

1. Добавим гем в Gemfile:
Code:
gem 'devise'

и затем:
Code:
bundle install

2. Запускаем генератор:
Code:
rails generate devise:install

3. Конфигурим настройки мейлера для каждой из сред выполнения. Для среды разработки необходимо добавить следующую строку в файл config/environments/development.rb:
Code:
config.action_mailer.default_url_options = { :host => 'localhost:3000' }

Для продакшн, соответственно, меняем значение ключа :host на актуальное.

4. Проверяем, что routes.rb содержит строчку:
Code:
root 'home#index'

или любую иную, в зависимости от того, куда вы хотите перенаправлять пользователя после входа в систему, например.

5. Добавим в application.html.erb:
Code:
<p class="notice"><%= notice %></p> <p class="alert"><%= alert %></p>

6. Выполняем, если нужны вьюхи devise, которые затем можно изменить под свои стили:
Code:
rails generate devise:views

7. Создаем модель пользователя (или админа):
Code:
rails generate devise User

Описание модулей, отключить и подключить которые можно в app/models/user.rb (по дефолту подключаются 6 из них) :

  1. Database Authenticatable: предоставляет возможность входа в систему на основе зашифрованного и хранимого в базе данных пароля. Вход может быть выполнен посредством отправки POST-запроса или с помощью HTTP Basic Authentication.
  2. Omniauthable: добавляет поддержку Omniauth ( github.com/intridea/omniauth ).
  3. Confirmable: позволяет отправлять письмо с инструкциями для подтверждения аккаунта, созданного во время регистрации.
  4. Recoverable: позволяет восстанавливать забытый пароль. Отправляет инструкции по восстановлению на почту.
  5. Registerable: управляет регистрацией пользователей, позволяет редактировать и удалять аккаунты.
  6. Rememberable: позволяет запоминать пользователей на основе cookies. Управляет созданием и удалением токенов.
  7. Trackable: ведет статистику количества входов, учитывает время и IT-адреса.
  8. Timeoutable: отвечает за продолжительность сессии активности пользователя в системе.
  9. Validatable: предоставляет инструменты валидации e-mail и пароля. Модуль может быть легко настроен, вы можете определить собственные валидаторы.
  10. Lockable: блокирует аккаунт после указанного в настройках количество неудачных попыток авторизации. Аккаунт может быть разблокирован посредством email или через определенный период времени.


8. Добавляем во вьюху минимум линков:
Code:
<% if user_signed_in? %> <span>Здравствуйте, <%= current_user.email %></span> <%= link_to 'Выйти', destroy_user_session_path, :method => :delete %> <% else %> <%= link_to 'Войти', new_user_session_path %> или <%= link_to 'Зарегистрироваться', new_user_registration_path %> <% end %>

9. Защищаем наш контроллер следующим образом, добавив второй сверху (после class) строчкой:
Code:
before_action :authenticate_user!, except => [:show, :index]

или так, если хотим запретить неавторизованному пользователю все:
Code:
before_action :authenticate_user!

10.
Code:
rake db:migrate rails s

Вроде как бы и все. В основном.

А я смогу! - А поглядим! - А я упрямый!
Последнее редактирование: 6 года 1 мес. назад пользователем serge.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Dev banner 1
Больше
3 года 6 мес. назад - 3 года 6 мес. назад #2 от Aleksej
Продолжаем полезную и нужную тему.
Т.е. из цикла "записки на мнжетах"...

Rails Devise confirmable error

Случается так, что в процессе или спустя некоторое время после запуска проекта потребовалось добавить в модель 'confirmation' (confirmable, см. выше, в посте Serge). Добавили, провели миграцию... все по ходу OK, ан нет:
Code:
NameError in Devise::RegistrationsController#create undefined local variable or method `confirmed_at' for #<User:0x9b87b38>

В этом случае выполняем простой трюк:
Code:
rails g migration AddConfirmableToAdmin

(или toUser, toUsers, без разницы; у меня однопользовательская система, поэтому toAdmin), далее открываем новый файл миграции и приводим его к следующему:
Code:
class AddConfirmableToAdmin < ActiveRecord::Migration[6.0] def change change_table(:admins) do |t| # Confirmable t.string :confirmation_token t.datetime :confirmed_at t.datetime :confirmation_sent_at t.string :unconfirmed_email # Only if using reconfirmable end add_index :admins, :confirmation_token, :unique => true end end

Вновь:
Code:
rails db:migrate RAILS_ENV=development

Вуаля. Ссылки по теме:
stackoverflow.com/questions/41600269/rai...se-confirmable-error
github.com/heartcombo/devise/wiki/How-To...confirmable-to-Users
Последнее редактирование: 3 года 6 мес. назад пользователем Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Работает на Kunena форум