Skip to content

Commit 67e0e14

Browse files
committed
License importer, small fixes for asset imporer
1 parent 85a64f9 commit 67e0e14

File tree

3 files changed

+421
-24
lines changed

3 files changed

+421
-24
lines changed

app/commands/ImportCommand.php renamed to app/commands/AssetImportCommand.php

Lines changed: 45 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@
55
use Symfony\Component\Console\Input\InputArgument;
66
use League\Csv\Reader;
77

8-
class ImportCommand extends Command {
8+
class AssetImportCommand extends Command {
99

1010
/**
1111
* The console command name.
1212
*
1313
* @var string
1414
*/
15-
protected $name = 'import:csv';
15+
protected $name = 'asset-import:csv';
1616

1717
/**
1818
* The console command description.
1919
*
2020
* @var string
2121
*/
22-
protected $description = 'Import from CSV';
22+
protected $description = 'Import Assets from CSV';
2323

2424
/**
2525
* Create a new command instance.
@@ -42,9 +42,9 @@ public function fire()
4242

4343

4444
if (!$this->option('testrun')=='true') {
45-
$this->comment('======= Importing '.$filename.' =========');
45+
$this->comment('======= Importing Assets from '.$filename.' =========');
4646
} else {
47-
$this->comment('====== TEST ONLY Import for '.$filename.' ====');
47+
$this->comment('====== TEST ONLY Asset Import for '.$filename.' ====');
4848
$this->comment('============== NO DATA WILL BE WRITTEN ==============');
4949
}
5050

@@ -63,66 +63,77 @@ public function fire()
6363

6464
// Let's just map some of these entries to more user friendly words
6565

66+
// User's name
6667
if (array_key_exists('0',$row)) {
67-
$user_name = $row[0];
68+
$user_name = trim($row[0]);
6869
} else {
6970
$user_name = '';
7071
}
7172

73+
// User's email
7274
if (array_key_exists('1',$row)) {
73-
$user_email = $row[1];
75+
$user_email = trim($row[1]);
7476
} else {
7577
$user_email = '';
7678
}
7779

80+
// Asset Category
7881
if (array_key_exists('2',$row)) {
79-
$user_asset_category = $row[2];
82+
$user_asset_category = trim($row[2]);
8083
} else {
8184
$user_asset_category = '';
8285
}
8386

87+
// Asset Name
8488
if (array_key_exists('3',$row)) {
85-
$user_asset_name = $row[3];
89+
$user_asset_name = trim($row[3]);
8690
} else {
8791
$user_asset_name = '';
8892
}
8993

94+
// Asset Manufacturer
9095
if (array_key_exists('4',$row)) {
91-
$user_asset_mfgr = $row[4];
96+
$user_asset_mfgr = trim($row[4]);
9297
} else {
9398
$user_asset_mfgr = '';
9499
}
95100

101+
// Asset model number
96102
if (array_key_exists('5',$row)) {
97-
$user_asset_modelno = $row[5];
103+
$user_asset_modelno = trim($row[5]);
98104
} else {
99105
$user_asset_modelno = '';
100106
}
101107

108+
// Asset serial number
102109
if (array_key_exists('6',$row)) {
103-
$user_asset_serial = $row[6];
110+
$user_asset_serial = trim($row[6]);
104111
} else {
105112
$user_asset_serial = '';
106113
}
107114

115+
// Asset tag
108116
if (array_key_exists('7',$row)) {
109-
$user_asset_tag = $row[7];
117+
$user_asset_tag = trim($row[7]);
110118
} else {
111119
$user_asset_tag = '';
112120
}
113121

122+
// Asset location
114123
if (array_key_exists('8',$row)) {
115-
$user_asset_location = $row[8];
124+
$user_asset_location = trim($row[8]);
116125
} else {
117126
$user_asset_location = '';
118127
}
119128

129+
// Asset notes
120130
if (array_key_exists('9',$row)) {
121-
$user_asset_notes = $row[9];
131+
$user_asset_notes = trim($row[9]);
122132
} else {
123133
$user_asset_notes = '';
124134
}
125135

136+
// Asset purchase date
126137
if (array_key_exists('10',$row)) {
127138
if ($row[10]!='') {
128139
$user_asset_purchase_date = date("Y-m-d 00:00:01", strtotime($row[10]));
@@ -136,17 +147,21 @@ public function fire()
136147
// A number was given instead of a name
137148
if (is_numeric($user_name)) {
138149
$this->comment('User '.$user_name.' is not a name - assume this user already exists');
139-
// No name was given
150+
$user_username = '';
140151

152+
// No name was given
141153
} elseif ($user_name=='') {
142154
$this->comment('No user data provided - skipping user creation, just adding asset');
143155
$first_name = '';
144156
$last_name = '';
157+
$user_username = '';
158+
145159
} else {
146160

147161
$name = explode(" ", $user_name);
148162
$first_name = $name[0];
149163
$email_last_name = '';
164+
$email_prefix = $first_name;
150165

151166
if (!array_key_exists(1, $name)) {
152167
$last_name='';
@@ -171,6 +186,9 @@ public function fire()
171186

172187
}
173188

189+
190+
$user_username = $email_prefix;
191+
174192
// Generate an email based on their name if no email address is given
175193
if ($user_email=='') {
176194
if ($first_name=='Unknown') {
@@ -179,14 +197,12 @@ public function fire()
179197
$email = strtolower($email_prefix).'@'.$this->option('domain');
180198
$user_email = str_replace("'",'',$email);
181199
}
182-
183-
184-
185200
}
186201

187202
$this->comment('Full Name: '.$user_name);
188203
$this->comment('First Name: '.$first_name);
189204
$this->comment('Last Name: '.$last_name);
205+
$this->comment('Username: '.$user_username);
190206
$this->comment('Email: '.$user_email);
191207
$this->comment('Category Name: '.$user_asset_category);
192208
$this->comment('Item: '.$user_asset_name);
@@ -200,22 +216,23 @@ public function fire()
200216

201217
$this->comment('------------- Action Summary ----------------');
202218

203-
if ($user_email!='') {
204-
if ($user = User::where('email', $user_email)->first()) {
205-
$this->comment('User '.$user_email.' already exists');
219+
if ($user_username!='') {
220+
if ($user = User::where('username', $user_username)->whereNotNull('username')->first()) {
221+
$this->comment('User '.$user_username.' already exists');
206222
} else {
207223
// Create the user
208224
$user = Sentry::createUser(array(
209225
'first_name' => $first_name,
210226
'last_name' => $last_name,
211227
'email' => $user_email,
228+
'username' => $user_username,
212229
'password' => substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 10),
213230
'activated' => true,
214231
'permissions' => array(
215232
'admin' => 0,
216233
'user' => 1,
217234
),
218-
'notes' => 'Imported user'
235+
'notes' => 'User imported through asset importer'
219236
));
220237

221238
// Find the group using the group id
@@ -311,6 +328,11 @@ public function fire()
311328

312329
$asset = new Asset();
313330
$asset->name = e($user_asset_name);
331+
if ($user_asset_purchase_date!='') {
332+
$asset->purchase_date = $user_asset_purchase_date;
333+
} else {
334+
$asset->purchase_date = NULL;
335+
}
314336
$asset->serial = e($user_asset_serial);
315337
$asset->asset_tag = e($user_asset_tag);
316338
$asset->model_id = $asset_model->id;

0 commit comments

Comments
 (0)