BUFIX: fixed a typo
[e-DoKo.git] / include / preferences.php
index 03821932f282946f4c6f0aee2c03a4a04a645bc7..2e3eef2fbf53ba6c771db53747d619d4454d398c 100644 (file)
@@ -5,20 +5,27 @@
 if(!isset($HOST))
   exit;
 
+include_once('openid.php');
+
 $name  = $_SESSION["name"];
 $email = DB_get_email('name',$name);
-$myid = DB_get_userid('email',$email);
+$myid  = DB_get_userid('email',$email);
 if(!$myid)
   return;
 
 /* track what got changed */
-$changed_notify           = 0;
-$changed_password  = 0;
-$changed_cards    = 0;
-$changed_timezone  = 0;
-$changed_autosetup = 0;
+$changed_notify              = 0;
+$changed_password     = 0;
+$changed_cards       = 0;
+$changed_timezone     = 0;
+$changed_autosetup    = 0;
+$changed_sorting      = 0;
+$changed_openforgames = 0;
+$changed_vacation     = 0;
+$changed_openid       = 0;
+$changed_digest       = 0;
 
-display_user_menu();
+display_user_menu($myid);
 
 /* get old infos */
 $PREF = DB_get_PREF($myid);
@@ -26,10 +33,102 @@ $timezone =  DB_get_user_timezone($myid);
 
 DB_update_user_timestamp($myid);
 
-/* does the user want to change some preferences? */
+/* does the user want to change some preferences?
+ * update the database and track changes with a variable, so that
+ * we can later highlight the changed value
+ */
+
+/* check for deleted openids */
+foreach($_REQUEST as $key=>$value)
+{
+  if(strstr($key,"delete-openid-"))
+    {
+      /* found and openid to delete */
+      $DelOpenID = substr(str_replace("_",".",$key),14);
+      DB_DetachOpenID($DelOpenID, $myid);
+      $changed_openid = 1;
+    }
+}
+
+
+if(myisset('vacation_start','vacation_stop','vacation_comment') &&
+   ($_REQUEST['vacation_start']!='' || $_REQUEST['vacation_stop']!='')
+   )
+  {
+    $vacation_start   = $_REQUEST['vacation_start'].' 00:00:00';
+    $vacation_stop    = $_REQUEST['vacation_stop'].' 23:59:59';
+    $vacation_comment = $_REQUEST['vacation_comment'];
+
+    /* check if everything is valid */
+    if(!strtotime($vacation_start))
+      $changed_vacation = -1;
+    if(!strtotime($vacation_stop))
+      $changed_vacation = -1;
+
+    /* test if we should delete the entry */
+    if($vacation_start == '- 00:00:00')
+      {
+       $result = DB_query("DELETE FROM User_Prefs".
+                          " WHERE user_id='$myid' AND pref_key='vacation start'" );
+       $result = DB_query("DELETE FROM User_Prefs".
+                          " WHERE user_id='$myid' AND pref_key='vacation stop'" );
+       $result = DB_query("DELETE FROM User_Prefs".
+                          " WHERE user_id='$myid' AND pref_key='vacation comment'" );
+       $changed_vacation = 1;
+      }
+    /* change in database if format is ok */
+    else if($changed_vacation>=0)
+      {
+       /* only change if different from current value */
+       if($vacation_start!=$PREF['vacation_start'])
+         {
+           $result = DB_query("SELECT * from User_Prefs".
+                              " WHERE user_id='$myid' AND pref_key='vacation start'" );
+           if( DB_fetch_array($result))
+             $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($vacation_start).
+                                " WHERE user_id='$myid' AND pref_key='vacation start'" );
+           else
+             $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','vacation start',".
+                                DB_quote_smart($vacation_start).")");
+
+           $changed_vacation = 1;
+         }
+
+       /* same for the stop date */
+       if($vacation_stop!=$PREF['vacation_stop'])
+         {
+           $result = DB_query("SELECT * from User_Prefs".
+                              " WHERE user_id='$myid' AND pref_key='vacation stop'" );
+           if( DB_fetch_array($result))
+             $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($vacation_stop).
+                                " WHERE user_id='$myid' AND pref_key='vacation stop'" );
+           else
+             $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','vacation stop',".
+                                DB_quote_smart($vacation_stop).")");
+
+           $changed_vacation = 1;
+         }
+
+       /* does the user want to add a comment? */
+       if($vacation_comment!=$PREF['vacation_comment'])
+         {
+           $result = DB_query("SELECT * from User_Prefs".
+                              " WHERE user_id='$myid' AND pref_key='vacation comment'" );
+           if( DB_fetch_array($result))
+             $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($vacation_comment).
+                                " WHERE user_id='$myid' AND pref_key='vacation comment'" );
+           else
+             $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','vacation comment',".
+                                DB_quote_smart($vacation_comment).")");
+
+           $changed_vacation = 1;
+         }
+      }
+  }
+
 if(myisset("timezone"))
   {
-    $newtimezone=$_REQUEST['timezone'];
+    $newtimezone = $_REQUEST['timezone'];
     if($newtimezone != $timezone)
       {
        DB_query("UPDATE User SET timezone=".DB_quote_smart($newtimezone).
@@ -74,6 +173,24 @@ if(myisset("notify"))
       }
   }
 
+if(myisset("digest"))
+  {
+    $digest=$_REQUEST['digest'];
+    if($digest != $PREF['digest'])
+      {
+       /* check if we already have an entry for the user, if so change it, if not create new one */
+       $result = DB_query("SELECT * from User_Prefs".
+                          " WHERE user_id='$myid' AND pref_key='digest'" );
+       if( DB_fetch_array($result))
+         $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($digest).
+                            " WHERE user_id='$myid' AND pref_key='digest'" );
+       else
+         $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','digest',".
+                            DB_quote_smart($digest).")");
+       $changed_digest=1;
+      }
+  }
+
 if(myisset("autosetup"))
   {
     $autosetup = $_REQUEST['autosetup'];
@@ -92,8 +209,44 @@ if(myisset("autosetup"))
       }
   }
 
