Open soucemi opened 13 years ago
Pri commitovani a pridavani souboru nebud(te) tak aktivni!
Soubory .jar, .class a podobne vubec nepotrebujeme mit online!
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 ;)
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:
Bude to samozrejme v ukazkovym/testovacim klientu, takze tam se doporucuju inspirovat (snazim se commitovat pouze funkcni veci)
č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..
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...
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)..
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
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)
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
Na tohle vsechno si nakonec jeste pockate. Prave jsem celou praci zrusil a zda se, ze to zpatky nenahodim...shit
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..
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....
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).