• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Удаление записей

  • Автор темы pokerkmx
  • Дата начала
P

pokerkmx

Хочу удалить ненужные записи из карточек пользователя. После выполнения проверяю - свойство count полей MajVer, MinVer, QMRVer, QMUVer, HotVer, FixPVer, FlagsVer, ClntDgst остаётся прежним. В чём может быть причина? Спасибо.

Java:
import java.util.Date;
import java.util.Vector;
import lotus.domino.*;
 
public class JavaAgent extends AgentBase{
private String[] fields={"ClntBld","ClntDate","ClntDgst","ClntMachine","ClntPltfrm","FixPVer","FlagsVer","HotVer","MajVer","MinVer","QMRVer","QMUVer"};
 
	public void NotesMain(){
	 try
	 {
	 Session session = getSession();
	 Database db=session.getDatabase("nameserver", "names.nsf");
	 DocumentCollection dc=db.search("Type=\"Person\" & LocalAdmin=\""+session.getUserName()+"\"");
	 Document tmpdoc;
	 Document doc = dc.getFirstDocument();
	 while (doc != null)
	 {
	 if (doc.getItemValue("ClntMachine").size()>1) WorkWithDocument(doc);
			 tmpdoc = dc.getNextDocument();
			 doc.recycle();
			 doc = tmpdoc;
	 }
	 session.recycle();
	 }
	 catch(Exception e){e.printStackTrace();}
	}
	
	private void WorkWithDocument(Document doc) throws NotesException
	{
	 Vector times = doc.getItemValueDateTimeArray("ClntDate");
	 Date max = getJavaDate(times.elementAt(0));
	 int max_ind=0;
	 for (int j=1; j<times.size(); j++)
	 {
	 Date time=getJavaDate(times.elementAt(j));
	 if (time.compareTo(max)>0) {max=time;max_ind=j;}
	 }
	 for (int i=0;i<fields.length;i++)
	 doc.replaceItemValue(fields[i], doc.getItemValue(fields[i]).elementAt(max_ind));
	 doc.save();
	}
	
	private Date getJavaDate(Object o) throws NotesException{return ((DateTime)o).toJavaDate();}
}
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
а где тут удаление полей?
Я тут вижу только замену всех элементов поля на значение последнего элемента этого же поля.

Ну и просто интересно... а что это за цикл?
Java:
for (int j=1; j<times.size(); j++)
{
Date time=getJavaDate(times.elementAt(j));
if (time.compareTo(max)>0) {max=time;max_ind=j;}
}
 
Последнее редактирование модератором:
P

pokerkmx

а где тут удаление полей?
Я тут вижу только замену всех элементов поля на значение последнего элемента этого же поля.

Ну и просто интересно... а что это за цикл?
Java:
for (int j=1; j<times.size(); j++)
{
Date time=getJavaDate(times.elementAt(j));
if (time.compareTo(max)>0) {max=time;max_ind=j;}
}

Хочу оставить в карточке пользователя только информацию о последнем ПК. Нахожу позднюю дату, в остальных полях оставляю значения с этим же индексом, остальное удаляю.
 
P

pokerkmx

На локальной копии работает, на сервере - нет.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
изменяй через временную переменную.
На сервере в консоли ошибки есть?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 927
608
BIT
150
а что подвигло итератор через индекс писать? индекс имен полей же вам не нужн
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 927
608
BIT
150
да и похорошему - надоб все в link removed маньячить, а не в консоль, напрямую
а уж логер потом настраивать
 
Последнее редактирование модератором:
  • Нравится
Реакции: pokerkmx

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 927
608
BIT
150
типа того
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!