-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Käyttäjätietojen muokkausten estäminen muilta kuin pääkäyttäjiltä #1347
Comments
Tein muutokset Vaaran nextille skriptin mukaisesti ja testasin kirjautumalla tavallisena virkailijana. En päässyt muuttamaan käyttäjän nimikenttiä eikä kirjastokortin numeroa. Asiakastyypin muuttaminenkaan ei onnistunut. |
VIRKAILIJA-tyyppisen tunnuksen muokkauksessa epäaktivoituu myös Tyyppi-valikko. Mikä sen tekee? En hoksaa tuossa koodissa sellaista kohtaa. Vai onko se jonkinlainen lisäominaisuus tuolle, että Henkilökunta-vaihtoehto piilotetaan valikosta? Siis silloin, kun ollaan muokkaamassa Henkilökunta-tyyppistä tunnusta? Ei tuo sinänsä varmaan haittaa, mutta hämmensi. :) |
Tuolla on rivi e.disabled = true, joka sen tekee. En tuota itsekään enää muistanut, että sekin siellä on, mutta se on tosiaan ihan kokemusten perusteella tarpeen, ettei näiden tyyppejä muuteta. |
Testasin OUTIn testillä ja nextillä. Näyttäisi toimivan kuin pitääkin. Tarpeellinen muutos. :) |
Tein koodista vähän selkeämmän version, jossa ei tarvitse määritellä erikseen eri piilotuksia, vaan ainoastaan määritellä categories muuttujaan käyttäjätyyppien tunnukset. Testeissäni tämä toimii samalla tavalla kuin aiemminkin, mutta ylläpito helpottuu. /// ALKU ///
// Virkailijatunnusten muokkausten esto
$(document).ready(function() {
if (window.location.pathname.includes('/cgi-bin/koha/members/memberentry.pl') || window.location.pathname.includes('/cgi-bin/koha/members/members-home.pl')){
var superlib = $('span#logged-in-info-full').children().hasClass('is_superlibrarian');
var categories = ["VIRKAILIJA", "AUTOM", "API"];
if (window.location.pathname.includes('/cgi-bin/koha/members/memberentry.pl')){
var e = document.getElementById("categorycode_entry");
var value = e.value;
if (!superlib && categories.includes(value)){
e.disabled = true;
$('input#cardnumber').prop('disabled',true);
$('input#surname').prop('disabled',true);
$('input#firstname').prop('disabled',true);
}
if (!superlib){
categories.forEach(piilotus);
function piilotus(item) {
$('select#categorycode_entry option[value="'+ item +'"]').parent().hide();
}
}
}
if (window.location.pathname.includes('/cgi-bin/koha/members/members-home.pl')){
if (!superlib){
categories.forEach(piilotus);
function piilotus(item) {
$('div#new-patron-button ul li a[href*="categorycode=' + item + '"]').parent().hide();
}
}
}
}
});
/// LOPPU /// |
Asiantuntijaryhmä 26.8.2024: Tehdään JS-liitännäiseksi siten, että asiakastyypit voi määrittää konfiguroinnissa. |
Lisätty määriteltäväksi pluginiksi nexteille. |
Meillä tuo Mikon laittama viimeisin skripti aiheutti sellaisen sivuvaikutuksen testillä, että jos henkilökunta teki omaan virkailijatietueeseensa minkäänlaisia muutoksia, niin cardnumber-kenttä menee jostain syystä nulliksi tallentamisen yhteydessä ja Koha heittää virkailijan pihalle. Sen verran ehdin testata että liittyi tuohon $('input#cardnumber').prop('disabled',true); koodinpätkään, sen poistamalla virhettä ei enää tullut. |
Juu, pahoittelut, etten tänne ole päivittänyt tätä tietoa. Laitoin huomion tuohon plugarin tikettiin ja Lari tarjosi vaihtoehtona readonlyä: $('input#cardnumber').prop("readonly", true); Tuo ajaa saman asian, mutta ilman korttinumeron pois tipahtamista. Kaikki disabloinnit kannattaa siis varmuuden vuoksi tehdä readonlynä, jos skriptiversiota haluaa käyttää. |
Kehitysehdotukseni
Pääkäyttäjäpalaverissa 6.8.2024 oli puhetta Vaskissa tehdystä JS-skriptistä, jolla estetään virkailijoita muuttamasta käyttäjän etunimeä, sukunimeä ja kirjastokortin numeroa virkailija-, api- ja automaattikäyttäjiltä. Virkailijoita estetään myös luomasta uusia näitä tyyppiä olevia käyttäjiä ja muuttamasta olemassa olevia käyttäjiä näiksi tyypeiksi. Ainoastaan pääkäyttäjillä on oikeus tehdä näitä käyttäjiä ja muokata olemassa olevien kaikkia tietoja.
Koska kiinnostusta löytyi muualtakin, niin tässä on skripti testattavaksi:
Koodia on testattu Vaskin testissä ja nextissä. Koodia saattaa joutua muuttamaan oman kimpan ympäristöön sopivaksi. Koodiin on kommentoitu, mitä asiakastyyppien tietoja koodi tarvitsee missäkin kohtaa. Koitin myös kevyesti selittää kommenteissa, mitä koodin eri osat tekevät.
Tätä voisivat kiinnostuneet kimpat testailla, jos tästä olisi vaikka ihan yhteiseksi plugariksi. Vaskilla on ajatuksena ottaa tämä käyttöön jossain muodossa lähiaikoina ja olisi mukava saada muilta vielä kommentteja ja parannusehdotuksia.
Jotain muuta?
No response
The text was updated successfully, but these errors were encountered: