]> source.dussan.org Git - nextcloud-server.git/commitdiff
Check for existance of group- and usernames, don't mix OC_USER and OC_GROUP!
authorJakob Sack <kde@jakobsack.de>
Mon, 18 Apr 2011 09:48:52 +0000 (11:48 +0200)
committerJakob Sack <kde@jakobsack.de>
Mon, 18 Apr 2011 09:48:52 +0000 (11:48 +0200)
lib/User/database.php
lib/group.php
lib/user.php

index a0d06d63074fe9b541343046fc7243aad9e0675b..1a4ddf44c4ee79b87340df65b100e818722413bd 100644 (file)
@@ -74,10 +74,6 @@ class OC_USER_DATABASE extends OC_USER_BACKEND {
         * Deletes a user
         */
        public static function deleteUser( $uid ){
-               // Delete user
-               $query = OC_DB::prepare( "DELETE FROM `*PREFIX*users` WHERE uid = ?" );
-               $result = $query->execute( array( $uid ));
-
                // Delete user-group-relation
                $query = OC_DB::prepare( "DELETE FROM `*PREFIX*group_user` WHERE uid = ?" );
                $result = $query->execute( array( $uid ));
index ef8b7cecfb238de308a7799f7df5c29f7d3d668e..eb4aa3bbf28a64f3e6f0201f299756e1a3ff572a 100644 (file)
@@ -104,6 +104,11 @@ class OC_GROUP {
                if( preg_match( '/[^a-zA-Z0-9 _\.@\-]/', $gid )){
                        return false;
                }
+               // No empty group names!
+               if( !$gid ){
+                       return false;
+               }
+
                $run = true;
                OC_HOOK::emit( "OC_GROUP", "pre_createGroup", array( "run" => &$run, "gid" => $gid ));
 
index 82b012f3a5c72f568e488f5ce2f411398250dfe4..51e4ab358e139ab4b31a8e4a591299ae53c8ad54 100644 (file)
@@ -114,6 +114,11 @@ class OC_USER {
                if( preg_match( '/[^a-zA-Z0-9 _\.@\-]/', $uid )){
                        return false;
                }
+               // No empty username
+               if( !$uid ){
+                       return false;
+               }
+
                $run = true;
                OC_HOOK::emit( "OC_USER", "pre_createUser", array( "run" => &$run, "uid" => $uid, "password" => $password ));
 
@@ -138,6 +143,12 @@ class OC_USER {
                OC_HOOK::emit( "OC_USER", "pre_deleteUser", array( "run" => &$run, "uid" => $uid ));
 
                if( $run && self::$_backend->deleteUser( $uid )){
+                       // We have to delete the user from all groups
+                       foreach( OC_GROUP::getUserGroups( $uid ) as $i ){
+                               OC_GROUP::removeFromGroup( $uid, $i );
+                       }
+
+                       // Emit and exit
                        OC_HOOK::emit( "OC_USER", "post_deleteUser", array( "uid" => $uid ));
                        return true;
                }