Диплом: Автоматизация управления распределенной структурой складов для «Торговый комплекс ИКЕА»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
157
if (idUser.getId().equals(user.getId())) {
return true;
}
if (user.getIdUserType().getId().equals(1)) {
return true;
}
if (deleted == true) {
return false;
}
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) {
throw new
Exception(ResourceBundle.getBundle("/resources/Bundle").getString("AccessDenied"));
}
}
/**
*
Возвращает флаг "Документ удален"
*
*
@return Флаг "Документ удален"
*/
158
public Boolean getDeleted() {
return deleted;
}
/**
*
Задает флаг "Документ удален"
*
*
@param deleted Флаг "Документ удален"
*/
public void setDeleted(Boolean deleted) {
this.deleted = deleted;
}
/**
*
Возвращает коллекцию элементов истории документа
*
*
@return Коллекция
*/
@XmlTransient
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) {
159
this.data = data;
}
/**
*
Добавляет элемент истории к документу
*
*
@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")
, @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;
160
@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;
/**
* Конструктор класса
*/
public DocumentHistory() {
}
/**
*
Коснтруктор класса
*
*
@param id Идентифкатор документа
*/
public DocumentHistory(Integer id) {
this.id = id;
}
/**
*
Возвращает идентифкатор
*
@return Идентифкатор
*/
public Integer getId() {
return id;
}
/**
*
Задает идентифкатор
*
@param id Идентифкатор
*/
public void setId(Integer id) {
this.id = id;
}
/**
*
Возвращает дату регистрации
*
@return Дата
*/
public Date getRegistrationDate() {
return registrationDate;
}
161
/**
*
Задает дату регистрации
*
*
@param registrationDate Дата
*/
public void setRegistrationDate(Date registrationDate) {
this.registrationDate = registrationDate;
}
/**
*
Возвращает документ
*
@return Документ
*/
public Document getIdDocument() {
return idDocument;
}
/**
*
Задает документ
*
@param idDocument
*/
public void setIdDocument(Document idDocument) {
this.idDocument = idDocument;
}
/**
*
Возвращает действие
*
@return Действие
*/
public UserAction getIdUserAction() {
return idUserAction;
}
/**
*
Задает действие
*
@param idUserAction Действие
*/
public void setIdUserAction(UserAction idUserAction) {
this.idUserAction = idUserAction;
}
/**
*
Возвращает пользователя
*
@return Пользователь
*/
public User getIdUser() {
return idUser;
162
}
/**
*
Задает пользователя
*
@param idUser Пользователь
*/
public void setIdUser(User idUser) {
this.idUser = idUser;
}
/**
*
Hash-код элемента
*
@return Hash-значение
*/
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
/**
*
Метод сравнения двух объектов (проверка равенства)
*
@param object Объект, который будет сравниваться с текущим
*
@return Результат сравнения
*/
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof DocumentHistory)) {
return false;
}
DocumentHistory other = (DocumentHistory) object;
if ((this.id == null && other.id != null) || (this.id != null &&
!this.id.equals(other.id))) {
return false;
}
return true;
}
/**
*
Метод вычисления названия объекта
*
@return Название
*/
@Override
public String toString() {
return "entities.DocumentHistory[ id=" + id + " ]";
}
163
}
/**
* Класс (модель) для таблицы "Правило доступа документа"
*/
@Entity
@Table(name = "document_rule")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "DocumentRule.findAll", query = "SELECT d FROM
DocumentRule d")
, @NamedQuery(name = "DocumentRule.findById", query = "SELECT d
FROM DocumentRule d WHERE d.id = :id")
, @NamedQuery(name = "DocumentRule.findByDocumentId", query =
"SELECT d FROM DocumentRule d WHERE d.idDocument.id = :idDocument")
, @NamedQuery(name = "DocumentRule.findByAccessView", query =
"SELECT d FROM DocumentRule d WHERE d.accessView = :accessView")
, @NamedQuery(name = "DocumentRule.findByAccessInsert", query =
"SELECT d FROM DocumentRule d WHERE d.accessInsert = :accessInsert")
, @NamedQuery(name = "DocumentRule.findByAccessUpdate", query =
"SELECT d FROM DocumentRule d WHERE d.accessUpdate = :accessUpdate")
, @NamedQuery(name = "DocumentRule.findByAccessDelete", query =
"SELECT d FROM DocumentRule d WHERE d.accessDelete = :accessDelete")})
public class DocumentRule implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Column(name = "access_view")
private Boolean accessView;
@Column(name = "access_insert")
private Boolean accessInsert;
@Column(name = "access_update")
private Boolean accessUpdate;
@Column(name = "access_delete")
private Boolean accessDelete;
@JoinColumn(name = "id_user_type", referencedColumnName = "id")
@ManyToOne
private UserType idUserType;
@JoinColumn(name = "id_document", referencedColumnName = "id")
@ManyToOne
private Document idDocument;
@JoinColumn(name = "id_user", referencedColumnName = "id")
@ManyToOne
private User idUser;
164
@JoinColumn(name = "id_user_function", referencedColumnName = "id")
@ManyToOne
private UserFunction idUserFunction;
@JoinColumn(name = "id_department", referencedColumnName = "id")
@ManyToOne
private Department idDepartment;
/**
* Конструктор класса
*/
public DocumentRule() {
}
/**
*
Конструктор класса
*
@param id Идентификатор правила
*/
public DocumentRule(Integer id) {
this.id = id;
}
/**
*
Возвращает значение поля "Идентификатор правила"
*
@return Идентификатор правила
*/
public Integer getId() {
return id;
}
/**
*
Задает значение поля "Идентификатор правила"
*
@param id Идентификатор правила
*/
public void setId(Integer id) {
this.id = id;
}
/**
*
Возвращает значение поля "Разрешение на просмотр"
*
@return Разрешение на просмотр
*/
public Boolean getAccessView() {
return accessView;
}
/**
*
Задает значение поля "Разрешение на просмотр"
*
@param accessView Разрешение на просмотр
165
*/
public void setAccessView(Boolean accessView) {
this.accessView = accessView;
}
/**
*
Возвращает значение поля "Разрешение на добавление"
*
@return Разрешение на добавление
*/
public Boolean getAccessInsert() {
return accessInsert;
}
/**
*
Задает значение поля "Разрешение на добавление"
*
@param accessInsert Разрешение на добавление
*/
public void setAccessInsert(Boolean accessInsert) {
this.accessInsert = accessInsert;
}
/**
*
Возвращает значение поля "Разрешение на обновление"
*
@return Разрешение на обновление
*/
public Boolean getAccessUpdate() {
return accessUpdate;
}
/**
*
Задает значение поля "Разрешение на обновление"
*
@param accessUpdate Разрешение на обновление
*/
public void setAccessUpdate(Boolean accessUpdate) {
this.accessUpdate = accessUpdate;
}
/**
*
Возвращает значение поля "Разрешение на удаление"
*
@return Разрешение на удаление
*/
public Boolean getAccessDelete() {
return accessDelete;
}
/**
*
Задает значение поля "разрешение на удаление"
*
@param accessDelete Разрешение на удаление
166
*/
public void setAccessDelete(Boolean accessDelete) {
this.accessDelete = accessDelete;
}
/**
*
Возвращает группу пользователей документа
*
@return Группа пользовталей (Тип пользователя)
*/
public UserType getIdUserType() {
return idUserType;
}
/**
*
Задает группу пользователей документа
*
@param idUserType Группа пользовталей (Тип пользователя)
*/
public void setIdUserType(UserType idUserType) {
this.idUserType = idUserType;
}
/**
*
Возвращает документ, которому принадлежит данное правило
*
@return Документ
*/
public Document getIdDocument() {
return idDocument;
}
/**
*
Задает документ, которому принадлежит данное правило
*
@param idDocument Документ
*/
public void setIdDocument(Document idDocument) {
this.idDocument = idDocument;
}
/**
*
Возвращает пользователя документа
*
@return Пользователь документа (User)
*/
public User getIdUser() {
return idUser;
}
/**
*
Задает пользователя документа
*
@param idUser Пользователь документа (User)
*/
public void setIdUser(User idUser) {

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

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