Ответы пользователя по тегу Веб-разработка
  • Как вы запоминаете термины языка?

    IgorPI
    @IgorPI
    Чем чаще всего используешь какой-нибудь паттерн / фреймворк / и т. д начинаешь не только помнить его термины, но и то как оно работает. Стоит тебе перестать активно их использовать остаются только термины, а в будущем забудешь и их.

    Именно по этому, узкоспециализированные специалисты очень хорошо разбираются в своём деле.

    © Игорь
    Ответ написан
    Комментировать
  • Что означает RESULT_CODE_INVALID_CMDLINE_URL ошибка?

    IgorPI
    @IgorPI


    chrome/common/chrome_result_codes.h
    ...
    enum ResultCode {
      RESULT_CODE_CHROME_START = content::RESULT_CODE_LAST_CODE,
    
      // An invalid command line url was given.
      RESULT_CODE_INVALID_CMDLINE_URL = RESULT_CODE_CHROME_START,
    
      // The process is of an unknown type.
      RESULT_CODE_BAD_PROCESS_TYPE,
    
      // A critical chrome file is missing.
    ...
    Ответ написан
    Комментировать
  • Как реализовать создание пользователей с не базовой ролью в приложении с RBAC?

    IgorPI
    @IgorPI
    Я тоже сейчас работаю с RBAC но только в Symfony
    Все сводится к тому, что в тех или иных методах вызваться некая функция, которая проверяет наличие атрибута разрешающего доступ.

    Только в Symfony есть так называемое голосование. (Voters)

    Приведу пример:
    <?php
    
    
    namespace App\Security\Administrator\Voter;
    
    
    use App\Entity\User;
    use App\Entity\UserGroup;
    use Exception;
    use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
    use Symfony\Component\Security\Core\Authorization\Voter\Voter;
    
    /**
     * Class UserVoter
     * @package App\Security\Administrator\Voters
     */
    class UserVoter extends Voter implements IVoter
    {
    
        public const CREATE_USERS = 'create_users';
        public const EDIT_USERS = 'edit_users';
        public const DELETE_USERS = 'delete_users';
        public const VIEW_USERS = 'view_users';
        public const VIEW_CONTACTS = 'view_contacts';
        public const SET_PRIVILEGES_USERS = 'set_privileges_users';
    
    
        /**
         * @param string $attribute
         * @param mixed $subject
         * @return bool
         */
        protected function supports($attribute, $subject)
        {
            if (!in_array($attribute, $this->getAttributes())) {
                return false;
            }
    
            return true;
        }
    
    
        /**
         * @param string $attribute
         * @param mixed $subject
         * @param TokenInterface $token
         * @return bool
         */
        protected function voteOnAttribute($attribute, $subject, TokenInterface $token)
        {
            $user = $token->getUser();
    
            if (!$user instanceof User) {
                return false;
            }
    
            $permissions = [];
            try {
                if (is_a($user->getGroup(), UserGroup::class)) {
                    $permissions = $user->getGroup()->getPermissions();
                }
    
                foreach ($permissions as $permission) {
                    if (in_array($permission, $this->getAttributes())) {
                        return true;
                    }
                }
    
                return false;
            }catch (Exception $exception) {
                return false;
            }
        }
    
    
        /**
         * @return string[]
         */
        public function getAttributes()
        {
            return [
                self::CREATE_USERS,
                self::EDIT_USERS,
                self::DELETE_USERS,
                self::VIEW_USERS,
                self::VIEW_CONTACTS,
                self::SET_PRIVILEGES_USERS
            ];
        }
    }


    В контроллере
    ...
    $this->denyAccessUnlessGranted(UserVoter::CREATE_USERS, null, "Вам запрещено создавать пользователей.");
    ...


    У каждого юзера должны быть те самые атрибуты разрешающие доступ, если у юзера нет аттрибутов то и доступа нет.

    Базовый атрибут это например строка в базе "user"
    У каждого юзера гарантировано должен быть базовый аттрибут иначе доступа не будет.

    Это не ответ, я делюсь своим опытом.
    Ответ написан
  • На чём сделан этот сайт?

    IgorPI
    @IgorPI
    Html
    CSS

    Эмм...

    Не, Js нет
    Ответ написан
    Комментировать
  • Где взять актуальную БД или список регион, город, район РФ как на сайте bankgorodov.ru?

    IgorPI
    @IgorPI
    Вариант №2
    Регионы, страны, города.
    Связи, отношения.
    Спасибо.
    Ответ написан
    Комментировать
  • PHP. Возможно ли добавление контента без Базы Данных?

    IgorPI
    @IgorPI
    Файловая система как база данных )))
    Ответ написан
    Комментировать
  • Как хранить настройки регистрации?

    IgorPI
    @IgorPI
    Для начала, какой стек технологий планируете использовать?

    Как хранить, вопрос риторический отчасти.

    Если ближе к делу, то ...
    -----------------------------------------------------
    Вам нужно продвинуться в сторону ORM.
    Работать с сущностями, сложного нечего нет.

    Прочтите немного, что-нибудь про ORM.

    Плюсы.
    - Работа с данными в виде объектов.
    - Ускорение разработки

    например, вам нужно сохранить какие-нибудь настройки, вы делаете так:

    $setting = new Setting();
    $setting->setCount(12);
    
    $sub_settings = new SubSettings();
    $setting->setSubSettings($sub_settings); // и даже так
    
    $em->persist($setting);
    $em->persist($sub_settings);
    
    $em->flush();


    И всё, ваши данные в базе, со всеми отношениями.

    Нужно получить данные, снова достаёте их, и работаете как с объектами.

    Может показаться сложным, но только первые пару дней.
    После, вопросы, "как хранить настройки регистрации на мероприятия" сами собой отпадут.

    Моё субъективное мнение.
    Ответ написан
    6 комментариев
  • Оцените сайт. Что добавить, что улучшить?

    IgorPI
    @IgorPI
    Девочки красивые!
    5+
    Ответ написан
    Комментировать
  • Как вывести данные из базы в формате JSON (с помощью php)?

    IgorPI
    @IgorPI
    Хотите сложную структуру в виде иерархии, используйте ORM.

    Мне кажется, так даже быстрее и качественней.
    Ответ написан