X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_bd.erl;h=187d6eaea9c722223ddb47f48d5b8c7e001747c5;hp=bb092fa31be825629033431ad86511e602e7b6c5;hb=64ef87442b933d47f4dbc9dfec9a5a16e522c375;hpb=761de1b3602d40769579f9b0fee7eb70b39d2818 diff --git a/modules/erl/euphorik_bd.erl b/modules/erl/euphorik_bd.erl index bb092fa..187d6ea 100755 --- a/modules/erl/euphorik_bd.erl +++ b/modules/erl/euphorik_bd.erl @@ -29,6 +29,7 @@ connect/0, connect/1, reset/0, + update/0, % users : nouveau_user/2, @@ -46,6 +47,7 @@ user_by_login_password/2, user_by_mess/1, toggle_ek_master/1, + css_from_user_cookie/1, % messages : nouveau_message/3, @@ -166,6 +168,37 @@ reset() -> end). +% Met à jour la bd, compare ?VERSION_BD avec la version dans la table 'proprietes' +% et exécute les patchs nécessaires. +update() -> + mnesia:transaction( + fun() -> + case mnesia:read({proprietes, version}) of + [#proprietes{nom = Version}] -> + update(Version); + _ -> + erreur + end + end + ). + + +% Mise à jour de la BD. +% attention : il est nécessaire de se trouver dans une transaction. +update(?VERSION_BD) -> fini; +update(Version) -> + patch(Version), + update(Version + 1). + + +% Applique une modification de la BD pour passer d'une version à la suivante. +% 1 -> 2 +patch(1) -> + ok. +% 2 -> 3 +%patch(2) -> + + % Ajoute un nouveau user et le renvoie nouveau_user(Pseudo, Cookie) -> F = fun() -> @@ -366,7 +399,19 @@ toggle_ek_master(User_id) -> end )). + +% Renvoie une chaine représentant le cookie ou undefined si pas trouvé. +css_from_user_cookie(Cookie) -> + case user_by_cookie(Cookie) of + {ok, User} -> + User#user.css; + _ -> + undefined + end. + + + user_by_login_password(Login, Password) -> resultat_transaction(mnesia:transaction( fun() ->