User Tools

Site Tools


sermn_wiki:userpages:marta:esbos_116

Esbós previ per la futura versió 1.1.6

Login

  • Tres intents per a fer login.
  • Crear un enllaç per a confirmar l'alta o el canvi de contrasenya (després d'utilitzar l'opció de I forgot my password) semblant al que hi ha implementat als fòrums i wikis del servei.

Grups de Recerca

Actualment no hi ha cap taula a la base de dades que estableixi una relació entre un usuari i el grup de recerca al qual pertany, i aquest relació s'ha d'establir indirectament a través dels projecte als quals pot carregar reserves un usuari. Això no és cap problema en el cas d'una relació unívoca com la del'User 1 amb el Group A a través del Project A, però genera incertesa en el cas de projectes compartits entre grups. Per exemple, no està clar a quin grup pertany l'User 2 ja que pot fer reserves a un projecte compartit pels grups Group A i Group B. En canvi, tot i que l'User 3 també fa reserves a aquest projecte compartit, el fet que pugui fer reserves al Project B que només pertany al Group B ens indica que pertany a aquest grup.

Relació Usuari-Projecte(s)-Grup

En qualsevol cas tot serà més senzill si establim un vincle directe entre l'usuari i el grup o grups a què pertany,

La consulta següent no funciona com s'esperava, ja que el llistat inclou els usuaris que pertanyen al grup i a més pertanyen a un altre grup. Seria més útil que el llistat només inclogués els usuaris que no pertanyen al grup.

-- Table structure for table `usergroups`
-- 
CREATE TABLE `usergroups` (
  `userid` smallint(5) unsigned NOT NULL default '0',
  `groupid` smallint(5) unsigned NOT NULL default '0',
  `isdefault` tinyint(1) default '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

on isdefault es podria fer servir per indicar el grup que es triarà per defecte en cas de pertànyer a més d'un grup.

Això permetrà consultar els usuaris que pertanyen a un grup, per exemple, el Grup 2

SELECT users.name, groups.longname, groups.id
FROM users, usergroups, groups
WHERE users.id = usergroups.userid
AND usergroups.groupid = groups.id
AND groups.id = 2

o a quin grup pertany un usuari, per exemple, l'Usuari 2,

SELECT users.id, users.name, groups.longname, groups.id
FROM users, usergroups, groups
WHERE groups.id = usergroups.groupid
AND usergroups.userid = users.id
AND users.id = 2

o els usuaris aliens al grup de recerca (per exemple, el Grup 1), però que estan autoritzats a fer reserves a projectes del grup, i a quin projecte o projectes estan autoritzats a fer reserves,

SELECT DISTINCT users.id, users.username, projects.longname, projects.id, groups.longname, groups.id
FROM users, userprojects, projects, projectgroups, groups, usergroups
WHERE users.id = userprojects.userid
AND userprojects.projectid = projects.id
AND projects.id = projectgroups.projectid
AND projectgroups.groupid = groups.id
AND groups.id = 1
AND users.id = usergroups.userid
AND usergroups.groupid <> 1

Com implementar la relació usuari-grup al formulari de edició i creació d'usuaris????? Possibles solucions:

  • Automàticament al seleccionar es projectes.
  • Només es pot escollir el grup per defecte tenint en compte els projectes assignats.
  • Escollir els grups (i el de per defecte) i després limitar els projectes depenent dels grups assignats.

Base de dades

'LIMIT 1' a les comandes en SQL

A la major part de les comandes en SQL generades pel programa de reserves, es fa servir LIMIT 1. Això és deu a que no s'han definit camps índex únics, de forma que podria haver més d'un registre amb la mateixa informació, i per això cal limitar el nombre de respostes a la consulta.

FOREIGN KEYS a MySQL

Mentre que el motor de taules per defecte de MySQL, MyISAM, no permet l'existència de FOREIGN KEYS, el motor InoDB si que les permet. No és un canvi a curt termini, però a la llarga convindrà plantejar-se redissenyar la base de dades per tal d'incorporar-hi mecanismes de control d'integritat. Per més informació consultar, entre altre,

Altres modificacions

Les modificacions que es citen a continuació encara no s'han plantejat ben bé con s'haurien de ser fer.

Afegir llistat d'usuaris amb accés a un instrument

Hores d'ara no és possible conèixer a través del programa de reserves quins usuaris tenen accés a un determinat instrument, tot i que la informació hi és a la base de dades (taula permissions). Afegir aquesta opció… on?

SELECT users.name, instruments.longname, instruments.id
FROM users, permissions, instruments
WHERE users.id = permissions.userid
AND permissions.instrid = instruments.id
AND instruments.id = 2

De moment es mostra el llistat al formulari de edició del instrument.De forma semblant al mostrat al formulari de grups També hi ha un menú llistat però queda polir-ho ampliar-ho per a poder escollir més opcions. Queda pendent pensar quin seria el millor lloc per mostrar aquests llistats i com.

Edició de costos

No s'ha plantejat com seria el formulari per la edició de costos ni la part de facturació.

Emails

Possibilitat de enviar correus electrònics des de la aplicació. Per exemple, des de el calendari de reserves o als menús de email lists i my account. Es pot ampliar la classe emailer.

Permisos

Menú de edició de permisos per poder crear nous tipus d'usuaris.

Installer

L'aplicació incorpora un instal·lador. Aparentment es va solucionar un petit error que deixava penjada la instal·lació. Faltaria comprovar que realment no te cap altre error i que la part de actualitzar a una nova versió també funciona. De la mateixa manera, del tema RADIUS i LDAP no s'han tocat res.

Referències i enllaços d'interès

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
sermn_wiki/userpages/marta/esbos_116.txt · Last modified: 2020/07/09 12:36 by miquel