Урок 1.

Изменение пароля.

  1. Авторизация
  2. Для авторизации на сервере используется пароль admin с логином admin. После того как заработает этот урок, вы сможете поменять авторизационные данные на желаемые. В описании я буду использовать авторизацию по умолчанию. Для ознакомления авторизовываться не обязательно (для этого не вводите ничего в поля логин и пароль, а просто нажмите "Войти"). Это надо тогда, когда вы будете размещать исправный проект на сервере.

  3. Работа с ролями.
  4. Важная часть работы с дизайнером - это ведение списка ролей. Пока поддерживаются роли линейные (без иерархии), в дальнейшем будут иерархичные роли. Для работы с ролями существует несколько операций.
    1. новая роль
    2. удалить роль
    3. Редактировать роль
    4. Экспорт ролей
    5. Импорт ролей
    6. Слияние ролей
    7. Синхронизировать ID
    Описание операций меню.
    1. Новая роль - это добавление в ЛОКАЛЬНЫЙ список ролей новую роль.
    2. Удалить роль - это удаление из ЛОКАЛЬНОГО списка ролей данную роль.
    3. Редактировать роль - это редактирование параметров данной роли.
    4. Экспорт ролей - уничтожить все записи в БД и выгрузить в БД роли из локального списка.
    5. Импорт ролей - уничтожить весь локальный список ролей и взять полный список из БД.
    6. Слияние ролей - производит слияние ролей. Если какой-то роли нет в БД, а есть в локальном списке, то она будет добавлена в БД из локального списка. Если Роль есть в БД, но нет в локальном списке, то роль из БД будет удалена.
    7. Синхронизировать ID - для заданной роли по имени роли из БД ищется роль с точно таким же именем и ID из БД передается в локальный список. Таким образом, локальный список синхронизирует свой ID с Id из БД.
    Для тех операций, в которых нужна БД, требуется авторизация с верным логином и паролем. Если авторизация не верна, то операции с БД не будут доступны. В остальных случаях БД для проектирования не нужна (за исключением случая размещения не сервере проекта и его удаления с сервера).
  5. Заведем роль - original.
  6. Меню->Проект->Роли. На заголовке root кликаем правой мыши на выпадающем меню выбираем "новая роль".
          Введем имя: original,
          Id: 1
          ParentId: -1
          
    Нажимаем OK.
    Роль введена. Закрываем окно для работы с ролями.
  7. Заполним конфигурацию.
  8. Заполним значения конфигурации:
    Меню->Проект->Конфигурация
    . "Путь к файлам генерации документов" - это директория, в которой дизайнер будет генерировать документы.
    "Путь к файлу-заглушке record management" - это путь к файлу-заглушке для организации доступа к полям документа. Об этом чуть попозже: Введите в первое поле, скажем "c:\temp"

  9. Создадим модель.

  10. Для этого мышкой выберем в меню "Узел". На закладке "Конструктор" нарисуем два узла. Выберем в меню "Линия", затем от первого ко второму проведем линию. Затем выберем в меню "стрелка" и кликнем на первом узле, он активизируется. Теперь начнем его настраивать. Слева внизу отображается панель с настройками текущего элемента. В нашем случае "Панель узла". Заполним панель как на рисунке 1.


    Выберем второй узел, Заполним как на рисунке 2.


    Выберем линию. Заполним свойства для линии как на рисунке 3.


    Модель нарисована, мы задали стартовый узел, конечный узел, переход от одного узла к другому. На этом работа аналитика (или проектировщика) завершена. Теперь приступает к работе программист. Аналитик может сохранить проект под названием "ChangePassword" и передать сохраненный проект (это файл с именем ChangePassword.xml) программисту. Программист открывает этот проект и продолжает работу.
    Выбирает из меню "Стрелка" и активизирует стартовый узел. Стартовый узел изображен на модели всегда ЗЕЛЕНЫМ. Нажимает "Код", появляется окно см. рис5. для работы с кодом в данном узле.
    В закладке "Код" набираем следующий код:
     String oldPwd=getOldPassword(); 
     String newPwd=getNewPassword(); 
     String cPwd=getConfirmPassword();
     if(newPwd.equals(cPwd)){
       ret=true;
     }
     else{
        JOptionPane.showMessageDialog(null, "Новый пароль не   совпадает с подтверждением", "ошибка", JOptionPane.ERROR_MESSAGE); 
     }
    
    Выбираем закладку "Просмотр кода". Нажимаем "Верификация". Происходит генерация кода для данного узла и его компиляция. Нажимаем "Сохранить" и выходим из окна редактирования кода для активизированного узла. Активизируем другой узел. В закладке "Код" набираем следующий код:
                            Properties env = new Properties();
                            env.setProperty("java.naming.factory.initial",
                                                "org.jnp.interfaces.NamingContextFactory");
                            env.setProperty("java.naming.factory.url.pkgs",
                                                "org.jboss.naming:org.jnp.interfaces");
                            env.setProperty("java.naming.provider.url", "localhost");
                            try{
                               InitialContext ctx =new InitialContext(env);
                               connection.bean.UsersSessionFacadeHome home=(connection.bean.UsersSessionFacadeHome)ctx.lookup("UsersSessionFacade");
                               connection.bean.UsersSessionFacade user=home.create();
                               if(user.changePassword(document.getPrincipal().getLogin(), getOldPassword(),
                                                            getNewPassword())){
                                  UserCommand uc=new UserCommand();
                                  uc.setCommand("Пароль успешно изменен!");
                                  uc.setIsShowConfirmationWindow(true);
                                  setUserAnswerMessage(uc);
                                  ret=true;
                               }
                            }
                            catch(javax.naming.NamingException ne){
                               ne.printStackTrace();
                            }
                            catch(javax.ejb.CreateException ce){
                               ce.printStackTrace();
                            }
                            catch(java.rmi.RemoteException re){
                               re.printStackTrace();
                            }
    
    В окошке "Импорт" надо написать "import javax.naming.*;"

    Переключимся на закладку "Просмотр кода", нажимаем "Верификация", и нажимаем "Сохранить". Если при верификации произошла ошибка, то это может произойти по следующим причинам:

    Если все нормально, то надо сохранить код в проекте. Для этого нажмите "Сохранить", затем из меню нажмите "Файл->Сохранить".
  11. Выбрать закладку "Словарь"

    Задать три поля. Как на рисунке 6.
    Установить для них следующие свойства, рис.7:


  12. Затем нажимаем "Verify". Опять производиться генерация уже всего кода, его проверка. Если все в порядке идет попытка разместить скомпилированный проект на сервере. Если на сервере нет зарегистрированного проекта с таким же именем, то выдастся окошко с предложением подтвердить Deployment. Если есть, то поступит предложение Undeploy, после успешного процесса Undeploy, можно опять произвести Deploy. На этом разработка закончена. Теперь осталось только пользователям дать роль original, и на этом работа завершена.
    По любым вопросам и проблемам обращайтесь: Константин Пупков df@goodidea.ru
    icq:17631963
    Copyright © 2004...2007