%
% @author G.Burri
+
-module(euphorik_bd_admin).
-export([
version_bd/0,
connect/1,
reset/0,
update/0,
- backup/1,
- restore/1,
+
+ backup_text/1,
+ restore_text/1,
toggle_ek_master/1,
print_users/0,
{attributes, record_info(fields, proprietes)},
{disc_copies, [node()]}
]),
+ mnesia:create_table(texte, [
+ {attributes, record_info(fields, texte)},
+ {disc_copies, [node()]}
+ ]),
mnesia:create_table(minichat, [
{attributes, record_info(fields, minichat)},
{disc_copies, [node()]}
reset() ->
mnesia:clear_table(counter),
mnesia:clear_table(proprietes),
+ mnesia:clear_table(texte),
mnesia:clear_table(user),
mnesia:clear_table(reponse_minichat),
mnesia:clear_table(minichat),
User = #user{id = 0, profile = #profile{pseudo = "Sys"}, login = "Sys", date_creation = now(), date_derniere_connexion = now(), ek_master = true},
mnesia:write(User),
User
- end).
+ end),
+ peupler_texte().
+
+peupler_texte() ->
+ mnesia:transaction(fun() ->
+ mnesia:write(#texte{ id = 10, fr = "Login déjà existant"}),
+ mnesia:write(#texte{ id = 20, fr = "Trop de register (flood)"}),
+ mnesia:write(#texte{ id = 30, fr = "Couple login/pass introuvable"}),
+ mnesia:write(#texte{ id = 40, fr = "Authentification impossible par cookie"}),
+ mnesia:write(#texte{ id = 50, fr = "Impossible de mettre à jour le profile"}),
+ mnesia:write(#texte{ id = 60, fr = "timeout"}),
+ mnesia:write(#texte{ id = 70, fr = "Page inconnue"}),
+ mnesia:write(#texte{ id = 80, fr = "Vous êtes banni pour encore ~s"}),
+ mnesia:write(#texte{ id = 90, fr = "Message vide"}),
+ mnesia:write(#texte{ id = 100, fr = "Impossible d'ajouter un nouveau message. Raison : ~s"}),
+ mnesia:write(#texte{ id = 110, fr = "Utilisateur inconnu"}),
+ mnesia:write(#texte{ id = 120, fr = "Il n'est pas possible de s'auto bannir"}),
+ mnesia:write(#texte{ id = 130, fr = "L'utilisateur est lui même un ekMaster"}),
+ mnesia:write(#texte{ id = 140, fr = "Utilisateur à bannir inconnu"}),
+ mnesia:write(#texte{ id = 150, fr = "Utilisateur inconnu ou non ek master"}),
+ mnesia:write(#texte{ id = 160, fr = "Utilisateur à slaper inconnu"}),
+ mnesia:write(#texte{ id = 170, fr = "Utilisateur inconnu ou non ek master"}),
+ mnesia:write(#texte{ id = 180, fr = "Le nombre de troll maximum par utilisateur est atteint : ~w "}),
+ mnesia:write(#texte{ id = 190, fr = "Le nombre de troll maximum en attente est atteint : ~w "}),
+ mnesia:write(#texte{ id = 200, fr = "Seul les ekMaster peuvent proposer des trolls"}),
+ mnesia:write(#texte{ id = 210, fr = "Vous ne posséder pas ce troll"}),
+ mnesia:write(#texte{ id = 220, fr = "Seul les ekMaster peuvent proposer des trolls"}),
+ mnesia:write(#texte{ id = 230, fr = "Seul les ekMaster peuvent connaitre la liste des ips bannies"})
+ end).
+
% Met à jour la bd, compare ?VERSION_BD avec la version dans la table 'proprietes'
% et exécute les patchs nécessaires.
% dans BD/backups nommé "backup<num>" où <num> et le numéro de la version.
% 1 -> 2
patch(1) ->
+ mnesia:create_table(texte, [
+ {attributes, record_info(fields, texte)},
+ {disc_copies, [node()]}
+ ]),
+ peupler_texte(),
% traitement des users
mnesia:transform_table(
user,
).
% crée un backup dont le nom est fournit dans le repertoire backups qui se trouve dans le repertoire de la BD.
-backup(Nom) ->
- mnesia:backup(mnesia:system_info(directory) ++ "/backups/" ++ Nom).
+%backup(Nom) ->
+% mnesia:backup(mnesia:system_info(directory) ++ "/backups/" ++ Nom).
% Reviens à une version précédente de la base de données
% (les données insérées durant les versions plus récentes sont perdues)
-restore(N) ->
- mnesia:restore(fichier_backup(N), [{default_op, recreate_tables}]).
+%restore(N) ->
+% mnesia:restore(fichier_backup(N), [{default_op, recreate_tables}]).
% Renvoie le fichier (avec le chemin) correspondant à la version Version, par exemple : "/var/euphorik/BD/backups/backup1"
mnesia:system_info(directory) ++ "/backups/" ++ if is_integer(Version) -> "backup" ++ integer_to_list(Version); true -> Version end.
+backup_text(_) -> todo.
+restore_text(File) ->
+ mnesia:stop(),
+ mnesia:delete_schema([node()]),
+ mnesia:start(),
+ case mnesia:load_textfile(File) of
+ {atomic, ok} ->
+ update(),
+ creer_indexes();
+ Erreur ->
+ Erreur
+ end.
+
+
toggle_ek_master(User_id) ->
euphorik_bd:resultat_transaction(mnesia:transaction(
fun() ->