+if(myisset("sorting"))
+  {
+    $sorting = $_REQUEST['sorting'];
+    if($sorting != $PREF['sorting'])
+      {
+       /* check if we already have an entry for the user, if so change it, if not create new one */
+       $result = DB_query("SELECT * from User_Prefs".
+                          " WHERE user_id='$myid' AND pref_key='sorting'" );
+       if( DB_fetch_array($result))
+         $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($sorting).
+                            " WHERE user_id='$myid' AND pref_key='sorting'" );
+       else
+         $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','sorting',".
+                            DB_quote_smart($sorting).")");
+       $changed_sorting=1;
+      }
+  }
+
+if(myisset("open_for_games"))
+  {
+    $openforgames = $_REQUEST['open_for_games'];
+    if($openforgames != $PREF['open_for_games'])
+      {
+       /* check if we already have an entry for the user, if so change it, if not create new one */
+       $result = DB_query("SELECT * from User_Prefs".
+                          " WHERE user_id='$myid' AND pref_key='open for games'" );
+       if( DB_fetch_array($result))
+         $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($openforgames).
+                            " WHERE user_id='$myid' AND pref_key='open for games'" );
+       else
+         $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','open for games',".
+                            DB_quote_smart($openforgames).")");
+       $changed_openforgames=1;
+      }
+  }
+
 
-if(myisset("password0") &&  $_REQUEST["password0"]!="" )
+if(myisset("password0","password1","password2") &&  $_REQUEST["password0"]!="" &&  $_REQUEST["password0"]!= $_REQUEST["password1"])
   {
     $changed_password = 1;
 
@@ -103,10 +256,14 @@ if(myisset("password0") &&  $_REQUEST["password0"]!="" )
     if(!( ($password == $oldpasswd) || DB_check_recovery_passwords($oldpasswd,$email) ))
       $changed_password = -1;
 
-    /* check if new passwords are types the same twice */
+    /* check if new password has been typed in correctly */
     if($_REQUEST["password1"] != $_REQUEST["password2"] )
       $changed_password = -2;
 
+    /* check if new password is long enough */
+    if(strlen($_REQUEST["password1"])<4)
+      $changed_password = -3;
+
     if($changed_password==1)
       {
        DB_query("UPDATE User SET password='".md5($_REQUEST["password1"]).
@@ -115,73 +272,184 @@ if(myisset("password0") &&  $_REQUEST["password0"]!="" )
     /* error output below */
   }
 
+if(myisset("openid_url") && $_REQUEST['openid_url']!='')
+  {