Підсистема статистки редагування документів

 

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

Останні 10 версій документу зберігаються на жорсткому диску. В любий момент часу користувач має можливість отримати доступ до них. Завдяки такому методу зберігання даних, користувач завжди може перевірити, як саме редагувався документ.

Принцип зберігання даних було взято з принципу роботи Subversion – централізованої системи зберігання версій даних. Проте, оскільки повністю реалізація даного принципу є дуже складною та об’ємною частиною, повністю вона не реалізована. У майбутньому планується розробка системи Subversion, спеціально для даної системи.

 

Підсистема надання прав на редагування документів

 

Підсистема надання прав на редагування документів діє по наступному принципу:

Той, хто вперше створив документ являється його власником, та має повні права на редагування та видалення. У випадку, коли необхідно, щоб хтось інший міг також редагувати цей документ, власник, переходячи на спеціальну форму, додає цю людину у список власників. Після цього, людина, яка отримала права на редагуваня, має такі самі права, як і власник.

Такий підхід у електронному документообігу дуже важливий, оскільки він виключає доступ до файлів тих людей, які не мають на це повноважень. Тим самим підтримується конфіденційність.

Програмний код сервлету редагування прав користувачів приведено нижче:

 

public class EditDocumentRool extends HttpServlet {

@SuppressWarnings("unchecked")

public void doGet(HttpServletRequest req, HttpServletResponse resp)

throws IOException {

String name = req.getParameter("name");

DocumentManagerImpl documentManagerImpl = new DocumentManagerImpl();

Document document = documentManagerImpl.load(name);

if(document == null){

document = new Document();

}

if(document.getUser() == null){

document.setUser(new HashSet<User>());

}

UserManagerImpl userManager = new UserManagerImpl();

List<User> users = userManager.getAll();

for(int i = 0; i < users.size()-1; i++){

for(int j = i+1; j < users.size(); j++){

if(users.get(i).getName().equals(users.get(j).getName())){

users.remove(j);

j--;

}}}

for(int i = 0; i < users.size(); i++){

Iterator iter = document.getUser().iterator();

while(iter.hasNext()){

if(users.get(i).getName().equals(((User)iter.next()).getName())){

users.remove(i);

i--;

break;

}}}

users.removeAll(document.getUser());

req.getSession().setAttribute("users", users);

req.getSession().setAttribute("document", document);

resp.sendRedirect("editDocumentUsers.jsp");

}

public void doPost(HttpServletRequest req, HttpServletResponse resp)

throws IOException {

String[] users = req.getParameterValues("names");

Document document = (Document) req.getSession()

.getAttribute("document");

boolean result = (new DocumentManagerImpl()).addUsersToDocument(

document, users);

if (result) {

resp.sendRedirect("myDocumentsListVisualisation");

} else {

doGet(req, resp);

}}}

 

На даному етапі розробки, під час надання прав доступу іншому користувачу, власник документу бачить всіх користувачів системи у вигляді списку. Такий підхід дає можливість надавати права користування файлом напряму людині, а не деякій групі людей. Це робить систему більш гнучкою та безпечною. Наприклад, якщо документ відноситься до відділу розробки, то до нього потрібен доступ певної особи з відділу контролю якості. При такому підході, доступ надається саме цій особі, а не усьому відділу контролю якості. Це зменшує ризик витоку інформації, а також покращує контроль за документами, оскільки до них мають доступ лише конкретні люди, список яких можна отримати в любий момент часу.

В майбутньому планується розширення системи в напрямку юзабіліті інтерфейсу, а саме, створення додаткових груп користувачів. Проте групи користувачів будуть потрібні лише для більш сприйнятливого відображення списків користувачів. Надання прав користування все рівно буде надаватися окремо для кожної людини. Після створення таких груп, окрім покращення юзабіліті, ця система отримає нову, перспективну форму, при якій однією системою зможе користуватися не одне підприємство, а декілька, при цьому, використовуючи апаратні можливості тільки одного сервера. Це зекономить гроші на закупівлю та обслуговування обладнання, а також, на заробітну плату обслуговуючому персоналу.

 




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: