/** * install_create_account * this creates your initial account and sets up the preferences for the -1 user and you */ function install_create_account($username, $password, $password2) { if (!strlen($username) or !strlen($password)) { Error::add('general', T_('No Username/Password specified')); return false; } if ($password !== $password2) { Error::add('general', T_('Passwords do not match')); return false; } if (!Dba::check_database()) { Error::add('general', sprintf(T_('Database connection failed: %s'), Dba::error())); return false; } if (!Dba::check_database_inserted()) { Error::add('general', sprintf(T_('Database select failed: %s'), Dba::error())); return false; } $username = Dba::escape($username); $password = Dba::escape($password); $insert_id = User::create($username, 'Administrator', '', '', $password, '100'); if (!$insert_id) { Error::add('general', sprintf(T_('Administrative user creation failed: %s'), Dba::error())); return false; } // Fix the system users preferences User::fix_preferences('-1'); return true; }
/** * rebuild_all_preferences * This rebuilds the user preferences for all installed users, called by the plugin functions */ public static function rebuild_all_preferences() { // Clean out any preferences garbage left over $sql = "DELETE `user_preference`.* FROM `user_preference` " . "LEFT JOIN `user` ON `user_preference`.`user` = `user`.`id` " . "WHERE `user_preference`.`user` != -1 AND `user`.`id` IS NULL"; Dba::write($sql); // Get only users who has less preferences than excepted // otherwise it would have significant performance issue with large user database $sql = "SELECT `user` FROM `user_preference` " . "GROUP BY `user` HAVING COUNT(*) < (" . "SELECT COUNT(`id`) FROM `preference` WHERE `catagory` != 'system')"; $db_results = Dba::read($sql); while ($row = Dba::fetch_assoc($db_results)) { User::fix_preferences($row['user']); } return true; }
/** * rebuild_all_preferences * This rebuilds the user preferences for all installed users, called by the plugin functions */ public static function rebuild_all_preferences() { $sql = "SELECT * FROM `user`"; $db_results = Dba::read($sql); User::fix_preferences('-1'); while ($row = Dba::fetch_assoc($db_results)) { User::fix_preferences($row['id']); } return true; }