PasswordProtectedPreferences/fi
From Wiki.ooo4kids.org
|
Asetusten salasana |
Kaikki alkuperäiseen OpenOffice.org-lähdekoodiin tällä sivulla esitetyt muutokset ovat:
- LGPLv3-käyttöoikeuden alaisia ( ja voit jakaa ja/tai muokata lähdekoodia Free Software Foundation -säätiön jukaisemien GNU Lesser General Public License -ehtojen rajoissa)
- Tekijänoikeudet: Eric Bachard, tammikuu 2010
Esittely
Alempana on uuden asetusten salasanasuojauksen ominaisuuksien tekninen kuvaus. Kyse on OpenOffice.org-lähdekoodista (pääosassa C++). Tarkemmin sanottuna esillä ovat uusi SfxPasswordDialog-toteutus, uusi käyttöliittymä (vihreä/punainen lukko), salasanan lukemisen/kirjoittamisen kuvaus, yksi boolen arvo Common.cxu-tiedostossa (pääosin UNO-asiaa) ja kuvaus muutoksista luokissa: OfaMiscTabPage (painikkeiden lisäys ja hallinnointi), OfaTreeOptionsDialog (asetusten muutosten hallinta, piirteen tilasta riippuen, käytössä/sammutettuna).
Tämän artikkelin lukemisen esitietovaatimukset ovat vielä määrittelmättä, mutta jos lukija ei tunne joitakin merkitöjä, pyydämme häntä lukemaan: OpenOffice.org wiki. Näin lukija voi täydentää tietojaan aiheesta ja ymmärtää paremmin tämän artikkelin.
VEDOS, TÄYDENNETTÄVÄ
Ideana on salasanasuojata asetukset (oletussalasana: prof), jolloin estetään epäjärjestyksen syntyminen asetusten muuttamisen kautta.
Periaatteet
Lapset pitävät kokeilemisesta. Useimmilla oppilailla on hyvät taidot kokeiluihin, mutta tämä ei ole sitä, mitä opettaja odottaisi :-) Niinpä tämän ominaisuuden tavoite on toteuttaa, älykkäästi, asetusten suojaus, joka:
- estää oppilaita muuttamasta tarpeettomasti jotain
- mutta sallii oppilaiden napsauttaa ja katsella kaikkea haluamaansa (kirjoitussuojatussa tilassa)
Tärkeää: tämä ominaisuus suojaa OOo4Kidsiä vain lasten hakkeroinnilta, mutta ei ole tietoturva (salasana on luettavissa Common.xcu:sta)
Säännöt:
- Jos ominaisuus otetaan käyttöön, oletussalasana on: prof
- Oletuksena asetukset ovat aluksi lukitsematta
- Suojauksen aktivoimiseksi napsautetaan vain "Napsauta muutosten estämiseksi".
=> Ole varovainen: suojaus hyväksytään valintaikkunan sulkeutuessa, eikä muutos ole palautettavissa! Tarkoittaa, että kerran aktivoituna, tarvitset salasanan toiminnon poistamiseksi käytöstä.
Näytön tilat:
- Vihreä lukko ikkunan alaosassa tarkoittaa: lukitsemattomat asetukset
- Punainen lukko ikkunan alaosassa tarkoittaa: lukitut asetukset
(vihreä) Lukko auki
- Kaikki voivat lukea asetustietoja ja tarkistaa vallitsevat asetukset.
- Asetusten muokkaamiseksi on tarpeen napsauttaa punaista lukkoa (vihreän lukon napsauttaminen ei tee mitään).Napsautus avaa valintaikkunan, jossa kysytään salasanaa (muista: oletussalasana on prof). Jos annettu salasana kelpaa, lukko muuttuu vihreäksi ja käyttäjä voi tehdä haluamiaan muutoksia asetuksiin. Annettu salasana vaikuttaa kunnes Työkalut -> Asetukset-valintaikkuna suljetaan.
- Kun kelvollinen salasana on annettu ja vihreä lukko näkyy, käyttäjä voi sammuttaa "Käyttöasetusten salasanasuojaus -toiminnon".
(punainen) Lukko kiinni
Suojauksen poistaminen
Salasanan vaihtaminen
Huomioi: työkalupalkit säilyvät muokattavina.
Suunnitelma nro: 01
- ehdotetut kuvakkeet 24x24
VAIHE 01
- Käyttäjä avaa valikon "Asetukset" (päävalikosta tai pikanäppäimin, esim. Mac OS X:ssä)
VAIHE 02
- Asetusten valintaikkuna tulee esille kaikki näkyvissä muttei muokattavissa (OK-painike ei enää toimi normaalisti. Se palauttaa muokatut arvot entiselleen napsautettaessa)
- Käyttäjän on napsautettava lukitse/vapauta -painiketta
- Puute: Napsautus "Peruuta"-painikkeessa tai "ESC"-näppäin palauttavat OOo4Kidsin työtilaan
- tulee tehtyä, ei ongelma
- Ehdotus: Aktiivinen "Peruuta"-painike pitää tasata lukko-painikkeen kanssa
VAIHE 03
- Vapauta-painikkeen napsautus tuo esille salasanan antamiseen valintaikkunan.
VAIHE 04
- Jos salasana kelpaa:
- Kaikki asetukset ovat nyt käytettävissä ja käyttäjä voi muuttaa niitä
- Asetusvalintaikkunan sulkeminen päättää ominaisuuden vaikutuksen
- Jos salasana on väärä:
- Esille tulee virheilmoitus ja käyttäjän on napsautettava OK:ta jatkaakseen
- Palaamme edelliseen valintaikkunaan ( kirjoitussuojatussa tilassa )
- Suoritetaan vaihe kelvollisin salasanoin
- tai napsautetaan Peruuta, jolloin palataan OOo4Kidsin työtilaan
Suunnittelu
=> Työt etenevät
Huomoitavat moduulit:
- officecfg: muokattu .xcu ( Common.cxu) + muokattu .xcs ovat mukana.
- sfx2: SfxPasswordDialog -modaalinen valintaikkuna on toteutettu täällä. Muut metodit on lisätty ja paluuarvon korjaus on lisätty. Ilmennämme SfxPasswordDialog kahdessa tapauksessa: salasanan syöttö ja salasanan muutos. Salasanan vähimmäispituus asetetaan 4 kirjaimeksi.
- svx : Muu-välilehti (OaMiscTabPage -luokka) ja puuasetukset (OfaTreeOptionsDialog) -valintaikkunoita käytetään. Edellinen hallinnoi tietojen asettamista/saamista seuraavista kohdista:
- onko salasanaominaisuus käytössä vaiko ei
- onko ominaisuutta käytetty koskaan aiemmin vaiko eikö ole
- salasanan luku/kirjoitus kohteeseen .xcu
- jälkimmäinen (puuasetukset) hallinnoi muutosten mahdollisuutta/estoa, riippuen ominaisuuden tilasta (käytössä/sammutettu).
- näyttö toteutetaan treeopt.src:ssa ja se tulee perustumaan ImageButton-ohjausobjekteihin.
- lukko itsessään on keinuna toimiva ImageButton-pari ( Hide()/Show() ) piiloutuen tai näkyen riippuen ominaisuuden käyttötilasta
Jotta tilanne säilyisi selvänä ja muutosten erottamiseksi OpenOffice.orgista, uusi tiedosto: passwd_OOo4Kids.cxx on lisätty sfx2/source/dialog:iin
Toteutus
Uudet metodit ja roolit
Lisätty luokkaan SfxPasswordDialog
- OUString SfxPasswordDialog::getUserPrefsPassword()
Kommentti: OUString, palauttaa salasanan, joka on Common.xcu:ssa, UserPrefsPassword-ominaisuudessa. Tämä metodi on luokan SfxPasswordDialog julkinen metodi.
- void SfxPasswordDialog::setUserPrefsPassword( OUString aPassword )
Kommentti: SfxPasswordDialog:n void-tyypin julkinen metodi, jolla kirjoitetaan uusi salasana kohteeseen .xcu, sen UserPrefsPassword-ominaisuuteen.
Lisätty luokkaan OfaMiscTabPage
- bool OfaMiscTabPage::getUserPrefsPasswordBoolProperty( USER_PASSWD_PREFS_PROPERTY aUserPrefsPasswordProperty )
Kommentti: ottava aksessori, bool-tyyppisenä, joka palauttaa tilan ( true, false) sekä UserPrefsPasswordFeatureEnabled- että UserPrefsPasswordNeverModified-ominaisuudelta, jotta tiedetään, onko ominaisuus käytössä vaiko ei tahi onko sitä käytetty vähintään kerran. Tarve on sallia/sammuttaa "Muuta salasanaa" -ominaisuus, paluuarvon mukaisesti.
- void OfaMiscTabPage::setUserPrefsPasswordBoolProperty( USER_PASSWD_PREFS_PROPERTY aUserPrefsPasswordProperty, bool aBool )
Kommentti: asettava aksessori, void-tyyppisenä, käytetään bool-arvon kirjoittamiseen sekä UserPrefsPasswordFeatureEnabled- että UserPrefsPasswordNeverModified-ominaisuudessa, kohteessa Common.xcu
- IMPL_LINK( OfaMiscTabPage, aChangePrefsPasswordBtnHdl_Impl, PushButton*, EMPTYARG )
Kommentti: takaisinkutsu, käytetään suorittamaan toiminto: avaa "Muuta salasana"-valintaikkuna, jos ja vain jos painike on käytössä
- IMPL_LINK( OfaMiscTabPage, aPrefsPasswordCBHdl_Impl, CheckBox*, EMPTYARG )
Kommentti: takaisinkutsu, käytetään suorittamaan toiminto: merkitse/tyhjennä valintaruutu "Aktivoi salasana", jos ja vain jos käyttäjän sallitaan muokata asetuksia
- bool OfaMiscTabPage::IsPadlockLocked()
Kommentti: julkinen OfaMiscTabPage-metodi, käytetään noutamaan asetusten tilatieto (lukittuna/lukitsemattomana)
Lisätty luokkaan OfaTreeOptionsDialog
- IMPL_LINK( OfaTreeOptionsDialog, PadlockHdl_Impl, ImageButton *, EMPTYARG )
Kommentti: takaisinkutsu, käytetään suorittamaan toiminto lukitse / vapauta asetukset, kun käyttäjä napsauttaa lukkokuvaketta, olipa sen väri kumpi tahansa.
- void OfaTreeOptionsDialog::loadImage( const ResId& i_rId, ImageButton& i_rButton )
Kommentti: lataa kuvan ImageButton-ohjausobjetkiin. VAROITUS: käytettäessä useammin kuin kerran painikkeelle, aiheuttaa roskaa ja määrittelemätöntä käyttäytymistä.
- void OfaTreeOptionsDialog::SetPadlockImage()
Kommentti: metodi, jota kutsutaan OfaTreeOptions-muodostimessa.
Malli
- Syötteen pituus salasanalla: short int
- Salasana itse: OUString
- Uusi salasana: OUString
- Vahvistettu uusi salasana: OUString
- Salasanan säiliö: Common.xcu
- Salasana-ominaisuus käytössä -säiliö: Common.xcu
- Syötetyn salasanan kelpoisuus "Ok": painike
- Syötetyn salasanan kelpoisuus "Peruuta": painike
- Uuden salasanan kelpoisuus "Ok": painike
- Uuden salasanan kelpoisuus "Peruuta": painike
- Suljettu lukko: painike + kuva == ImageButton
- Avattu lukko: painike + kuva == ImageButton
- Koko: aPadlockButtonImageSize (sama koko molemmissa ImageButton-objekteissa)
View
- Modal dialog box "Enter a password", with buttons "Ok", "Cancel" and one writable text area
- Modal dialog box "Enter new password", with buttons "Confirm new password", "Ok", "Cancel" and two writable text areas
Controller
=> TBD
- treeopt.cxx: contains the framework of the options, including the OK button to be controlled and managed, while the optgdlg.cxx contains the tabpages, and all associated actions ( IMPL_LINK ( ) ).
The controller should be based on:
- DONE Set / Reset / avoid changes in the preferences
- DONE Read / Write the password in the .xcu
- DONE create a new class inherited from sfx2 password
- DONE replace the old treeopt.cxx with a new one, including booleans and the new behavior
- DONE inactive prefs will be events driven: infinite look (modal Window) waiting for hit the lock or esc to cancel the prefs modification
- DONE implement the padlock image in the view, using two ImageButton + QuickHelpText. Only one button is displayed at the same time. Show(), Hide() are used to play ping pong with those ImageButtons.
Ideat
Mitä tulee OOo4Kidsin asetuksiin: On luultavaa, että meidän on uudistettava tätäkin valintaikkunaa sisällön ja asettelun osalta.
Koska:
- asetuksia on liikaa
- järjestys on joskus epäselvä
Tämä liittyy olennaisesti OpenOffice-ohjelmistoon yleisestikin. Luultavasti vain pääasetukset säilytetään ja ne tehdään helposti ymmärrettäviksi.
Toinen ajatus on että on erillinen asetuspaneeli lapsille, josta voi tehdä rajoitetusti asetuksia ja toinen opettajille useampien asetusten tekemiseen. Tietenkään tämä ei korvaa tällä sivulla esitettyä salasana-asetusta vaan on täydennys siihen. Lafonjm 21 avril 2009 à 09:10 (CEST)



