Sera que eu sou burro

[quote=JackOld]Mas e se não for você que irá dar manutenção nesse código??

Tem que escrever o código o mais legível possível!! Pense nisso, revise o código!!

Só uma pergunta, você sabe o que esse código está fazendo??[/quote]

como eu disse eu fiz o codigo so q eu vi depois uma parte dele na net pronto, dai eu peguei como tinha que mudar usei as mesmas variaveis desse codigo da net

me explica o codigo?

Não tem nenhum comentário no seu código, isso também é importante.

Se fosse aqui na empresa, os caras iriam te bater, até você fazer do jeito certo.

Da uma olhada nesse pdf aqui:

http://www.lcad.icmc.usp.br/~jbatista/sce537/mat/javadoc.pdf

Não sei se você já usou Javadoc, apesar de ter pessoas que acham inútil, ele te ajuda e muito a tornar teu código mais fácil de entender/dar manutenção.

Crio a conexao como num banco de dados.

[code]private DirContext connect() throws NamingException{

	Hashtable env = new Hashtable();
	env.put(Context.INITIAL_CONTEXT_FACTORY, 
	    "com.sun.jndi.ldap.LdapCtxFactory");
	env.put(Context.PROVIDER_URL, "ldap://192.168.0.10:389");

	env.put(Context.SECURITY_AUTHENTICATION, "simple");
	env.put(Context.SECURITY_PRINCIPAL, "CN=Teste,OU=Fabrica,OU=Departamentos,DC=teste,DC=com");
	env.put(Context.SECURITY_CREDENTIALS, "teste");		
	
	DirContext ctx = new InitialDirContext(env);

	return ctx;

}[/code]

Listo os usuarios buscados emuma tabela

[code]public List getUsers() throws NamingException{

	DirContext ctx = this.connect();
	
	SearchControls ctls = new SearchControls();
	ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
	String attrs[] = {"userAccountControl","sAMAccountName","cn", "telephoneNumber", "sn", "userPrincipalName","memberOf","name","mail"};
	ctls.setReturningAttributes(attrs);
	
	String filter = "(objectClass=User)";

	NamingEnumeration answer = ctx.search(CONTEXT_URL, filter, ctls);
	
	List<User> users = new ArrayList<User>();
	
	while(answer.hasMoreElements()){
		SearchResult sr = (SearchResult) answer.next();
		Attributes attrbs = sr.getAttributes();
		
		String name = attrbs.get("name") ==null ?"":attrbs.get("name").toString().split(":")[1];
		String samId = attrbs.get("sAMAccountName") ==null ?"":attrbs.get("sAMAccountName").toString().split(":")[1];
		String cn = attrbs.get("cn") ==null ?"":attrbs.get("cn").toString().split(":")[1];
		String telephoneNumber = attrbs.get("telephoneNumber") ==null ?"":attrbs.get("telephoneNumber").toString().split(":")[1];
		String sn = attrbs.get("sn") ==null ?"":attrbs.get("sn").toString().split(":")[1];
		String userPrincipalName = attrbs.get("userPrincipalName") ==null ?"":attrbs.get("userPrincipalName").toString().split(":")[1];
		String mail = attrbs.get("mail") ==null ?"":attrbs.get("mail").toString().split(":")[1];
		String memberOf = attrbs.get("memberOf") ==null ?"":attrbs.get("memberOf").toString().split(":")[1];
	
		User user = new User(name,samId,cn,telephoneNumber,sn,userPrincipalName,mail,memberOf);

		users.add(user);
	}
	
	ctx.close();
	
	return users;

}[/code]

Disabilita o usuario no ad pq qdo c clica la na tela do ad para desabilitar um valor inteiro la muda de 115 para 118 se nao me engano

[code]public void disableUser(String name) throws NamingException {
DirContext ctx = this.connect();

	int UF_ACCOUNTDISABLE = 0x0002;
	int UF_PASSWD_NOTREQD = 0x0020;
	int UF_PASSWD_CANT_CHANGE = 0x0040;
	int UF_NORMAL_ACCOUNT = 0x0200;
	int UF_DONT_EXPIRE_PASSWD = 0x10000;
	int UF_PASSWORD_EXPIRED = 0x800000;
	
	ModificationItem[] mods = new ModificationItem[1];
	mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("userAccountControl",Integer.toString(UF_NORMAL_ACCOUNT + UF_ACCOUNTDISABLE)));

	ctx.modifyAttributes(name, mods);

	ctx.close();
}[/code]

deleta o usuario pelo nome

[code]public void deleteUser(String name) throws NamingException {
DirContext ctx = this.connect();

	ctx.unbind(name);
	
	ctx.close();
}[/code]

Aqui é o preenchimento da minha tabela

[code]protected Control createDialogArea(Composite parent) {
Composite composite = new Composite(parent,SWT.NONE);
composite.setLayout(new GridLayout(1,false));
composite.setLayoutData(new GridData(GridData.FILL_BOTH));

	table = new Table(composite,SWT.BORDER | SWT.CHECK | 
            SWT.MULTI | SWT.FULL_SELECTION);
	table.setLayoutData(new GridData(GridData.FILL_BOTH));
	
	clnName = new TableColumn(table,SWT.LEFT);
	clnName.setText("Nome");
	samId = new TableColumn(table,SWT.LEFT);
	samId.setText("SAM ID");
	clnCn = new TableColumn(table,SWT.LEFT);
	clnCn.setText("Nome Comum");
	clnTelephoneNumber = new TableColumn(table,SWT.LEFT);
	clnTelephoneNumber.setText("Telefone");
	clnSn = new TableColumn(table,SWT.LEFT);
	clnSn.setText("Sobrenome");
	clnUserPrincipalName = new TableColumn(table,SWT.LEFT);
	clnUserPrincipalName.setText("Nome Principal");
	clnMail = new TableColumn(table,SWT.LEFT);
	clnMail.setText("E-mail");
	clnMemberOf = new TableColumn(table,SWT.LEFT);
	clnMemberOf.setText("Membro de:");

	table.setLinesVisible(true);
	table.setHeaderVisible(true);
	
	this.fillTable();
	
	for(TableColumn c : table.getColumns()){
		c.pack();
	}
	
	return super.createDialogArea(composite);
}

