Spravce-Ukolu-Tym / Spravce-ukolu

Aplikace pro správu zadaných úkolů
1 stars 0 forks source link

Klient #26

Open soucemi opened 13 years ago

soucemi commented 13 years ago

A nekdo by mohl zacit pracovat na klientu. Tuhle issue asi budu zneuzivat i k pripadnymu informovani o zmenach v rozhranich a podobne.

Pro zacatek doporucuju vytvorit nejakej novej package (treba GuiClient), nastavit ho jako spousteci a inspirovat se tim co je v existujicim clientu - to bych si rad ponechal pro testovani (gui je nepohodlny pro testovani).

soucemi commented 13 years ago

Pri commitovani a pridavani souboru nebud(te) tak aktivni!

Soubory .jar, .class a podobne vubec nepotrebujeme mit online!

soucemi commented 13 years ago

Tak a ted koukam, ze jsem zpusobil docela dost problemu odstranenim metod "getPermission....()", ktery mely bejt puvodne chapany jako pouze serverova zalezitost, konkretni opravneni/role jsem chtel resit pomoci usr.getRoles().

michato4: jen jsem te pridal abych mel jistotu, ze si tu toho vsimnes (kdyztak se odeber, kdyby to obtezovalo a mel's to zarizeny jinak)

co se tyce config souboru, doporucuju se inspirovat tim testovacim clientem - akorat misto projizdeni args[] jet radek po radku v config.txt, format pak mit treba takyhle:

server=http://nq.s.net/con a podobne port=666

No, a jako takovej bonus: config.TXT a config.txt jsou na linuxu dva rozdilny soubory ;)

soucemi commented 13 years ago

Taak, a jelikoz jsem si uvedomil, ze tam robim docela velikou diru, tak prichazi dalsi zmena, prihlasovani bude trosku slozitejsi:

Puvodne se posilalo po siti heslo v plaintextu. To neni asi uplne nejlepsi napad, ze? Posilat heslo jako hash je napad jen o malinko lepsi, porad je spatnej (odchytnu hash a s nim se v pohode prihlasim). Proto je potreba solit a to nejlip necim, co prijmu od serveru. Takze postup je takovejhle:

  1. Necham server vytvorit tzv "sůl" (long sid = iConnector.createLoginSession())
  2. Stahnu si sul: (String salt = iConnector.getPasswordSalt(sid))
  3. Heslo (pass) co zadal uzivatel zahashuju konkretne takhle: String passhash = md5(md5(pass) + salt)
  4. Standardni prihlaseni s predanim session ID: iConnector.Login(sid, username, passhash)

Bude to samozrejme v ukazkovym/testovacim klientu, takze tam se doporucuju inspirovat (snazim se commitovat pouze funkcni veci)

michato4 commented 12 years ago

čau, docela postrádám v tom rozhraní nějaký metody pro celkové výpisy.. např. pro výpis všech možných schopností, uživatelů apod. takhle nemám čím plnit ty různý comba a tabulky..

soucemi commented 12 years ago

Ted stejne nic z toho nefunguje (a bohuzel toho tenhle vikend asi moc neudelam, blba statistika :( ):

Pro vypis vsech moznych schopnosti je UserManager->listAbilities() (UserManager by mel jit ziskat z jakykoliv PrivilegedRole).

Vypis uzivatelu opravdu nevidim, chces-li, tak do UserManager pridej User[] listUsers (ted si uvedomuju dalsi z krutejch chyb pri navrhu, takze vznikne pravdepodobne class UserInfo, ktera bude vracena prave na tyhle listUser).

Cokoliv konkretniho bude chybet tak to napis a aspon reknu, kde to cekat, kam to pridat atd. Nekdy ve stredu bych snad moh spoustu veci ohledne serveru dodelat. Ted to bohuzel proste nezvladam...

michato4 commented 12 years ago

tak tady je něco co by se mi hodilo až se k tomu dostaneš mít tedy naimplementovaný nejdříve :)

listUsers listAbilites getTasksByUser u Tasku: getProject (pro zjištění, ke kterému projektu úkol náleží) něco v Tasku na odevzdání úkolu (nevím přesně jaká metoda je na to zamýšlena)..

soucemi commented 12 years ago

listUsers ( UserManager.listAllUsers()) a listAbilities jsou hotovy. Na ten zbytek bude potreba udelat jeste kupu dalsich jinejch veci, takze mi to potrva dyl.

Ohledne odevzdani ukolu: void reject(String Reason) //odmitnuti ukolu void returnTask() //odevzdani

soucemi commented 12 years ago

Vy, kdoz mate svou malou, soukromou databazi a nepripojujete se na tu online na nextquest.vserver.cz, pak si pustte tohle:

ALTER TABLE Projects ADD idLeader int AFTER idUserCreatedBy;

(a asi se zeptejte michato4 jak zprovoznit server u sebe na windows. tamten clovik se mi stale neozval a ja to nemam kam jinam dat a stejne jako DB to nerozjedu, protoze to fici na openvz kde jsou s javou problemy)

soucemi commented 12 years ago

Tak jsem zase spoustu veci zprasil. Musim udelat commit&push, jinak se zase zcvoknu z mergeovani....

Upravy:

Hodne uprav ohledne Task - celej konstruktor, par metod pribylo a par jsem musel nechat zmizet, protoze byly nepohodlny

Uz neni jen User ale je i UserInfo (rozdil je snad zrejmej - User patri opravdu uzivateli, UserInfo je samostatny). Do budoucna (bude-li cas, chut a moznost) bude vetsina veci z User odstranena a kazdej User bude mit svoje UserInfo, at tam nejsou redudantni data...

Uz neni interface iProject. Ten jsem nechal zmizet taky, nebude potreba. Bude jen "Project" (v nextQuest.server) s funkci "ProjectInfo" tzn jenom informace o projektu (co taky vic chtit?)

Mala uprava ProjectManageru - createProject uz ma nejakej parametr (bere "Project" jakoze projectInfo), pribylo listProjects

soucemi commented 12 years ago

Na tohle vsechno si nakonec jeste pockate. Prave jsem celou praci zrusil a zda se, ze to zpatky nenahodim...shit

michato4 commented 12 years ago

to soucemi: nějak mi nejde ten tvuj zkusebni konzolovy klient.. po spusteni z toho mam nasledujici vystup+vyjimku:

Client starting... Connected... Login:root Password:heslo Loged in! I am 'The Root', permissions: Admin permission... Leader permission... Personalist permission... Exception in thread "main" java.lang.ClassCastException: $Proxy10 cannot be cast to nextQuest.server.Task at nextQuest.server.TaskManagerLeader.assignTasksManually(TaskManagerLeader.java:43) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) at sun.rmi.transport.Transport$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Unknown Source) at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142) at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178) at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132) at $Proxy7.assignTasksManually(Unknown Source) at nextQuest.client.nextQuestClient.CreateSomeTasks(nextQuestClient.java:221) at nextQuest.client.nextQuestClient.main(nextQuestClient.java:150) Java Result: 1

tobe to chodi? já tam měl už po pullu z repozitáře nějakou chybu ve zdrojácích serveru, tak si nejsem jisty, jeslti jsi tam přidal všechno..

soucemi commented 12 years ago

To chce cist commit-zpravy. Nefunguje Assign kvuli tomu, jak JRMI pracuje a ja jeste nevim, jak to dat dokupy...

vic tu: http://docs.oracle.com/javase/1.4.2/docs/guide/rmi/faq.html#caststub

Tohle jeste nejak vyresim, zatim se bude treba obejit bez assign....