Диплом: Автоматизация и обеспечение информационной безопасности процесса систематизации документации архива организации в "МАУ МФЦ г. Краснослободска"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
105
if (testViewAccess(user) == false) {
throw new
Exception(ResourceBundle.getBundle("/resources/Bundle").getString("AccessDenie
d"));
}
}
/**
* Метод проверки "Имеет ли пользователь разрешение на удаление текущего
* документа"
*
* @param user Пользователь
* @return Результат проверки
*/
public Boolean testDeleteAccess(User user) {
if (user == null) {
return false;
}
if (locked == false) {
return true;
}
if (idUser.getId().equals(user.getId())) {
return true;
}
if (user.getIdUserType().getId().equals(1)) {
return true;
}
if (deleted == true) {
106
return false;
}
Collection<DocumentRule> rules = getDocumentRuleCollection();
for (DocumentRule rule : rules) {
if ((rule.getIdUser() != null && rule.getIdUser().getId().equals(user.getId())
&& rule.getAccessDelete())
|| (rule.getIdUserType() != null &&
rule.getIdUserType().getId().equals(user.getIdUserType().getId()) &&
rule.getAccessDelete())
|| (rule.getIdDepartment() != null &&
rule.getIdDepartment().getId().equals(user.getIdDepartment().getId()) &&
rule.getAccessDelete())
|| (rule.getIdUserFunction() != null &&
rule.getIdUserFunction().getId().equals(user.getIdUserFunction().getId()) &&
rule.getAccessDelete())) {
return true;
}
}
return false;
}
/**
* Метод проверки "Имеет ли пользователь разрешение на удаление текущего
* документа" (возвращает исключение)
*
* @param user Пользователь
* @throws Exception Результат проверки
*/
public void controlDeleteAccess(User user) throws Exception {
if (testDeleteAccess(user) == false) {
107
throw new
Exception(ResourceBundle.getBundle("/resources/Bundle").getString("AccessDenie
d"));
}
}
/**
* Метод проверки "Имеет ли пользователь разрешение на добавление
документа"
*
* @param user Пользователь
* @return Результат проверки
*/
public Boolean testInsetAccess(User user) {
if (user == null) {
return false;
}
if (locked == false) {
return true;
}
if (idUser.getId().equals(user.getId())) {
return true;
}
if (user.getIdUserType().getId().equals(1)) {
return true;
}
if (deleted == true) {
return false;
108
}
Collection<DocumentRule> rules = getDocumentRuleCollection();
for (DocumentRule rule : rules) {
if ((rule.getIdUser() != null && rule.getIdUser().getId().equals(user.getId())
&& rule.getAccessInsert())
|| (rule.getIdUserType() != null &&
rule.getIdUserType().getId().equals(user.getIdUserType().getId()) &&
rule.getAccessInsert())
|| (rule.getIdDepartment() != null &&
rule.getIdDepartment().getId().equals(user.getIdDepartment().getId()) &&
rule.getAccessInsert())
|| (rule.getIdUserFunction() != null &&
rule.getIdUserFunction().getId().equals(user.getIdUserFunction().getId()) &&
rule.getAccessInsert())) {
return true;
}
}
return false;
}
/**
* Метод проверки "Имеет ли пользователь разрешение на добавление
документа"
* (возвращает исключение)
*
* @param user Пользователь
* @throws Exception Результат проверки
*/
public void controlInsertAccess(User user) throws Exception {
if (testInsetAccess(user) == false) {
109
throw new
Exception(ResourceBundle.getBundle("/resources/Bundle").getString("AccessDenie
d"));
}
}
/**
* Метод проверки "Имеет ли пользователь разрешение на обновление
документа"
*
* @param user Пользователь
* @return Результат проверки
*/
public Boolean testUpdateAccess(User user) {
if (user == null) {
return false;
}
if (locked == false) {
return true;
}
if (idUser.getId().equals(user.getId())) {
return true;
}
if (user.getIdUserType().getId().equals(1)) {
return true;
}
if (deleted == true) {
return false;
110
}
Collection<DocumentRule> rules = getDocumentRuleCollection();
for (DocumentRule rule : rules) {
if ((rule.getIdUser() != null && rule.getIdUser().getId().equals(user.getId())
&& rule.getAccessUpdate())
|| (rule.getIdUserType() != null &&
rule.getIdUserType().getId().equals(user.getIdUserType().getId()) &&
rule.getAccessUpdate())
|| (rule.getIdDepartment() != null &&
rule.getIdDepartment().getId().equals(user.getIdDepartment().getId()) &&
rule.getAccessUpdate())
|| (rule.getIdUserFunction() != null &&
rule.getIdUserFunction().getId().equals(user.getIdUserFunction().getId()) &&
rule.getAccessUpdate())) {
return true;
}
}
return false;
}
/**
* Метод проверки "Имеет ли пользователь разрешение на обновление
документа"
* (возвращает исключение)
*
* @param user Пользователь
* @throws Exception Результат проверки
*/
public void controlUpdateAccess(User user) throws Exception {
if (testUpdateAccess(user) == false) {
111
throw new
Exception(ResourceBundle.getBundle("/resources/Bundle").getString("AccessDenie
d"));
}
}
/**
* Возвращает флаг "Документ удален"
*
* @return Флаг "Документ удален"
*/
public Boolean getDeleted() {
return deleted;
}
/**
* Задает флаг "Документ удален"
*
* @param deleted Флаг "Документ удален"
*/
public void setDeleted(Boolean deleted) {
this.deleted = deleted;
}
/**
* Возвращает коллекцию элементов истории документа
*
* @return Коллекция
*/
@XmlTransient
112
public Collection<DocumentHistory> getDocumentHistoryCollection() {
return documentHistoryCollection;
}
/**
* Задает коллекцию элементов истории документа
*
* @param documentHistoryCollection Коллекция
*/
public void setDocumentHistoryCollection(Collection<DocumentHistory>
documentHistoryCollection) {
this.documentHistoryCollection = documentHistoryCollection;
}
/**
* Возвращает содержимое файла
*
* @return Содержимое файла
*/
public byte[] getData() {
return data;
}
/**
* Задает содержимое файла
*
* @param data Содержимое файла
*/
public void setData(byte[] data) {
this.data = data;
113
}
/**
* Добавляет элемент истории к документу
*
* @param idUser Пользователь
* @param idAction Действие
*/
public void HistoryAdd(User idUser, UserAction idAction) {
DocumentHistory history = new DocumentHistory();
history.setIdDocument(this);
history.setIdUser(idUser);
history.setIdUserAction(idAction);
history.setRegistrationDate(new Date());
if (getDocumentHistoryCollection() == null) {
setDocumentHistoryCollection(new ArrayList<DocumentHistory>());
}
getDocumentHistoryCollection().add(history);
}
}
/**
* Класс (модель) для таблицы "История документа"
*/
@Entity
@Table(name = "document_history")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "DocumentHistory.findAll", query = "SELECT d FROM
DocumentHistory d")
114
, @NamedQuery(name = "DocumentHistory.findById", query = "SELECT d
FROM DocumentHistory d WHERE d.id = :id")
, @NamedQuery(name = "DocumentHistory.findByIdDocumnet", query =
"SELECT d FROM DocumentHistory d WHERE d.idDocument.id = :idDocument")
, @NamedQuery(name = "DocumentHistory.findByRegistrationDate", query =
"SELECT d FROM DocumentHistory d WHERE d.registrationDate =
:registrationDate")})
public class DocumentHistory implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Column(name = "registration_date")
@Temporal(TemporalType.TIMESTAMP)
private Date registrationDate;
@JoinColumn(name = "id_document", referencedColumnName = "id")
@ManyToOne
private Document idDocument;
@JoinColumn(name = "id_user_action", referencedColumnName = "id")
@ManyToOne
private UserAction idUserAction;
@JoinColumn(name = "id_user", referencedColumnName = "id")
@ManyToOne
private User idUser;
/**
* Конструктор класса

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)