/** 各フィールドを初期化します。 <br> */ @Override public void initField() { // ロール名 acl_role_name = new ALStringField(); acl_role_name.setFieldName(ALLocalizationUtils.getl10n("ACCESSCTL_ROLE_NAME")); acl_role_name.setTrim(true); // 機能 feature_id = new ALNumberField(); feature_id.setFieldName(ALLocalizationUtils.getl10n("ACCESSCTL_ROLE_NAME")); // メモ note = new ALStringField(); note.setFieldName(ALLocalizationUtils.getl10n("ACCESSCTL_MEMO")); note.setTrim(false); acllist = new ALNumberField(); acldetail = new ALNumberField(); aclinsert = new ALNumberField(); aclupdate = new ALNumberField(); acldelete = new ALNumberField(); aclexport = new ALNumberField(); // メンバーリスト memberList = new ArrayList<ALEipUser>(); }
/** * 入力フィールド値を検証します。 * * @param msgList * @return */ public boolean validate(List<String> msgList) { if (msgList == null) { msgList = new ArrayList<String>(); } if (!isNotNullValue()) { if (isNotNull()) { // 必須入力属性で値が設定されていない場合 msgList.add(ALLocalizationUtils.getl10nFormat("COMMONS_FIELD_INPUT_NAME_SPAN", fieldName)); return false; } } else { if (!isValidCharacterType()) { // 設定されている文字セット以外の文字を含む場合 msgList.add( ALLocalizationUtils.getl10nFormat( "COMMONS_FIELD_INPUT_CHAR_TYPE_BY_NAME_SPAN", fieldName, getCharTypeByName())); return false; } else { if (isLimitLength()) { // 文字列長制限がある場合 int len = value.length(); if (len < getMinLength()) { // 文字列長が最小値を下回る場合 msgList.add( ALLocalizationUtils.getl10nFormat( "COMMONS_FIELD_INPUT_LENGTH_CAUTION_LESS_SPAN", fieldName, getMinLength())); return false; } if (len > getMaxLength()) { // 文字列長が最大値を上回る場合 msgList.add( ALLocalizationUtils.getl10nFormat( "COMMONS_FIELD_INPUT_LENGTH_CAUTION_OVER_SPAN", fieldName, getMaxLength())); return false; } } if (!isUTF8()) { // utf-8を超える範囲の文字が含まれている場合 msgList.add( ALLocalizationUtils.getl10nFormat("COMMONS_FIELD_INPUT_NOT_UTF_EIGHT", fieldName)); return false; } } } return true; }
/** * 最終アクセス時間を取得します。 * * @return */ public String getLastAccessTime() { StringBuffer str = new StringBuffer(); Calendar cal = Calendar.getInstance(); cal.setTime(super.getLastAccessDate()); return str.append(cal.get(Calendar.YEAR)) .append(ALLocalizationUtils.getl10n("COMMON_YEAR")) .append((cal.get(Calendar.MONTH) + 1)) .append(ALLocalizationUtils.getl10n("COMMON_MONTH")) .append(cal.get(Calendar.DATE)) .append(ALLocalizationUtils.getl10n("COMMON_DAY")) .append(cal.get(Calendar.HOUR_OF_DAY)) .append(ALLocalizationUtils.getl10n("COMMON_HOUR")) .append(cal.get(Calendar.MINUTE)) .append(ALLocalizationUtils.getl10n("COMMON_MINUTE")) .toString(); }
/** * フォームに入力されたデータの妥当性検証を行います。 <br> * * @param msgList * @return */ @Override protected boolean validate(List<String> msgList) { position_name.validate(msgList); try { SelectQuery<EipMPosition> query = Database.query(EipMPosition.class); if (ALEipConstants.MODE_INSERT.equals(getMode())) { Expression exp = ExpressionFactory.matchExp( EipMPosition.POSITION_NAME_PROPERTY, position_name.getValue()); query.setQualifier(exp); } else if (ALEipConstants.MODE_UPDATE.equals(getMode())) { Expression exp1 = ExpressionFactory.matchExp( EipMPosition.POSITION_NAME_PROPERTY, position_name.getValue()); query.setQualifier(exp1); Expression exp2 = ExpressionFactory.noMatchDbExp( EipMPosition.POSITION_ID_PK_COLUMN, Integer.valueOf(position_id)); query.andQualifier(exp2); } if (query.fetchList().size() != 0) { msgList.add(ALLocalizationUtils.getl10nFormat("ACCOUNT_VALIDATE_POSITION", position_name)); } } catch (Exception ex) { logger.error("AccountPositionFormData.validate", ex); return false; } return (msgList.size() == 0); }
/** @return */ public String getNote() { String htmlText; try { String noteText = note.toString(); /* 太字 */ noteText = noteText.replaceAll("'''", "'''"); /* 斜体 */ noteText = noteText.replaceAll("''", "''"); /* 下線 */ noteText = noteText.replaceAll("<u>", "<u>"); noteText = noteText.replaceAll("</u>", "</u>"); /* 取り消し線 */ noteText = noteText.replaceAll("<del>", "<del>"); noteText = noteText.replaceAll("</del>", "</del>"); if (null == model) { model = new WikiModel("", ""); } htmlText = model.render(noteText); /* 添付ファイル */ for (FileuploadBean attachmentfile : attachmentFileList) { htmlText = htmlText.replace( "!" + attachmentfile.getFileName() + "!", "<br>" + "<a href=\"javascript:void(0);\" onclick=\"aipo.fileupload.showImageDialog('" + baseImageRawLink + "/ownerid/" + owner_id.getValue() + "/entityid/" + id + "/attachmentindex/" + attachmentfile.getFileId() + "/f/" + attachmentfile.getFileName() + "');\" >" + "<img class='width_thumbs' border='0' alt='" + attachmentfile.getFileName() + "' title='" + attachmentfile.getFileName() + "' src='" + baseImageLink + "?entityid=" + id + "&attachmentindex=" + attachmentfile.getFileId() + "'></a>"); } } catch (Exception e) { logger.error("WikiResultData.getNote", e); return ALLocalizationUtils.getl10n("WIKI_ERROR"); } return htmlText; }
public String getEndDateFormatSpace() { return ALLocalizationUtils.getl10nFormat( "SCHEDULE_DATE_FORMAT", getEndDate().getYear(), getEndDate().getMonth(), getEndDate().getDay()); }
@Override public String getViewDateText() { return ALLocalizationUtils.getl10nFormat( "SCHEDULE_DATE_FORMAT_NOSPACE", getViewDate().getYear(), getViewDate().getMonth(), getViewDate().getDay()); }
@Override public void initField() { // カテゴリ名 category_name = new ALStringField(); category_name.setFieldName(ALLocalizationUtils.getl10n("MSGBOARD_CATEGORY_NAME")); category_name.setTrim(true); // メモ note = new ALStringField(); note.setFieldName(ALLocalizationUtils.getl10n("MSGBOARD_MEMO")); note.setTrim(true); // 閲覧/返信フラグ access_flag = new ALNumberField(); access_flag.setFieldName(ALLocalizationUtils.getl10n("MSGBOARD_CHANGE_VIEWS")); access_flag.setValue(0); // メンバーリスト memberList = new ArrayList<ALEipUser>(); }
@Override protected boolean validate(List<String> msgList) { new_passwd.validate(msgList); new_passwd_confirm.validate(msgList); if (!new_passwd.toString().equals(new_passwd_confirm.toString())) { msgList.add(ALLocalizationUtils.getl10n("ACCOUNT_ALERT_NEWPW")); } return (msgList.size() == 0); }
@Override public void initField() { // スーパークラスのメソッドを呼び出します。 super.initField(); // 場所 place = new ALStringField(); // 内容 note = new ALStringField(); note.setTrim(false); // テキスト text = new ALStringField(); text.setValue(""); // 作成日 createDate = new ALDateTimeField(ALLocalizationUtils.getl10n("SCHEDULE_SIMPLE_DATE_FORMAT_DAY")); // 更新日時 updateDate = new ALDateTimeField(ALLocalizationUtils.getl10n("SCHEDULE_SIMPLE_DATE_FORMAT_DAY")); }
public String getSpanDateText() { return ALLocalizationUtils.getl10nFormat( "SCHEDULE_UNTIL_SPAN", start_date.getYear(), start_date.getMonth(), start_date.getDay(), start_date.getDayOfWeek(), end_date.getYear(), end_date.getMonth(), end_date.getDay(), end_date.getDayOfWeek()); }
/** * @param map * @return */ @Override protected Object getResultData(EipTNoteMap map) { try { EipTNote record = map.getEipTNote(); NoteClientResultData rd = new NoteClientResultData(); rd.initField(); rd.setNoteId(record.getNoteId().intValue()); rd.setClientName(ALCommonUtils.compressString(record.getClientName(), getStrLength())); rd.setCompanyName(ALCommonUtils.compressString(record.getCompanyName(), getStrLength())); rd.setNoteStat(map.getNoteStat()); rd.setAcceptDate(record.getAcceptDate()); String subject = ""; if (record.getSubjectType().equals("0")) { subject = ALCommonUtils.compressString(record.getCustomSubject(), getStrLength()); } else if (record.getSubjectType().equals("1")) { subject = ALLocalizationUtils.getl10n("NOTE_CALL_AGAIN_NO_PERIOD"); } else if (record.getSubjectType().equals("2")) { subject = ALLocalizationUtils.getl10n("NOTE_MAIL_CALL_BACK"); } else if (record.getSubjectType().equals("3")) { subject = ALLocalizationUtils.getl10n("NOTE_MAIL_TELL_ME"); } else if (record.getSubjectType().equals("4")) { subject = ALLocalizationUtils.getl10n("NOTE_MAIL_TAKE_A_MESSAGE"); } rd.setSubject(subject); if (NoteUtils.NOTE_STAT_NEW.equals(map.getNoteStat())) { rd.setNoteStat(NoteUtils.NOTE_STAT_NEW); rd.setNoteStatImage("images/note/note_new_message.gif"); rd.setNoteStatImageDescription(ALLocalizationUtils.getl10n("NOTE_NEW_MESSAGE")); } else if (NoteUtils.NOTE_STAT_UNREAD.equals(map.getNoteStat())) { rd.setNoteStat(NoteUtils.NOTE_STAT_UNREAD); rd.setNoteStatImage("images/note/note_unread_message.gif"); rd.setNoteStatImageDescription(ALLocalizationUtils.getl10n("NOTE_UNREAD_MESSAGE")); } else { rd.setNoteStat(NoteUtils.NOTE_STAT_READ); rd.setNoteStatImage("images/note/note_read_message.gif"); rd.setNoteStatImageDescription(ALLocalizationUtils.getl10n("NOTE_READ_MESSAGE")); } ALEipUser user = ALEipUtils.getALEipUser(Integer.valueOf(record.getOwnerId()).intValue()); rd.setSrcUserId(record.getOwnerId()); rd.setSrcUserFullName(user.getAliasName().getValue()); return rd; } catch (RuntimeException e) { logger.error("note", e); return null; } catch (Exception ex) { logger.error("note", ex); return null; } }
@Override public void initField() { // メール作成のタイプ mailType = new ALNumberField(); mailType.setFieldName(ALLocalizationUtils.getl10n("WEBMAIL_SETFIELDNAME_TYPE")); // To to = new ALStringField(); to.setFieldName(ALLocalizationUtils.getl10n("WEBMAIL_SETFIELDNAME_TO")); to.setTrim(true); // CC cc = new ALStringField(); cc.setFieldName(ALLocalizationUtils.getl10n("WEBMAIL_SETFIELDNAME_CC")); cc.setTrim(true); // BCC bcc = new ALStringField(); bcc.setFieldName(ALLocalizationUtils.getl10n("WEBMAIL_SETFIELDNAME_BCC")); bcc.setTrim(true); // Subject subject = new ALStringField(); subject.setFieldName(ALLocalizationUtils.getl10n("WEBMAIL_SETFIELDNAME_SUBJECT")); subject.setTrim(true); // Body body = new ALStringField(); body.setFieldName(ALLocalizationUtils.getl10n("WEBMAIL_SETFIELDNAME_BODY")); body.setTrim(false); fileuploadList = new ArrayList<FileuploadLiteBean>(); }
/** * ロールをデータベースに格納します。 <br> * * @param rundata * @param context * @param msgList * @return TRUE 成功 FALSE 失敗 */ @Override protected boolean insertFormData(RunData rundata, Context context, List<String> msgList) { try { Date now = Calendar.getInstance().getTime(); // 新規オブジェクトモデル EipTAclRole aclrole = Database.create(EipTAclRole.class); aclrole.setRoleName(acl_role_name.getValue()); aclrole.setNote(note.getValue()); long aclType = getAclTypeValue(); aclrole.setAclType(Integer.valueOf((int) aclType)); EipTAclPortletFeature feature = Database.get(EipTAclPortletFeature.class, Integer.valueOf((int) feature_id.getValue())); aclrole.setEipTAclPortletFeature(feature); // 登録日 aclrole.setCreateDate(now); // 更新日 aclrole.setUpdateDate(now); // userMapの登録 insertEipTAclUserRoleMap(aclrole, memberList.get(0)); // メンバー登録 int size = memberList.size(); for (int i = 1; i < size; i++) { insertEipTAclUserRoleMap(aclrole, memberList.get(i)); } // ロールを登録 Database.commit(); // イベントログに保存 ALEventlogFactoryService.getInstance() .getEventlogHandler() .log( aclrole.getRoleId(), ALEventlogConstants.PORTLET_TYPE_ACCESSCTL, ALLocalizationUtils.getl10nFormat("ACCESSCTL_EVENTLOG_ADD", aclrole.getRoleName())); } catch (Exception ex) { Database.rollback(); logger.error("AccessControlFormData.insertFormData", ex); return false; } return true; }
/** * タスク担当者へ通知メールを送る * * @param taskId タスクID * @return 成否 */ public static boolean sendMailForTaskMembers( RunData rundata, Context context, EipTProjectTask task, EipTProject project, List<ProjectTaskMemberResultData> mailUserList) { String orgId = Database.getDomainName(); String subject = "[" + ALOrgUtilsService.getAlias() + "]" + ALLocalizationUtils.getl10n("PROJECT_MAIL_TITLE"); try { List<ALEipUser> memberList = new ArrayList<ALEipUser>(); for (ProjectTaskMemberResultData rd : mailUserList) { memberList.add(ALEipUtils.getALEipUser(rd.getUserId().getValueWithInt())); } List<ALEipUserAddr> destMemberList = ALMailUtils.getALEipUserAddrs(memberList, ALEipUtils.getUserId(rundata), false); List<ALAdminMailMessage> messageList = new ArrayList<ALAdminMailMessage>(); for (ALEipUserAddr destMember : destMemberList) { ALAdminMailMessage message = new ALAdminMailMessage(destMember); message.setPcSubject(subject); message.setCellularSubject(subject); message.setPcBody(createTaskMemberMsg(rundata, message.getPcMailAddr(), task, project)); message.setCellularBody( createTaskMemberMsg(rundata, message.getCellMailAddr(), task, project)); messageList.add(message); } ALMailService.sendAdminMailAsync( new ALAdminMailContext( orgId, ALEipUtils.getUserId(rundata), messageList, ALMailUtils.getSendDestType(ALMailUtils.KEY_MSGTYPE_WORKFLOW))); } catch (Exception ex) { logger.error("project", ex); return false; } return true; }
/** * @param rundata * @param context * @param msgList * @return */ @Override protected boolean updateFormData(RunData rundata, Context context, List<String> msgList) { boolean res = true; try { ALBaseUser user = AccountUtils.getBaseUser(rundata, context); if (user == null) { return false; } // WebAPIのDBへ接続できるか確認 if (!ALDataSyncFactoryService.getInstance().getDataSyncHandler().checkConnect()) { msgList.add(ALLocalizationUtils.getl10n("ACCOUNT_ALERT_CONNECT_DB_FAILED")); return false; } // 新しいパスワードをセットする JetspeedSecurity.forcePassword(user, new_passwd.toString()); // ユーザを更新する JetspeedSecurity.saveUser(user); // WebAPIとのDB同期 if (!ALDataSyncFactoryService.getInstance().getDataSyncHandler().updateUser(user)) { return false; } ALBaseUser currentUser = (ALBaseUser) rundata.getUser(); if (currentUser.getUserName().equals(user.getUserName())) { currentUser.setPassword(user.getPassword()); } // イベントログに保存 ALEventlogFactoryService.getInstance() .getEventlogHandler() .log(Integer.valueOf(user.getUserId()), ALEventlogConstants.PORTLET_TYPE_ACCOUNT, null); } catch (Exception e) { logger.error("AccountPasswdFormData.updateFormData", e); res = false; } return res; }
/** * ロールをデータベースから削除します。 <br> * * @param rundata * @param context * @param msgList * @return TRUE 成功 FALSE 失敗 */ @Override protected boolean deleteFormData(RunData rundata, Context context, List<String> msgList) { try { String aclroleid = ALEipUtils.getTemp(rundata, context, ALEipConstants.ENTITY_ID); if (aclroleid == null || Integer.valueOf(aclroleid) == null) { // IDが空の場合 logger.debug("[AccessControlUtils] Empty ID..."); return false; } Expression exp = ExpressionFactory.matchDbExp(EipTAclRole.ROLE_ID_PK_COLUMN, aclroleid); SelectQuery<EipTAclRole> query = Database.query(EipTAclRole.class, exp); List<EipTAclRole> aclroles = query.fetchList(); if (aclroles == null || aclroles.size() == 0) { // 指定したIDのレコードが見つからない場合 logger.debug("[AccessControlUtils] Not found ID..."); return false; } // オブジェクトを削除(Cayenneのカスケード設定でEipTAclUserRoleMapも同時に削除) Database.delete(aclroles.get(0)); Database.commit(); // イベントログに保存 for (EipTAclRole role : aclroles) { ALEventlogFactoryService.getInstance() .getEventlogHandler() .log( role.getRoleId(), ALEventlogConstants.PORTLET_TYPE_ACCESSCTL, ALLocalizationUtils.getl10nFormat("ACCESSCTL_EVENTLOG_DELETE", role.getRoleName())); } } catch (Exception ex) { Database.rollback(); logger.error("AccessControlFormData.deleteFormData", ex); return false; } return true; }
/** * 文字の種類の表示名を取得します。 * * @return */ protected String getCharTypeByName() { switch (characterType) { case TYPE_ALPHABET: return ALLocalizationUtils.getl10n("COMMONS_FIELD_TYPE_ALPHABET"); case TYPE_NUMBER: return ALLocalizationUtils.getl10n("COMMONS_FIELD_TYPE_NUMBER"); case TYPE_HANKAKUKANA: return ALLocalizationUtils.getl10n("COMMONS_FIELD_TYPE_HANKAKUKANA"); case TYPE_MULTIBYTE: return ALLocalizationUtils.getl10n("COMMONS_FIELD_TYPE_MULTIBYTE"); case TYPE_ALPHABET_NUMBER: return ALLocalizationUtils.getl10n("COMMONS_FIELD_TYPE_ALPHABET_NUMBER"); case TYPE_ALPHABET_NUMBER_HANKAKUKANA: return ALLocalizationUtils.getl10n("COMMONS_FIELD_TYPE_ALPHABET_NUMBER_HANKAKUKANA"); case TYPE_SYMBOL: return ALLocalizationUtils.getl10n("COMMONS_FIELD_TYPE_SYMBOL"); case TYPE_ASCII: return ALLocalizationUtils.getl10n("COMMONS_FIELD_TYPE_ASCII"); } // 文字種別無指定 return ""; }
@Override protected Object getResultData(VEipTScheduleList record) throws ALPageNotFoundException, ALDBErrorException { ScheduleOnedayResultData rd = new ScheduleOnedayResultData(); rd.initField(); try { if ("R".equals(record.getStatus())) { return rd; } if (!ScheduleUtils.isView( view_date, record.getRepeatPattern(), record.getStartDate(), record.getEndDate())) { return rd; } boolean is_member = record.isMember(); // Dummy スケジュールではない // 完全に隠す // 自ユーザー以外 // 共有メンバーではない // オーナーではない if ((!"D".equals(record.getStatus())) && "P".equals(record.getPublicFlag()) && (userid != record.getUserId().intValue()) && (userid != record.getOwnerId().intValue()) && !is_member) { return rd; } else if (!hasAclviewOther && !is_member) { // 閲覧権限がなく、グループでもない return rd; } if ("C".equals(record.getPublicFlag()) && (userid != record.getUserId().intValue()) && (userid != record.getOwnerId().intValue()) && !is_member) { rd.setName(ALLocalizationUtils.getl10n("SCHEDULE_CLOSE_PUBLIC_WORD")); // 仮スケジュールかどうか rd.setTmpreserve(false); } else { rd.setName(record.getName()); // 仮スケジュールかどうか rd.setTmpreserve("T".equals(record.getStatus())); } // ID rd.setScheduleId(record.getScheduleId().intValue()); // 親スケジュール ID rd.setParentId(record.getParentId().intValue()); // 開始日時 rd.setStartDate(record.getStartDate()); // 終了日時 rd.setEndDate(record.getEndDate()); // 公開するかどうか rd.setPublic("O".equals(record.getPublicFlag())); // 非表示にするかどうか rd.setHidden("P".equals(record.getPublicFlag())); // ダミーか rd.setDummy("D".equals(record.getStatus())); // ログインユーザかどうか rd.setLoginuser(record.getUserId().intValue() == userid); // オーナーかどうか rd.setOwner(record.getOwnerId().intValue() == userid); // 共有メンバーかどうか rd.setMember(is_member); // 繰り返しパターン rd.setPattern(record.getRepeatPattern()); // 期間スケジュールの場合 if (rd.getPattern().equals("S")) { return rd; } if (!rd.getPattern().equals("N")) { // 繰り返しスケジュール if (!ScheduleUtils.isView( view_date, rd.getPattern(), rd.getStartDate().getValue(), rd.getEndDate().getValue())) { return rd; } rd.setRepeat(true); } con.addResultData(rd, 0, 24, view_date); } catch (Exception e) { logger.error("schedule", e); return null; } return rd; }
/** * フォームに入力されたデータの妥当性検証を行います。 <br> * * @param msgList * @return TRUE 成功 FALSE 失敗 */ @Override protected boolean validate(List<String> msgList) { String tmp_acl_role_name = acl_role_name.getValue(); if (tmp_acl_role_name != null && !"".equals(tmp_acl_role_name)) { // ロール名の重複をチェックする try { SelectQuery<EipTAclRole> query = Database.query(EipTAclRole.class); if (ALEipConstants.MODE_INSERT.equals(getMode())) { Expression exp = ExpressionFactory.matchExp(EipTAclRole.ROLE_NAME_PROPERTY, tmp_acl_role_name); query.setQualifier(exp); } else if (ALEipConstants.MODE_UPDATE.equals(getMode())) { Expression exp1 = ExpressionFactory.matchExp(EipTAclRole.ROLE_NAME_PROPERTY, tmp_acl_role_name); query.setQualifier(exp1); Expression exp2 = ExpressionFactory.noMatchDbExp( EipTAclRole.ROLE_ID_PK_COLUMN, Integer.valueOf(acl_role_id)); query.andQualifier(exp2); } if (query.fetchList().size() != 0) { msgList.add( ALLocalizationUtils.getl10nFormat( "ACCESSCTL_ALERT_ALREADY_CREATED", acl_role_name.toString())); } } catch (Exception ex) { logger.error("AccessControlFormData.validate", ex); return false; } } // ロール名 acl_role_name.validate(msgList); // メモ note.validate(msgList); acllist.validate(msgList); acldetail.validate(msgList); aclinsert.validate(msgList); aclupdate.validate(msgList); acldelete.validate(msgList); aclexport.validate(msgList); // アクセス権限 if (acllist.getValue() == 0 && acldetail.getValue() == 0 && aclinsert.getValue() == 0 && aclupdate.getValue() == 0 && acldelete.getValue() == 0 && aclexport.getValue() == 0) { msgList.add(ALLocalizationUtils.getl10n("ACCESSCTL_ALERT_NO_FEATURE_SELECTED")); } // 所属メンバー if (memberList.size() == 0) { msgList.add(ALLocalizationUtils.getl10n("ACCESSCTL_ALERT_NO_MEMBER_SELECTED")); } else { try { // 同一機能の他ロールには所属できないようにする List<Integer> uids = new ArrayList<Integer>(); int msize = memberList.size(); for (int i = 0; i < msize; i++) { ALEipUser user = memberList.get(i); uids.add(Integer.valueOf((int) user.getUserId().getValue())); } SelectQuery<EipTAclRole> rolequery = Database.query(EipTAclRole.class); Expression exp11 = ExpressionFactory.matchDbExp( EipTAclRole.EIP_TACL_PORTLET_FEATURE_PROPERTY + "." + EipTAclPortletFeature.FEATURE_ID_PK_COLUMN, Integer.valueOf((int) feature_id.getValue())); Expression exp12 = ExpressionFactory.inDbExp( EipTAclRole.EIP_TACL_USER_ROLE_MAPS_PROPERTY + "." + EipTAclUserRoleMap.TURBINE_USER_PROPERTY + "." + TurbineUser.USER_ID_PK_COLUMN, uids); rolequery.setQualifier(exp11.andExp(exp12)); if (ALEipConstants.MODE_UPDATE.equals(getMode())) { Expression exp13 = ExpressionFactory.noMatchDbExp( EipTAclRole.ROLE_ID_PK_COLUMN, Integer.valueOf(acl_role_id)); rolequery.andQualifier(exp13); } List<EipTAclRole> roleList = rolequery.fetchList(); if (roleList != null && roleList.size() != 0) { msgList.add(ALLocalizationUtils.getl10n("ACCESSCTL_ALERT_OTHER_ROLE")); } } catch (Exception ex) { logger.error("AccessControlFormData.validate", ex); return false; } } return (msgList.size() == 0); }
/** * @param record * @return * @throws ALPageNotFoundException * @throws ALDBErrorException */ @Override protected Object getResultData(VEipTScheduleList record) throws ALPageNotFoundException, ALDBErrorException { ScheduleOnedayResultData rd = new ScheduleOnedayResultData(); rd.initField(); try { if ("R".equals(record.getStatus())) { return rd; } if (!ScheduleUtils.isView( getViewDate(), record.getRepeatPattern(), record.getStartDate(), record.getEndDate())) { return rd; } boolean is_member = record.isMember(); // Dummy スケジュールではない // 完全に隠す // 自ユーザー以外 // 共有メンバーではない // オーナーではない if ((!"D".equals(record.getStatus())) && "P".equals(record.getPublicFlag()) && (userid != record.getUserId().intValue()) && (userid != record.getOwnerId().intValue()) && !is_member) { return rd; } else if (!hasAclviewOther && !is_member) { // 閲覧権限がなく、グループでもない return rd; } if ("C".equals(record.getPublicFlag()) && (userid != record.getUserId().intValue()) && (userid != record.getOwnerId().intValue()) && !is_member) { rd.setName(ALLocalizationUtils.getl10n("SCHEDULE_CLOSE_PUBLIC_WORD")); // 仮スケジュールかどうか rd.setTmpreserve(false); } else { rd.setName(record.getName()); // 仮スケジュールかどうか rd.setTmpreserve("T".equals(record.getStatus())); } // ID rd.setScheduleId(record.getScheduleId().intValue()); // 親スケジュール ID rd.setParentId(record.getParentId().intValue()); // 開始日時 rd.setStartDate(record.getStartDate()); // 終了日時 rd.setEndDate(record.getEndDate()); // 公開するかどうか rd.setPublic("O".equals(record.getPublicFlag())); // 非表示にするかどうか rd.setHidden("P".equals(record.getPublicFlag())); // ダミーか rd.setDummy("D".equals(record.getStatus())); // ログインユーザかどうか rd.setLoginuser(record.getUserId().intValue() == userid); // オーナーかどうか rd.setOwner(record.getOwnerId().intValue() == userid); // 共有メンバーかどうか rd.setMember(is_member); // 繰り返しパターン rd.setPattern(record.getRepeatPattern()); // ユーザもしくは設備のコンテナを取得する. ScheduleOnedayContainer con = null; if (ScheduleUtils.SCHEDULEMAP_TYPE_USER.equals(record.getType())) { con = map.get(record.getUserId()); } else { // if (ScheduleUtils.SCHEDULEMAP_TYPE_FACILITY.equals(record.getType())) // の場合 con = facilitymap.get(record.getUserId()); } // 期間スケジュールの場合 if (rd.getPattern().equals("S")) { is_hasspan = true; List<ScheduleOnedayResultData> terms = termmap.get(record.getUserId()); if (terms != null) { // 期間スケジュールを格納 terms.add(rd); } return rd; } if (!rd.getPattern().equals("N")) { // 繰り返しスケジュール if (!ScheduleUtils.isView( getViewDate(), rd.getPattern(), rd.getStartDate().getValue(), rd.getEndDate().getValue())) { return rd; } rd.setRepeat(true); } con.addResultData(rd, startHour, endHour, getViewDate()); } catch (Exception e) { logger.error("schedule", e); return null; } return rd; }