diff --git a/CHANGELOG.md b/CHANGELOG.md
index 706af0715..bbed28aac 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,9 +3,15 @@ This file is a running track of new features and fixes to each version of the pa
This project follows [Semantic Versioning](http://semver.org) guidelines.
+## v0.7.4 (Derelict Dermodactylus)
+### Fixed
+* Fixes a bug when reinstalling a server that would not mark the server as installing, resulting in some UI issues.
+
## v0.7.3 (Derelict Dermodactylus)
### Fixed
* Fixes server creation API endpoint not passing the provided `external_id` to the creation service.
+* Fixes a bug causing users to be un-editable on new installations once more than one user exists.
+* Fixes default order of buttons in certain parts of the panel that would default to 'Delete' rather than 'Save' when pressing enter.
### Added
* Adds ability to modify the external ID for a server through the API.
diff --git a/app/Models/User.php b/app/Models/User.php
index 10c710f19..aff4f3287 100644
--- a/app/Models/User.php
+++ b/app/Models/User.php
@@ -121,6 +121,7 @@ class User extends Model implements
* @var array
*/
protected $attributes = [
+ 'external_id' => null,
'root_admin' => false,
'language' => 'en',
'use_totp' => false,
diff --git a/app/Services/Servers/ReinstallServerService.php b/app/Services/Servers/ReinstallServerService.php
index 682813e36..85800473f 100644
--- a/app/Services/Servers/ReinstallServerService.php
+++ b/app/Services/Servers/ReinstallServerService.php
@@ -66,7 +66,7 @@ class ReinstallServerService
$this->database->beginTransaction();
$this->repository->withoutFreshModel()->update($server->id, [
'installed' => 0,
- ]);
+ ], true, true);
try {
$this->daemonServerRepository->setServer($server)->reinstall();
diff --git a/database/migrations/2018_02_25_160152_remove_default_null_value_on_table.php b/database/migrations/2018_02_25_160152_remove_default_null_value_on_table.php
new file mode 100644
index 000000000..6469867f2
--- /dev/null
+++ b/database/migrations/2018_02_25_160152_remove_default_null_value_on_table.php
@@ -0,0 +1,38 @@
+string('external_id')->default(null)->change();
+ });
+
+ DB::transaction(function () {
+ DB::table('users')->where('external_id', '=', 'NULL')->update([
+ 'external_id' => null,
+ ]);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ // This should not be rolled back.
+ }
+}
diff --git a/database/migrations/2018_02_25_160604_define_unique_index_on_users_external_id.php b/database/migrations/2018_02_25_160604_define_unique_index_on_users_external_id.php
new file mode 100644
index 000000000..0a9b8afe2
--- /dev/null
+++ b/database/migrations/2018_02_25_160604_define_unique_index_on_users_external_id.php
@@ -0,0 +1,32 @@
+index(['external_id']);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('users', function (Blueprint $table) {
+ $table->dropIndex(['external_id']);
+ });
+ }
+}
diff --git a/resources/themes/pterodactyl/admin/databases/view.blade.php b/resources/themes/pterodactyl/admin/databases/view.blade.php
index db7db1c48..41a2d7901 100644
--- a/resources/themes/pterodactyl/admin/databases/view.blade.php
+++ b/resources/themes/pterodactyl/admin/databases/view.blade.php
@@ -79,8 +79,8 @@