REPORT de la branche 1.0 (tag 1.0.1)
[euphorik.git] / modules / erl / euphorik_bd.erl
index 46cefed..b72d7a8 100755 (executable)
@@ -57,7 +57,6 @@
    messages/2,\r
    messages/3,
    message_by_id/1,
-   message_by_id_sans_transaction/1,
    messages_by_ids/1,
    message_existe/1,
    reponses/0,
@@ -304,12 +303,19 @@ update_pseudo_user(UserId, Pseudo) ->
    
    
 % Affiche N user trié par leur date de dernière connexion.
-print_users(N) ->
+% Opt est une liste d'option d'affichage :
+%  * ekmaster : n'affiche que les admins
+print_users(N, Opt) ->
+   AfficheQueLesEkMaster = lists:any(fun(O) -> O =:= ekmaster end, Opt),
    resultat_transaction(mnesia:transaction(fun() ->
       C = cursor(
          qlc:keysort(
             #user.date_derniere_connexion, 
-            q([E || E <- mnesia:table(user)]),
+            if AfficheQueLesEkMaster ->
+               q([E || E <- mnesia:table(user), E#user.ek_master =:= true]);
+            true ->
+               q([E || E <- mnesia:table(user)])
+            end,
             [{order, descending}]
          ),
          [{tmpdir, ?KEY_SORT_TEMP_DIR}]
@@ -325,20 +331,25 @@ print_users(N) ->
    end)).
    
    
+% Affiche tous les users.
+print_users(Opt) ->
+   print_users(all_remaining, Opt).
+
 % Affiche tous les users.
 print_users() ->
-   print_users(all_remaining).
-   
+   print_users(all_remaining, []).
    
 print_user(User) when is_record(User, user) ->
-   #user{id = Id, pseudo = Pseudo, login = Login, ek_master = Ek_master, date_derniere_connexion = Date} = User,
+   #user{id = Id, pseudo = Pseudo, login = Login, ek_master = Ek_master, date_derniere_connexion = Date, last_ip = IP} = User,
    {{Annee, Mois, Jour}, {Heure, Min, _}} = calendar:now_to_local_time(Date),
    io:format(
-      "~4w : ~10.10..s~10.10..s ~2w.~2.2.0w.~w - ~2wh~2.2.0w~n",
+      % id        pseudo     (login)        IP  Jour  Mois   Année  Heure Minute
+      "~4w : ~10.10..s(~10.10..s) ~s ~2w.~2.2.0w.~w - ~2wh~2.2.0w~n",
       [  
          Id,
          if Ek_master -> "*"; true -> "" end ++ Pseudo,
-         "(" ++ Login ++ ")",
+         Login,
+         euphorik_common:serialize_ip(IP),
          Jour, Mois, Annee, Heure, Min
       ]
    );
@@ -542,15 +553,13 @@ messages(Id, N, P) ->
 message_by_id(Id) ->
    resultat_transaction(mnesia:transaction(
       fun() ->
-         message_by_id_sans_transaction(Id)
+         case mnesia:read({minichat, Id}) of
+            [] -> erreur;
+            [M] ->
+               {ok, M#minichat{contenu = contenu_message(M)}}
+         end
       end
    )).
-message_by_id_sans_transaction(Id) ->
-   case mnesia:read({minichat, Id}) of
-      [] -> erreur;
-      [M] ->
-         {ok, M#minichat{contenu = contenu_message(M)}}
-   end.
    
    
 % Renvoie le contenu d'un message donnée, à utiliser à l'intérieur d'une transaction.