private void fillTable() {
	Access a = new Access();
	try {
		
		List<User> users = a.getUsers();
		
		for(User user : users){

			TableItem itm = new TableItem(table,SWT.NONE);
			itm.setText(new String[]{user.getName(),user.getSamId(),user.getCn(),user.getTelephoneNumber(),user.getSn(),user.getUserPrincipalName(),user.getMail(),user.getMemberOf()});
			itm.setChecked(true);
			
		}
		
	} catch (NamingException e) {
		e.printStackTrace();
	}
}[/code]

Aqui é quando eu clico no botao desabilitar que muda la o atributo

[code]private void disablePressed() {

	for(TableItem item : table.getItems()){
		if(item.getChecked()){
			if(MessageDialog.openConfirm(this.getShell(), "", "Deseja desabilitar o usuário " + item.getText(0) + "?")){
				String name = "CN=";
				String att[] = (item.getText(2).trim()+","+item.getText(7).trim()).split(",");
				for(String s : att){
					if(!s.startsWith("CN="))
						name += s + ",";
				}
				name = name.substring(0, name.length()-1);
				
				Access a = new Access();
				try {
					a.disableUser(name);
					MessageDialog.openInformation(this.getShell(), "", "Usuário desabilitado.");
					item.setForeground(new Color(this.getShell().getDisplay(),new RGB(200,0,0)));
				} catch (NamingException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
}[/code]

a parte de deletar nao fiz mas é so passar o nome que deleta normal nao fiz pq tava sem base de teste

a cara é foda pq eu desenvolvo utilizando força bruta msm sabe e normalmente nao tenho ambiente de teste aqui na empresa, entao tipo toda hora eu modifico meu codigo entao fica modificando comentario tb eh foda

é, vc não é burro não, vc é doido!!! :lol: :lol: :lol: :lol:
pede mais prazo e estuda… ou pede demissão e estuda…
de qualquer forma, vc tá indo bem, só precisa de mais tempo pra estudar…

bixu, pelo que estou vendo essa empresa aí é bagunça…sai fora enquanto é tempo…

[quote=alindre]é, vc não é burro não, vc é doido!!! :lol: :lol: :lol: :lol:
pede mais prazo e estuda… ou pede demissão e estuda…
de qualquer forma, vc tá indo bem, só precisa de mais tempo pra estudar…[/quote]

pq q eu seria doido-.-

posso pedi demissao nao ja tenho 19 anos e preciso de grana,pois nao posso fica dependendo de pai e mae neh xD

o problema é que a empresa meche com integraçao de dados e consultoria nada a ve com programaçao, mas aqui é bom todo mundo me trata super bem e tem um ambiente de trabalho muito bom, dai num rola de da tiro no escuro

é foda esse lance de grana…

pois é dai eu preciso pegar toda experiencia aqui e sair fora pra cair no mercado o problema eh que eu nao consigo evoluir tanto pq eu travo mto nas minhas codificaçoes, tipo coisas bobas dai eu fico parado que nem hj to parado a 1 dia tentando saber como eu começo fazendo um hibernate e nem tenho nada pronto ainda -.- eu tenho dificuldades ate pra conseguir fazer download de bibliotecas jar auhahuuha

É bicho aí fica difícil, por que saber os downloads das bibliotecas também é básico. Você deveria encontrar um estágio pra tirar essas dúvidas iniciais, depois pensar em assumir alguma coisa mais complexa.

É bicho aí fica difícil, por que saber os downloads das bibliotecas também é básico. Você deveria encontrar um estágio pra tirar essas dúvidas iniciais, depois pensar em assumir alguma coisa mais complexa.[/quote]

tudo bem me indica uma empresa que contrata estagiario de java em belo horizonte… nao tem, estagio é para suporte -.- hoje em dia é dificil arrumar um estagio que realmente seja um estagio e voce nao esteja ali como mao de obra barata. ta certo q no meu trabalho ganho miseravelmente, mas porem tenho chance de reconhecimento no mercado neh.

BH !!!

Tá doido!!!

em BH o mercado é muito melhor que aqui na minha cidade, e aqui tem bastante estágio…

bom mas aí vem a pergunta, quer um estágio ganhando quanto? rs

[quote=alindre]BH !!!

Tá doido!!!

em BH o mercado é muito melhor que aqui na minha cidade, e aqui tem bastante estágio…

bom mas aí vem a pergunta, quer um estágio ganhando quanto? rs
[/quote]

ahh num é assim nao eu procurei q nem louco ate achar esseemprego que eu estou…
velho por enquanto da pra ser um estagio ganhando ate 500 conto ta bom

rapaz sou do ES, o pessoal daqui viu oq vc falou e que conhecem disse que o que mais tem ai em BH é estagio pra Java e PHP. A única coisa que o mercado aí é mais exigente.

po cara eu tava a uns 4 a 5 meses caçando um estagio em java e nada de encontrar, mas eu fui fazer um curso de java basico so em julho agora portanto antes nao sabia muito e continuo nao sabendo… mas msm assim eu nem para entrevista sou chamado.