Example #1
0
 /**
  * Update data of the asset
  *
  * @param mixed $data
  * @return void
  */
 function put($data)
 {
     $tmpFile = PIMCORE_WEBDAV_TEMP . "/" . md5($this->asset->getId() . microtime());
     file_put_contents($tmpFile, $data);
     $data = file_get_contents($tmpFile);
     unlink($tmpFile);
     $this->asset->setData($data);
     $this->asset->save();
 }
Example #2
0
 public function run()
 {
     // create default user asset
     $asset = Asset::where('filename', '=', 'default.png')->first();
     if ($asset == NULL) {
         $asset = new Asset();
         $asset->filename = 'default.png';
         $asset->path = 'assets/content/users';
         $asset->save();
     }
     $admin = Role::where('name', '=', 'Admin')->first();
     // create default roles
     if ($admin == NULL) {
         $admin = new Role();
         $admin->name = 'Admin';
         $admin->save();
     }
     $adminUser = User::where('username', '=', 'admin')->first();
     if ($adminUser != NULL) {
         echo "Admin User Already Exsit";
     } else {
         $adminUser = new User();
         $adminUser->username = '******';
         $adminUser->email = '*****@*****.**';
         $adminUser->password = '******';
         $adminUser->password_confirmation = 'admin';
         $adminUser->confirmation_code = md5(uniqid(mt_rand(), true));
         if ($adminUser->save()) {
             $adminUser->attachRole($admin);
             echo "Admin User Created";
         }
     }
 }
Example #3
0
 public function setupDatabases()
 {
     $name = $this->call('migrate', array('--path' => 'app/database/migrations/setup/'));
     $name = $this->call('migrate');
     // create the roles
     $roles = ['Admin', 'Writer', 'Reader'];
     foreach ($roles as $r) {
         $role = Role::whereName($r)->first();
         if ($role == null) {
             $role = new Role();
             $role->name = $r;
             $role->display_name = $r;
             $role->save();
             $this->info("{$role->id} Creating Role:{$r}");
         }
     }
     foreach (User::all() as $u) {
         $this->info("{$u->id} : user: {$u->username}");
     }
     // add core assets
     $m = Asset::findFromTag('missing-user-image');
     if ($m == NULL) {
         $m = new Asset();
         $m->path = "assets/content/uploads";
         $m->saveLocalFile(public_path('assets/content/common/missing/profile-default.png'), 'profile-default.png');
         $m->tag = 'missing-user-image';
         $m->shared = 1;
         $m->type = Asset::ASSET_TYPE_IMAGE;
         $m->save();
     }
     $this->comment("****\tAll Databases for Halp have been setup :-) \t****");
     return;
 }
Example #4
0
 function save()
 {
     $this->filter_access('Assets', 'roled_add', 'assets/index');
     $asset = new Asset();
     $asset->asset_name = $this->input->post('asset_name');
     $asset->asset_status = $this->input->post('asset_status');
     $asset->staff_id = $this->input->post('staff_id');
     $asset->date = $this->input->post('date');
     if ($asset->save()) {
         $this->session->set_flashdata('message', 'Asset successfully created!');
         redirect('assets/');
     } else {
         // Failed
         $asset->error_message('custom', 'Field required');
         $msg = $asset->error->custom;
         $this->session->set_flashdata('message', $msg);
         redirect('assets/add');
     }
 }
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     $filename = $this->argument('filename');
     if (!$this->option('testrun') == 'true') {
         $this->comment('======= Importing ' . $filename . ' =========');
     } else {
         $this->comment('====== TEST ONLY Import for ' . $filename . ' ====');
         $this->comment('============== NO DATA WILL BE WRITTEN ==============');
     }
     if (!ini_get("auto_detect_line_endings")) {
         ini_set("auto_detect_line_endings", '1');
     }
     $csv = Reader::createFromPath($this->argument('filename'));
     $csv->setNewline("\r\n");
     $csv->setOffset(1);
     $duplicates = '';
     // Loop through the records
     $nbInsert = $csv->each(function ($row) use($duplicates) {
         $status_id = 1;
         if (is_numeric($row[0])) {
             $this->comment('User ' . $row[0] . ' is not a name - assume this user already exists');
         } elseif ($row[0] == '') {
             $this->comment('No user data provided - skipping user creation, just adding asset');
         } else {
             // Generate an email based on their name
             $name = explode(" ", $row[0]);
             $first_name = $name[0];
             $last_name = '';
             $email_last_name = '';
             if ($first_name == 'Unknown') {
                 $status_id = 7;
             }
             if (!array_key_exists(1, $name)) {
                 $last_name = '';
                 $email_last_name = $last_name;
                 $email_prefix = $first_name;
             } else {
                 // Loop through the rest of the explode so you don't truncate
                 for ($x = 0; $x < count($name); $x++) {
                     if ($x > 0 && $name[$x] != '') {
                         $last_name .= ' ' . $name[$x];
                         $email_last_name .= $name[$x];
                     }
                 }
                 $email_prefix = $first_name[0] . $email_last_name;
             }
             $email = strtolower(str_replace('.', '', $email_prefix)) . '@' . $this->option('domain');
             $email = str_replace("'", '', $email);
             $this->comment('Full Name: ' . $row[0]);
             $this->comment('First Name: ' . $first_name);
             $this->comment('Last Name: ' . $last_name);
             $this->comment('Email: ' . $email);
             $this->comment('Category Name: ' . $row[1]);
             $this->comment('Item: ' . $row[2]);
             $this->comment('Manufacturer ID: ' . $row[3]);
             $this->comment('Model No: ' . $row[4]);
             $this->comment('Serial No: ' . $row[5]);
             $this->comment('Asset Tag: ' . $row[6]);
             $this->comment('Location: ' . $row[7]);
         }
         $this->comment('------------- Action Summary ----------------');
         if (isset($email)) {
             if ($user = User::where('email', $email)->first()) {
                 $this->comment('User ' . $email . ' already exists');
             } else {
                 // Create the user
                 $user = Sentry::createUser(array('first_name' => $first_name, 'last_name' => $last_name, 'email' => $email, 'password' => substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 10), 'activated' => true, 'permissions' => array('admin' => 0, 'user' => 1), 'notes' => 'Imported user'));
                 // Find the group using the group id
                 $userGroup = Sentry::findGroupById(3);
                 // Assign the group to the user
                 $user->addGroup($userGroup);
                 $this->comment('User ' . $first_name . ' created');
             }
         } else {
             $user = new User();
         }
         // Check for the location match and create it if it doesn't exist
         if ($location = Location::where('name', $row[7])->first()) {
             $this->comment('Location ' . $row[7] . ' already exists');
         } else {
             $location = new Location();
             $location->name = e($row[7]);
             $location->address = '';
             $location->city = '';
             $location->state = '';
             $location->country = '';
             $location->user_id = 1;
             if (!$this->option('testrun') == 'true') {
                 if ($location->save()) {
                     $this->comment('Location ' . $row[7] . ' was created');
                 } else {
                     $this->comment('Something went wrong! Location ' . $row[1] . ' was NOT created');
                 }
             } else {
                 $this->comment('Location ' . $row[7] . ' was (not) created - test run only');
             }
         }
         // Check for the category match and create it if it doesn't exist
         if ($category = Category::where('name', $row[1])->where('category_type', 'asset')->first()) {
             $this->comment('Category ' . $row[1] . ' already exists');
         } else {
             $category = new Category();
             $category->name = e($row[1]);
             $category->category_type = 'asset';
             $category->user_id = 1;
             if ($category->save()) {
                 $this->comment('Category ' . $row[1] . ' was created');
             } else {
                 $this->comment('Something went wrong! Category ' . $row[1] . ' was NOT created');
             }
         }
         // Check for the manufacturer match and create it if it doesn't exist
         if ($manufacturer = Manufacturer::where('name', $row[3])->first()) {
             $this->comment('Manufacturer ' . $row[3] . ' already exists');
         } else {
             $manufacturer = new Manufacturer();
             $manufacturer->name = e($row[3]);
             $manufacturer->user_id = 1;
             if ($manufacturer->save()) {
                 $this->comment('Manufacturer ' . $row[3] . ' was created');
             } else {
                 $this->comment('Something went wrong! Manufacturer ' . $row[3] . ' was NOT created');
             }
         }
         // Check for the asset model match and create it if it doesn't exist
         if ($asset_model = Model::where('name', $row[2])->where('modelno', $row[4])->where('category_id', $category->id)->where('manufacturer_id', $manufacturer->id)->first()) {
             $this->comment('The Asset Model ' . $row[2] . ' with model number ' . $row[4] . ' already exists');
         } else {
             $asset_model = new Model();
             $asset_model->name = e($row[2]);
             $asset_model->manufacturer_id = $manufacturer->id;
             $asset_model->modelno = e($row[4]);
             $asset_model->category_id = $category->id;
             $asset_model->user_id = 1;
             if ($asset_model->save()) {
                 $this->comment('Asset Model ' . $row[2] . ' with model number ' . $row[4] . ' was created');
             } else {
                 $this->comment('Something went wrong! Asset Model ' . $row[2] . ' was NOT created');
             }
         }
         // Check for the asset match and create it if it doesn't exist
         $asset = new Asset();
         $asset->name = e($row[2]);
         $asset->serial = e($row[5]);
         $asset->asset_tag = e($row[6]);
         $asset->model_id = $asset_model->id;
         $asset->assigned_to = $user->id;
         $asset->rtd_location_id = $location->id;
         $asset->user_id = 1;
         $asset->status_id = $status_id;
         if ($asset->save()) {
             $this->comment('Asset ' . $row[2] . ' with serial number ' . $row[5] . ' was created');
         } else {
             $this->comment('Something went wrong! Asset ' . $row[5] . ' was NOT created');
         }
         $this->comment('=====================================');
         return true;
     });
 }
Example #6
0
 /**
  * @return void
  */
 function setName($name)
 {
     $this->asset->setFilename(Pimcore_File::getValidFilename($name));
     $this->asset->save();
 }
Example #7
0
 public function approve()
 {
     //check the users group
     $authorizers = Sentry::findGroupByName('Authorizers');
     $admins = Sentry::findGroupByName('Admin');
     //DLN authorizers
     if (Sentry::getUser()->inGroup($authorizers)) {
         $this->request_code = 1;
         $this->save();
         return array('success' => 1, 'message' => 'Request Approved', 'type' => $this->type);
     } elseif (Sentry::getUser()->inGroup($admins)) {
         //get all license types for request
         $lcnsNames = $this->licenseTypes()->lists('name');
         //get available license seats for each license type
         $that = $this;
         $toAdd = [];
         if ($this->type == 'license') {
             //TODO:: remove and place in seperate method - this will need to be used to update a request
             foreach ($lcnsNames as $lcnsName) {
                 $lcnsSeat = DB::table('licenses')->join('license_types', 'licenses.type_id', '=', 'license_types.id')->join('license_seats', 'licenses.id', '=', 'license_seats.license_id')->orwhere(function ($query) use($lcnsName, $that) {
                     $query->where('license_types.name', '=', $lcnsName)->where('licenses.role_id', $that->role_id)->whereNull('license_seats.assigned_to');
                 })->first();
                 //if seats available add it to array for later processing, else return with error message
                 if ($lcnsSeat) {
                     $toAdd[$lcnsName] = $lcnsSeat;
                 } else {
                     $messageKey = str_replace(' ', '', strtolower($lcnsName));
                     $error = Lang::get('request.message_no_lcns.' . $lcnsName);
                     return array('success' => 0, 'message' => $error);
                 }
             }
             foreach ($toAdd as $key => $lcnsSeat) {
                 if ($key == 'SABA Publisher') {
                     //create computer name as an asset if it doesnt exist
                     if ($obj = DB::table('assets')->where('serial', $this->pc_name)->first(array('id'))) {
                         $asset = Asset::find($obj->id);
                     } else {
                         $asset = new Asset();
                         $asset->name = "DWAN PC";
                         $asset->serial = $this->pc_name;
                         $asset->asset_tag = $this->pc_name;
                         $asset->model_id = 7;
                         //TODO: Remove this hard coding for model id
                         $asset->status_id = 1;
                         $asset->assigned_to = $this->account->id;
                     }
                     $asset->role_id = $this->role_id;
                     $asset->save();
                     License::checkOutToAsset($lcnsSeat->id, $asset->id);
                 }
                 //checkout to account the request has been made for
                 License::checkOutToAccount($lcnsSeat->id, $this->account_id);
             }
         } elseif ($this->type == 'checkin') {
             //clear license fields
             $seat = LicenseSeat::find($this->license_id);
             $seat->checkIn();
         }
         //detach requested licenses
         $this->licenseTypes()->detach();
         $type = $this->type;
         //marked as closed
         $this->delete();
         return array('success' => 1, 'message' => 'Request Approved', 'type' => $type);
     }
 }
 public static function saveGoogleProfileImage(&$google_user, &$user)
 {
     // profile image
     //if(property_exists($google_user, 'picture')) {
     $image_url = $google_user->picture;
     if ($image_url) {
         $image_url_parts = explode('?', $image_url);
         $image_url = $image_url_parts[0];
         $id = $user->id;
         $image_name = $user->username . '_' . $id . '.jpg';
         if ($user->profileImage && $user->profileImage->isShared() != true) {
             $user->profileImage->removeOldFile();
             $user->profileImage->saveRemoteAsset($image_url, $image_name, ASSET::ASSET_TYPE_IMAGE);
             $user->profileImage->user()->associate($user);
         } else {
             $userImage = new Asset();
             $userImage->path = 'assets/content/users';
             $userImage->saveRemoteAsset($image_url, $image_name, ASSET::ASSET_TYPE_IMAGE);
             $userImage->save();
             $user->profileImage()->save($userImage);
             $user->profileImage->user()->associate($user);
         }
     }
     //}
 }
Example #9
0
 public function makeDefaultProfileImage()
 {
     $userImage = $this->profileImage()->first();
     if ($userImage == null) {
         $userImage = new Asset();
     }
     $userImage->path = 'assets/content/users';
     $userImage->saveRemoteImage('assets/content/common/porfile-default.png', $this->username . '_' . $this->id . '.png');
     $userImage->user()->associate($this);
     $userImage->save();
     $this->profileImage()->save($userImage);
 }
Example #10
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     $filename = $this->argument('filename');
     if (!$this->option('testrun') == 'true') {
         $this->comment('======= Importing ' . $filename . ' =========');
     } else {
         $this->comment('====== TEST ONLY Import for ' . $filename . ' ====');
         $this->comment('============== NO DATA WILL BE WRITTEN ==============');
     }
     if (!ini_get("auto_detect_line_endings")) {
         ini_set("auto_detect_line_endings", '1');
     }
     $csv = Reader::createFromPath($this->argument('filename'));
     $csv->setNewline("\r\n");
     $csv->setOffset(1);
     $duplicates = '';
     // Loop through the records
     $nbInsert = $csv->each(function ($row) use($duplicates) {
         $status_id = 1;
         // Let's just map some of these entries to more user friendly words
         if (array_key_exists('0', $row)) {
             $user_name = $row[0];
         } else {
             $user_name = '';
         }
         if (array_key_exists('1', $row)) {
             $user_email = $row[1];
         } else {
             $user_email = '';
         }
         if (array_key_exists('2', $row)) {
             $user_asset_category = $row[2];
         } else {
             $user_asset_category = '';
         }
         if (array_key_exists('3', $row)) {
             $user_asset_name = $row[3];
         } else {
             $user_asset_name = '';
         }
         if (array_key_exists('4', $row)) {
             $user_asset_mfgr = $row[4];
         } else {
             $user_asset_mfgr = '';
         }
         if (array_key_exists('5', $row)) {
             $user_asset_modelno = $row[5];
         } else {
             $user_asset_modelno = '';
         }
         if (array_key_exists('6', $row)) {
             $user_asset_serial = $row[6];
         } else {
             $user_asset_serial = '';
         }
         if (array_key_exists('7', $row)) {
             $user_asset_tag = $row[7];
         } else {
             $user_asset_tag = '';
         }
         if (array_key_exists('8', $row)) {
             $user_asset_location = $row[8];
         } else {
             $user_asset_location = '';
         }
         if (array_key_exists('9', $row)) {
             $user_asset_notes = $row[9];
         } else {
             $user_asset_notes = '';
         }
         if (array_key_exists('10', $row)) {
             if ($row[10] != '') {
                 $user_asset_purchase_date = date("Y-m-d 00:00:01", strtotime($row[10]));
             } else {
                 $user_asset_purchase_date = '';
             }
         } else {
             $user_asset_purchase_date = '';
         }
         // A number was given instead of a name
         if (is_numeric($user_name)) {
             $this->comment('User ' . $user_name . ' is not a name - assume this user already exists');
             // No name was given
         } elseif ($user_name == '') {
             $this->comment('No user data provided - skipping user creation, just adding asset');
             $first_name = '';
             $last_name = '';
         } else {
             $name = explode(" ", $user_name);
             $first_name = $name[0];
             $email_last_name = '';
             if (!array_key_exists(1, $name)) {
                 $last_name = '';
                 $email_last_name = $last_name;
                 $email_prefix = $first_name;
             } else {
                 $last_name = str_replace($first_name, '', $user_name);
                 if ($this->option('email_format') == 'filastname') {
                     $email_last_name .= str_replace(' ', '', $last_name);
                     $email_prefix = $first_name[0] . $email_last_name;
                 } elseif ($this->option('email_format') == 'firstname.lastname') {
                     $email_last_name .= str_replace(' ', '', $last_name);
                     $email_prefix = $first_name . '.' . $email_last_name;
                 } elseif ($this->option('email_format') == 'firstname') {
                     $email_last_name .= str_replace(' ', '', $last_name);
                     $email_prefix = $first_name;
                 }
             }
             // Generate an email based on their name if no email address is given
             if ($user_email == '') {
                 if ($first_name == 'Unknown') {
                     $status_id = 7;
                 }
                 $email = strtolower($email_prefix) . '@' . $this->option('domain');
                 $user_email = str_replace("'", '', $email);
             }
         }
         $this->comment('Full Name: ' . $user_name);
         $this->comment('First Name: ' . $first_name);
         $this->comment('Last Name: ' . $last_name);
         $this->comment('Email: ' . $user_email);
         $this->comment('Category Name: ' . $user_asset_category);
         $this->comment('Item: ' . $user_asset_name);
         $this->comment('Manufacturer ID: ' . $user_asset_mfgr);
         $this->comment('Model No: ' . $user_asset_modelno);
         $this->comment('Serial No: ' . $user_asset_serial);
         $this->comment('Asset Tag: ' . $user_asset_tag);
         $this->comment('Location: ' . $user_asset_location);
         $this->comment('Purchase Date: ' . $user_asset_purchase_date);
         $this->comment('Notes: ' . $user_asset_notes);
         $this->comment('------------- Action Summary ----------------');
         if ($user_email != '') {
             if ($user = User::where('email', $user_email)->first()) {
                 $this->comment('User ' . $user_email . ' already exists');
             } else {
                 // Create the user
                 $user = Sentry::createUser(array('first_name' => $first_name, 'last_name' => $last_name, 'email' => $user_email, 'password' => substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 10), 'activated' => true, 'permissions' => array('admin' => 0, 'user' => 1), 'notes' => 'Imported user'));
                 // Find the group using the group id
                 $userGroup = Sentry::findGroupById(3);
                 // Assign the group to the user
                 $user->addGroup($userGroup);
                 $this->comment('User ' . $first_name . ' created');
             }
         } else {
             $user = new User();
         }
         // Check for the location match and create it if it doesn't exist
         if ($location = Location::where('name', $user_asset_location)->first()) {
             $this->comment('Location ' . $user_asset_location . ' already exists');
         } else {
             $location = new Location();
             $location->name = e($user_asset_location);
             $location->address = '';
             $location->city = '';
             $location->state = '';
             $location->country = '';
             $location->user_id = 1;
             if (!$this->option('testrun') == 'true') {
                 if ($location->save()) {
                     $this->comment('Location ' . $user_asset_location . ' was created');
                 } else {
                     $this->comment('Something went wrong! Location ' . $user_asset_location . ' was NOT created');
                 }
             } else {
                 $this->comment('Location ' . $user_asset_location . ' was (not) created - test run only');
             }
         }
         // Check for the category match and create it if it doesn't exist
         if ($category = Category::where('name', $user_asset_category)->where('category_type', 'asset')->first()) {
             $this->comment('Category ' . $user_asset_category . ' already exists');
         } else {
             $category = new Category();
             $category->name = e($user_asset_category);
             $category->category_type = 'asset';
             $category->user_id = 1;
             if ($category->save()) {
                 $this->comment('Category ' . $user_asset_category . ' was created');
             } else {
                 $this->comment('Something went wrong! Category ' . $user_asset_category . ' was NOT created');
             }
         }
         // Check for the manufacturer match and create it if it doesn't exist
         if ($manufacturer = Manufacturer::where('name', $user_asset_mfgr)->first()) {
             $this->comment('Manufacturer ' . $user_asset_mfgr . ' already exists');
         } else {
             $manufacturer = new Manufacturer();
             $manufacturer->name = e($user_asset_mfgr);
             $manufacturer->user_id = 1;
             if ($manufacturer->save()) {
                 $this->comment('Manufacturer ' . $user_asset_mfgr . ' was created');
             } else {
                 $this->comment('Something went wrong! Manufacturer ' . $user_asset_mfgr . ' was NOT created');
             }
         }
         // Check for the asset model match and create it if it doesn't exist
         if ($asset_model = Model::where('name', $user_asset_name)->where('modelno', $user_asset_modelno)->where('category_id', $category->id)->where('manufacturer_id', $manufacturer->id)->first()) {
             $this->comment('The Asset Model ' . $user_asset_name . ' with model number ' . $user_asset_modelno . ' already exists');
         } else {
             $asset_model = new Model();
             $asset_model->name = e($user_asset_name);
             $asset_model->manufacturer_id = $manufacturer->id;
             $asset_model->modelno = e($user_asset_modelno);
             $asset_model->category_id = $category->id;
             $asset_model->user_id = 1;
             if ($asset_model->save()) {
                 $this->comment('Asset Model ' . $user_asset_name . ' with model number ' . $user_asset_modelno . ' was created');
             } else {
                 $this->comment('Something went wrong! Asset Model ' . $user_asset_name . ' was NOT created');
             }
         }
         // Check for the asset match and create it if it doesn't exist
         $asset = new Asset();
         $asset->name = e($user_asset_name);
         $asset->serial = e($user_asset_serial);
         $asset->asset_tag = e($user_asset_tag);
         $asset->model_id = $asset_model->id;
         $asset->assigned_to = $user->id;
         $asset->rtd_location_id = $location->id;
         $asset->user_id = 1;
         $asset->status_id = $status_id;
         if ($user_asset_purchase_date != '') {
             $asset->purchase_date = $user_asset_purchase_date;
         } else {
             $asset->purchase_date = NULL;
         }
         $asset->notes = e($user_asset_notes);
         if ($asset->save()) {
             $this->comment('Asset ' . $user_asset_name . ' with serial number ' . $user_asset_serial . ' was created');
         } else {
             $this->comment('Something went wrong! Asset ' . $user_asset_name . ' was NOT created');
         }
         $this->comment('=====================================');
         return true;
     });
 }
 public function register()
 {
     $wantsJson = Request::wantsJson();
     $creds = GoogleSessionController::getCreds();
     $client = GoogleSessionController::getClient();
     $code = Input::get('code');
     if ($code) {
         // Exchange the OAuth 2.0 authorization code for user credentials.
         $client->authenticate($code);
         $token = json_decode($client->getAccessToken());
         $attributes = $client->verifyIdToken($token->id_token, $creds->client_id)->getAttributes();
         $oauth2 = new Google_Service_Oauth2($client);
         $google_user = $oauth2->userinfo->get();
         $email = $google_user->email;
         $username = explode("@", $email)[0];
         // return Response::json(['errors'=>$user->givenName]);
         if ($google_user->hd != 'ideo.com') {
             $errors = ['errors' => [Config::get('config.site_name') . ' is for IDEO only']];
             return $wantsJson ? Response::json($errors) : Redirect::to('register')->with($errors);
         }
         $user = new User();
         $user->username = $username;
         $user->email = $email;
         $password = Hash::make($username);
         // <-- temp...
         $user->firstname = $google_user->givenName;
         $user->lastname = $google_user->familyName;
         $user->password = $password;
         $user->password_confirmation = $password;
         $user->confirmation_code = md5($user->username . time('U'));
         $user->google_token = json_encode($token);
         if ($user->save()) {
             // profile image
             $image_url = $google_user->picture;
             if ($image_url) {
                 $image_url_parts = explode('?', $image_url);
                 $image_url = $image_url_parts[0];
                 $id = $user->id;
                 $image_name = $username . '_' . $id . '.jpg';
                 $save_path = 'assets/content/users';
                 $userImage = new Asset();
                 $userImage->saveRemoteImage($image_url, $save_path, $image_name);
                 $userImage->save();
                 $user->profileImage()->save($userImage);
             }
             // Roles
             if ($username == 'tvanderlin') {
                 $adminRole = Role::where('name', '=', 'Admin')->first();
                 $user->attachRole($adminRole);
             } else {
                 $role = $role = Role::where('name', '=', 'Writer')->first();
                 if ($role) {
                     $user->attachRole($role);
                     $user->save();
                 }
             }
             $back_url = 'users/' . $username;
             Auth::login($user);
             return Redirect::to($back_url);
         } else {
             return $wantsJson ? Response::json(['errors' => $user->errors()->all()]) : Redirect::to('register')->with(['errors' => $user->errors()->all()]);
         }
         return Response::json(['data' => $token, 'attr' => $attributes, 'user' => $user]);
     }
     return $wantsJson ? Response::json(['errors' => ['Missing OAuth Code']]) : Redirect::to('register')->with(['errors' => $user->errors()->all()]);
 }
Example #12
0
 public function seedUsers()
 {
     $user_photos = File::files($this->seed_path);
     Asset::setFromSeed(true);
     foreach (User::all() as $user) {
         $user->delete();
     }
     $faker = Faker\Factory::create();
     $seeder = new LOFaker();
     $n = 50;
     // also creat admin users (kim & I)
     $admins = array(['username' => 'tvanderlin', 'firstname' => 'Todd', 'lastname' => 'Vanderlin', 'email' => '*****@*****.**'], ['username' => 'kmiller', 'firstname' => 'Kim', 'lastname' => 'Miller', 'email' => '*****@*****.**']);
     foreach ($admins as $data) {
         $data = (object) $data;
         $user = new User();
         $user->timestamps = false;
         $user->email = $data->email;
         $user->username = $data->username;
         $user->firstname = $data->firstname;
         $user->lastname = $data->lastname;
         $password = Hash::make($user->username);
         $user->password = $password;
         $user->password_confirmation = $password;
         $user->confirmed = 1;
         $user->confirmation_code = md5($user->username . time('U'));
         $user->created_at = $user->updated_at = $faker->dateTimeBetween('-3 years', 'now');
         $user->save();
         $role = Role::where('name', '=', 'Admin')->first();
         $user->save();
         $user->attachRole($role);
         $user->save();
         $this->info('Creating *** Admin *** User: '******'men', 'women']);
         $photo = array_random_item($user_photos);
         $role = Role::where('name', '=', 'Writer')->first();
         $joinDate = $faker->dateTimeBetween('-3 years', 'now');
         $user = new User();
         $user->timestamps = false;
         $user->email = 'fake_' . $faker->unique()->email;
         $user->firstname = $faker->firstname;
         $user->lastname = $faker->lastname;
         $user->username = preg_replace("/[^A-Za-z0-9 ]/", '', $faker->unique()->userName);
         $password = Hash::make($faker->password);
         $user->password = $password;
         $user->password_confirmation = $password;
         $user->confirmed = 1;
         $user->confirmation_code = md5($user->username . time('U'));
         $user->created_at = $user->updated_at = $joinDate;
         if ($user->save() == false) {
             $this->error($user->errors() . " " . $user->username);
         }
         $userImage = new Asset();
         $userImage->path = 'assets/content/users';
         $userImage->saveLocalFile($photo, $user->username . ".jpg", Asset::ASSET_TYPE_IMAGE);
         $userImage->save();
         $user->profileImage()->save($userImage);
         $user->profileImage->user()->associate($user);
         $user->save();
         $user->attachRole($role);
         $user->save();
         $this->info($user->id . ' Creating User: ' . $user->getName() . " [{$user->username}, {$user->email}]");
     }
     foreach (User::all() as $user) {
         Notification::fire($user, Notification::NOTIFICATION_HALP_WELCOME);
     }
 }
Example #13
0
 public function createFakeUser()
 {
     $random_user_data = (object) json_decode(get_remote_file('http://api.randomuser.me/'));
     $random_user_data = $random_user_data->results[0]->user;
     $faker = Faker\Factory::create();
     $role = $role = Role::where('name', '=', 'Writer')->first();
     $joinDate = $faker->dateTimeBetween('-3 years', 'now');
     $user = new User();
     $user->timestamps = false;
     $user->username = $random_user_data->username;
     $user->email = $random_user_data->email;
     $password = Hash::make($random_user_data->username);
     $user->firstname = $random_user_data->name->first;
     $user->lastname = $random_user_data->name->last;
     $user->password = $password;
     $user->password_confirmation = $password;
     $user->confirmed = 1;
     $user->confirmation_code = md5($user->username . time('U'));
     $user->created_at = $user->updated_at = $joinDate;
     $user->save();
     $image_url = $random_user_data->picture->large;
     $userImage = new Asset();
     $userImage->path = 'assets/content/users';
     $userImage->saveRemoteAsset($image_url, $user->username . ".jpg", Asset::ASSET_TYPE_IMAGE);
     $userImage->save();
     $user->profileImage()->save($userImage);
     $user->profileImage->user()->associate($user);
     $user->save();
     $user->attachRole($role);
     $user->save();
     return $user;
 }
 private function processImport($file, $assetClass)
 {
     if (Session::has('username') && (Session::get('user_type') == "Root" || Session::get('user_type') == "Admin")) {
         if (!in_array($file->getClientOriginalExtension(), array("xls", "xlsx", "csv"))) {
             Input::flash();
             return Redirect::to('assets/network/import')->with('message', "Invalid file selected.");
         } else {
             $filename = "upload-" . str_random(9) . "." . $file->getClientOriginalExtension();
             $file->move("uploads", $filename);
             $readFile = "uploads/" . $filename;
             $reader = Excel::selectSheetsByIndex(0)->load($readFile, function ($reader) {
             })->get();
             /*
              * 				Before validating each rows of the file uploaded, the file itself is checked if it has the valid attributes (columns)
              * 				using the algorithm found below.
              *
              * 				1. File is read.
              * 				2. Boolean variable $excelIsValid to check if the file is valid. Set to false by default.
              *
              */
             $excelChecker = Excel::selectSheetsByIndex(0)->load($readFile, function ($reader) {
             })->get()->toArray();
             $excelIsValid = false;
             /*
              * 				3. Loop through the excel file and check if at least once all the columns have been present.
              * 				4. If it does, $excelIsValid is set to true.
              * 				5. If $excelIsValid is still false by end of the loop, it is automatically assumed that the file is:
              * 					A.) Empty
              * 					B.) Does not have the right attributes.
              * 					C.) Has valid columns, but does not have any valid entry.
              *
              */
             foreach ($excelChecker as $ex) {
                 if (isset($ex["assettag"]) && isset($ex["serialnumber"]) && isset($ex["status"])) {
                     $excelIsValid = true;
                 }
             }
             /*				6. If file is invalid, redirect to import form and return an error. */
             if (!$excelIsValid) {
                 Input::flash();
                 File::delete($readFile);
                 return Redirect::to('assets/network/import')->with('message', "Excel file has invalid attributes. Please download the form.");
             }
             /*
              * 				CHECKING EXCEL FILE FOR ERRORS WHILE READING THE ROWS
              *
              * 				1. $hasError is a Boolean variable that is simply used to tell if any error has been found.
              * 					This variable is, by default, set to false. If any error has been detected, it is set to true,
              * 					regardless of how many errors has been detected.
              *
              * 				2. $rowIndex indexes which row the reader is currently reading. Default value set to 1 because
              * 					the first row of excel files is automatically set as the attribute row. When the reader reads each row,
              * 					$rowIndex is incremented. For example, reader is currently reading row 2, $rowIndex will then be incremented,
              * 					setting its value to 2, thus the row number.
              *
              * 				3. $rowsWithErrors is the array of the rows with errors. To explain further, let's say excel file has 10 readable (non-attrib)
              * 					rows. No errors were found from rows number 2-8, but errors were found in rows 9, 10, and 11. These 9, 10, and 11
              * 					will then be in the $rowsWithError.
              *
              * 				4. $error array is the variable that will be used to collect all errors found from the excel file.
              * 					This is a two-dimensional array.
              *
              *
              */
             $hasError = false;
             //Detects if there are any errors.
             $hasCorrectRows = false;
             $rowIndex = 1;
             //Indexes which row the reader is reading.
             $rowsWithErrors = array();
             //This is used to contain in an array the row numbers of the rows with error.
             $error = array();
             //Error details collector.
             foreach ($reader as $r) {
                 /*
                  * 				5. Here, we immediately increment the value of $rowIndex, since the variable will be used in the core logic of this method.
                  *
                  * 				6. $errorCount variable is a variable used in every loop. Set to 0 when the loop begins, so it always comes back to 0 for every loop.
                  * 					$errorCount is used to track the number of errors for the current row. This variable goes hand in hand with the
                  * 					$rowsWithError array when publishing the rows with errors, and the error details for each row with error.
                  *
                  * 					This is how $rowsWithError and $rowCount will be used:
                  *
                  * 					for each $rowWithErrors:
                  * 						Row $rowWithErrors Index:
                  * 							Errors Found :
                  * 							$rowCount 1. Foo bar
                  * 							$rowCount 2. Jane Doe etc..
                  *
                  *
                  */
                 $rowIndex += 1;
                 $errorCount = 0;
                 //Counts the number of errors for the currect row.
                 $rowHasError = false;
                 //Check if this row has error. I will use this before the reading of the row ends.
                 //					If $rowHasError is still false by end of the reading, then I will write it in the database.
                 /*"CP"=>"CP",
                 			"Dual Boot"=>"Dual Boot",
                 		"Nokia"=>"Nokia",
                 		"NWL"=>"NWL",
                 		"OAM"=>"OAM",
                 		"Recruitment"=>"Recruitment",
                 		"Ubuntu"=>"Ubuntu"
                 		*
                 		*/
                 $warranty_start = !empty(trim($r->warrantystart)) ? trim($r->warrantystart) : "1994-04-16";
                 $validator = Validator::make(array("asset tag" => trim($r->assettag), "serial number" => trim($r->serialnumber), "model" => trim($r->modelid), "employee number" => trim($r->employeenumber), "status" => trim($r->status), "warranty start date" => trim($r->warrantystart), "warranty end date" => trim($r->warrantyend)), array("asset tag" => "required|unique:tbl_assets,asset_tag", "serial number" => "required|unique:tbl_assets,serial_number", "model" => "exists:tbl_asset_models,id", "employee number" => "numeric|exists:tbl_employees,employee_number", "status" => "required|in:Available,For Repair,Installed,Lost,Retired", "warranty start date" => "required_with:warranty end date|date:Y-m-d", "warranty end date" => "date:Y-m-d|after:" . $warranty_start), array("after" => "The :attribute must be after the warranty start date."));
                 if ($validator->fails()) {
                     /* 					7. When error has been found, $rowsWithError is immediately updated. Also, $hasError and $rowHasError are set to true.*/
                     $hasError = true;
                     $rowHasError = true;
                     $rowsWithErrors[$rowIndex] = $rowIndex;
                     /* 					8. Then I will check which fields have errors.
                      *
                      *					9. If an error has been found in a certain field,
                      *					   I will loop through the errors found on that field, increment the $errorCount (which, again, tracks
                      *					   how many errors has been found on a certain row.), update the two-dimensional $error array.
                      *					   Please note that the first array of $error contains the row number which the errors found belong to.
                      *
                      */
                     if ($validator->messages()->get("asset tag")) {
                         foreach ($validator->messages()->get("asset tag") as $e) {
                             $errorCount += 1;
                             $error[$rowIndex][$errorCount] = $errorCount . ". " . $e . "<br/>";
                         }
                     }
                     if ($validator->messages()->get("serial number")) {
                         foreach ($validator->messages()->get("serial number") as $e) {
                             $errorCount += 1;
                             $error[$rowIndex][$errorCount] = $errorCount . ". " . $e . "<br/>";
                         }
                     }
                     if ($validator->messages()->get("model")) {
                         foreach ($validator->messages()->get("model") as $e) {
                             $errorCount += 1;
                             $error[$rowIndex][$errorCount] = $errorCount . ". " . $e . "<br/>";
                         }
                     }
                     if ($validator->messages()->get("employee number")) {
                         foreach ($validator->messages()->get("employee number") as $e) {
                             $errorCount += 1;
                             $error[$rowIndex][$errorCount] = $errorCount . ". " . $e . "<br/>";
                         }
                     }
                     if ($validator->messages()->get("status")) {
                         foreach ($validator->messages()->get("status") as $e) {
                             $errorCount += 1;
                             $error[$rowIndex][$errorCount] = $errorCount . ". " . $e . "<br/>";
                         }
                     }
                     if ($validator->messages()->get("warranty start date")) {
                         foreach ($validator->messages()->get("warranty start date") as $e) {
                             $errorCount += 1;
                             $error[$rowIndex][$errorCount] = $errorCount . ". " . $e . "<br/>";
                         }
                     }
                     if ($validator->messages()->get("warranty end date")) {
                         foreach ($validator->messages()->get("warranty end date") as $e) {
                             $errorCount += 1;
                             $error[$rowIndex][$errorCount] = $errorCount . ". " . $e . "<br/>";
                         }
                     }
                 }
                 if ($r->status != "Lost" && Employee::where("employee_number", "=", $r->employeenumber)->whereIn("status", array("OJT Graduate", "Graduate", "Resigned", "Obsolete"))->first()) {
                     $hasError = true;
                     //This will only matter if no errors has been found above.
                     $rowHasError = true;
                     //This will only matter if no errors has been found above.
                     $rowsWithErrors[$rowIndex] = $rowIndex;
                     //This will only matter if no errors has been found above.
                     $errorCount += 1;
                     $error[$rowIndex][$errorCount] = $errorCount . ". " . "Cannot assign an asset to employees no longer working in the company." . "<br/>";
                 }
                 if ($r->modelid != null && !Model::where("classification_id", "=", $assetClass)->where("id", "=", $r->modelid)->first()) {
                     $hasError = true;
                     //This will only matter if no errors has been found above.
                     $rowHasError = true;
                     //This will only matter if no errors has been found above.
                     $rowsWithErrors[$rowIndex] = $rowIndex;
                     //This will only matter if no errors has been found above.
                     $errorCount += 1;
                     $error[$rowIndex][$errorCount] = $errorCount . ". " . "The asset model does not belong to the selected asset type." . "<br/>";
                 }
                 if (!$rowHasError) {
                     $hasCorrectRows = true;
                     //To set image as null if asset class is not laptop.
                     $image = !AssetClassification::where("id", "=", $assetClass)->where("name", "=", "Laptops")->first() ? null : $r->image;
                     //Add the new asset
                     $asset = new Asset();
                     $asset->asset_tag = trim($r->assettag);
                     $asset->serial_number = trim($r->serialnumber) != null ? trim($r->serialnumber) : null;
                     $asset->model_id = $r->modelid != null ? $r->modelid : null;
                     $asset->location = $r->location != null ? $r->location : null;
                     $asset->employee_number = $r->employeenumber != null ? trim($r->employeenumber) : null;
                     $asset->warranty_start = trim($r->warrantystart) != null ? trim($r->warrantystart) : null;
                     $asset->warranty_end = trim($r->warrantyend) != null ? $r->warrantyend : null;
                     $asset->classification_id = $assetClass;
                     $asset->status = trim($r->status);
                     $asset->notes = trim($r->notes) != null ? trim($r->notes) : null;
                     $asset->date_added = date("Y-m-d H:i:s");
                     $asset->save();
                     //Log the new asset to asset logs
                     if (!empty(trim($r->employeenumber))) {
                         $employee = Employee::where("employee_number", "=", $r->employeenumber)->first();
                         $desc = "Network Asset <strong>" . $asset->asset_tag . ",</strong> SN: <strong>" . $asset->serial_number . "</strong> added to the database and assigned to employee <strong>" . $employee->first_name . " " . $employee->last_name . "</strong> with asset status <strong>" . $asset->status . "</strong>.";
                     } else {
                         $desc = "Network Asset <strong>" . $asset->asset_tag . "</strong>, SN: <strong>" . $asset->serial_number . "</strong> added to the database with status <strong>" . $asset->status . "</strong>.";
                     }
                     $assetLog = new AssetLog();
                     $assetLog->user_id = Session::get("user_id");
                     $assetLog->asset_id = $asset->id;
                     $assetLog->employee_id = !empty($asset->employee->id) ? $asset->employee->id : null;
                     $assetLog->description = $desc;
                     $assetLog->transaction = "History";
                     $assetLog->save();
                     //Parallel logging to system logs
                     $desc = "(" . Session::get('user_type') . ") " . "<strong>" . Session::get('username') . "</strong> added network asset <strong>" . $asset->asset_tag . "</strong>, SN: <strong>" . $asset->serial_number . "</strong> ";
                     $newLog = new UserLog();
                     $newLog->description = $desc;
                     $newLog->user_id = Session::get('user_id');
                     $newLog->type = "System";
                     $newLog->save();
                 }
             }
             File::delete($readFile);
             if ($hasCorrectRows) {
                 //Log the changes made
                 $desc = "(" . Session::get("user_type") . ") <b>" . Session::get("username") . "</b> has imported data to network assets database. ";
                 $newLog = new UserLog();
                 $newLog->description = $desc;
                 $newLog->user_id = Session::get('user_id');
                 $newLog->save();
             }
             return $this->importResult($hasError, $hasCorrectRows, $rowsWithErrors, $error);
         }
     } else {
         return Redirect::to('/');
     }
 }
 /**
  * update_images()
  * Updates the image details for an entire image set (thumbnail, small, image) */
 function update_images($images)
 {
     if (!is_array($images)) {
         return false;
     }
     $db = DB::get();
     $table = DatabaseObject::tablename(Asset::$table);
     foreach ($images as $i => $img) {
         $query = "SELECT imgs.id FROM {$table} AS thumb LEFT JOIN {$table} AS imgs ON thumb.src=imgs.src OR thumb.src=imgs.id WHERE thumb.id={$img['id']}";
         $imageset = $db->query($query);
         foreach ($imageset as $is) {
             $Image = new Asset();
             unset($Image->_datatypes['data'], $Image->data);
             $Image->load($is->id);
             $Image->properties['title'] = $img['title'];
             $Image->properties['alt'] = $img['alt'];
             $Image->save();
         }
     }
     return true;
 }
 function save_category($Category)
 {
     global $Shopp;
     $db = DB::get();
     check_admin_referer('shopp-save-category');
     if (!current_user_can(SHOPP_USERLEVEL)) {
         wp_die(__('You do not have sufficient permissions to access this page.'));
     }
     $this->settings_save();
     // Save workflow setting
     $Shopp->Catalog = new Catalog();
     $Shopp->Catalog->load_categories(array('where' => 'true'));
     if (!isset($_POST['slug']) && empty($Category->slug)) {
         $Category->slug = sanitize_title_with_dashes($_POST['name']);
     }
     if (isset($_POST['slug'])) {
         unset($_POST['slug']);
     }
     // Work out pathing
     $paths = array();
     if (!empty($Category->slug)) {
         $paths = array($Category->slug);
     }
     // Include self
     $parentkey = -1;
     // If we're saving a new category, lookup the parent
     if ($_POST['parent'] > 0) {
         array_unshift($paths, $Shopp->Catalog->categories[$_POST['parent']]->slug);
         $parentkey = $Shopp->Catalog->categories[$_POST['parent']]->parent;
     }
     while ($category_tree = $Shopp->Catalog->categories[$parentkey]) {
         array_unshift($paths, $category_tree->slug);
         $parentkey = $category_tree->parent;
     }
     if (count($paths) > 1) {
         $_POST['uri'] = join("/", $paths);
     } else {
         $_POST['uri'] = $paths[0];
     }
     if (!empty($_POST['deleteImages'])) {
         $deletes = array();
         if (strpos($_POST['deleteImages'], ",")) {
             $deletes = explode(',', $_POST['deleteImages']);
         } else {
             $deletes = array($_POST['deleteImages']);
         }
         $Category->delete_images($deletes);
     }
     if (!empty($_POST['images']) && is_array($_POST['images'])) {
         $Category->link_images($_POST['images']);
         $Category->save_imageorder($_POST['images']);
         if (!empty($_POST['imagedetails']) && is_array($_POST['imagedetails'])) {
             foreach ($_POST['imagedetails'] as $i => $data) {
                 $Image = new Asset();
                 unset($Image->_datatypes['data'], $Image->data);
                 $Image->load($data['id']);
                 $Image->properties['title'] = $data['title'];
                 $Image->properties['alt'] = $data['alt'];
                 $Image->save();
             }
         }
     }
     // Variation price templates
     if (!empty($_POST['price']) && is_array($_POST['price'])) {
         foreach ($_POST['price'] as &$pricing) {
             $pricing['price'] = floatvalue($pricing['price']);
             $pricing['saleprice'] = floatvalue($pricing['saleprice']);
             $pricing['shipfee'] = floatvalue($pricing['shipfee']);
         }
         $Category->prices = stripslashes_deep($_POST['price']);
     } else {
         $Category->prices = array();
     }
     if (empty($_POST['specs'])) {
         $Category->specs = array();
     } else {
         $_POST['specs'] = stripslashes_deep($_POST['specs']);
     }
     if (empty($_POST['options']) || count($_POST['options']) == 1 && !isset($_POST['options'][1]['options'])) {
         $_POST['options'] = $Category->options = array();
         $_POST['prices'] = $Category->prices = array();
     } else {
         $_POST['options'] = stripslashes_deep($_POST['options']);
     }
     if (isset($_POST['content'])) {
         $_POST['description'] = $_POST['content'];
     }
     $Category->updates($_POST);
     $Category->save();
     do_action_ref_array('shopp_category_saved', array(&$Category));
     $updated = '<strong>' . $Category->name . '</strong> ' . __('category saved.', 'Shopp');
 }
Example #17
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     $filename = $this->argument('filename');
     if (!$this->option('testrun') == 'true') {
         $this->comment('======= Importing Assets from ' . $filename . ' =========');
     } else {
         $this->comment('====== TEST ONLY Asset Import for ' . $filename . ' ====');
         $this->comment('============== NO DATA WILL BE WRITTEN ==============');
     }
     if (!ini_get("auto_detect_line_endings")) {
         ini_set("auto_detect_line_endings", '1');
     }
     $csv = Reader::createFromPath($this->argument('filename'));
     $csv->setNewline("\r\n");
     $csv->setOffset(1);
     $duplicates = '';
     // Loop through the records
     $nbInsert = $csv->each(function ($row) use($duplicates) {
         $status_id = 1;
         // Let's just map some of these entries to more user friendly words
         // User's name
         if (array_key_exists('0', $row)) {
             $user_name = trim($row[0]);
         } else {
             $user_name = '';
         }
         // User's email
         if (array_key_exists('1', $row)) {
             $user_email = trim($row[1]);
         } else {
             $user_email = '';
         }
         // User's email
         if (array_key_exists('2', $row)) {
             $user_username = trim($row[2]);
         } else {
             $user_username = '';
         }
         // Asset Name
         if (array_key_exists('3', $row)) {
             $user_asset_asset_name = trim($row[3]);
         } else {
             $user_asset_asset_name = '';
         }
         // Asset Category
         if (array_key_exists('4', $row)) {
             $user_asset_category = trim($row[4]);
         } else {
             $user_asset_category = '';
         }
         // Asset Name
         if (array_key_exists('5', $row)) {
             $user_asset_name = trim($row[5]);
         } else {
             $user_asset_name = '';
         }
         // Asset Manufacturer
         if (array_key_exists('6', $row)) {
             $user_asset_mfgr = trim($row[6]);
         } else {
             $user_asset_mfgr = '';
         }
         // Asset model number
         if (array_key_exists('7', $row)) {
             $user_asset_modelno = trim($row[7]);
         } else {
             $user_asset_modelno = '';
         }
         // Asset serial number
         if (array_key_exists('8', $row)) {
             $user_asset_serial = trim($row[8]);
         } else {
             $user_asset_serial = '';
         }
         // Asset tag
         if (array_key_exists('9', $row)) {
             $user_asset_tag = trim($row[9]);
         } else {
             $user_asset_tag = '';
         }
         // Asset location
         if (array_key_exists('10', $row)) {
             $user_asset_location = trim($row[10]);
         } else {
             $user_asset_location = '';
         }
         // Asset notes
         if (array_key_exists('11', $row)) {
             $user_asset_notes = trim($row[11]);
         } else {
             $user_asset_notes = '';
         }
         // Asset purchase date
         if (array_key_exists('12', $row)) {
             if ($row[12] != '') {
                 $user_asset_purchase_date = date("Y-m-d 00:00:01", strtotime($row[12]));
             } else {
                 $user_asset_purchase_date = '';
             }
         } else {
             $user_asset_purchase_date = '';
         }
         // Asset purchase cost
         if (array_key_exists('13', $row)) {
             if ($row[13] != '') {
                 $user_asset_purchase_cost = trim($row[13]);
             } else {
                 $user_asset_purchase_cost = '';
             }
         } else {
             $user_asset_purchase_cost = '';
         }
         // Asset Company Name
         if (array_key_exists('14', $row)) {
             if ($row[14] != '') {
                 $user_asset_company_name = trim($row[14]);
             } else {
                 $user_asset_company_name = '';
             }
         } else {
             $user_asset_company_name = '';
         }
         // A number was given instead of a name
         if (is_numeric($user_name)) {
             $this->comment('User ' . $user_name . ' is not a name - assume this user already exists');
             $user_username = '';
             // No name was given
         } elseif ($user_name == '') {
             $this->comment('No user data provided - skipping user creation, just adding asset');
             $first_name = '';
             $last_name = '';
             //$user_username = '';
         } else {
             $user_email_array = User::generateFormattedNameFromFullName($this->option('email_format'), $user_name);
             $first_name = $user_email_array['first_name'];
             $last_name = $user_email_array['last_name'];
             if ($user_email == '') {
                 $user_email = $user_email_array['username'] . '@' . Config::get('app.domain');
             }
             if ($user_username == '') {
                 if ($this->option('username_format') == 'email') {
                     $user_username = $user_email;
                 } else {
                     $user_name_array = User::generateFormattedNameFromFullName($this->option('username_format'), $user_name);
                     $user_username = $user_name_array['username'];
                 }
             }
         }
         $this->comment('Full Name: ' . $user_name);
         $this->comment('First Name: ' . $first_name);
         $this->comment('Last Name: ' . $last_name);
         $this->comment('Username: '******'Email: ' . $user_email);
         $this->comment('Category Name: ' . $user_asset_category);
         $this->comment('Item: ' . $user_asset_name);
         $this->comment('Manufacturer ID: ' . $user_asset_mfgr);
         $this->comment('Model No: ' . $user_asset_modelno);
         $this->comment('Serial No: ' . $user_asset_serial);
         $this->comment('Asset Tag: ' . $user_asset_tag);
         $this->comment('Location: ' . $user_asset_location);
         $this->comment('Purchase Date: ' . $user_asset_purchase_date);
         $this->comment('Purchase Cost: ' . $user_asset_purchase_cost);
         $this->comment('Notes: ' . $user_asset_notes);
         $this->comment('Company Name: ' . $user_asset_company_name);
         $this->comment('------------- Action Summary ----------------');
         if ($user_username != '') {
             if ($user = User::MatchEmailOrUsername($user_username, $user_email)->whereNotNull('username')->first()) {
                 $this->comment('User ' . $user_username . ' already exists');
             } else {
                 // Create the user
                 $user = Sentry::createUser(array('first_name' => $first_name, 'last_name' => $last_name, 'email' => $user_email, 'username' => $user_username, 'password' => substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 12), 'activated' => true, 'permissions' => array('admin' => 0, 'user' => 1), 'notes' => 'User imported through asset importer'));
                 // Find the group using the group id
                 $userGroup = Sentry::findGroupById(3);
                 // Assign the group to the user
                 $user->addGroup($userGroup);
                 $this->comment('User ' . $first_name . ' created');
             }
         } else {
             $user = new User();
         }
         // Check for the location match and create it if it doesn't exist
         if ($location = Location::where('name', e($user_asset_location))->first()) {
             $this->comment('Location ' . $user_asset_location . ' already exists');
         } else {
             $location = new Location();
             if ($user_asset_location != '') {
                 $location->name = e($user_asset_location);
                 $location->address = '';
                 $location->city = '';
                 $location->state = '';
                 $location->country = '';
                 $location->user_id = 1;
                 if (!$this->option('testrun') == 'true') {
                     if ($location->save()) {
                         $this->comment('Location ' . $user_asset_location . ' was created');
                     } else {
                         $this->comment('Something went wrong! Location ' . $user_asset_location . ' was NOT created');
                     }
                 } else {
                     $this->comment('Location ' . $user_asset_location . ' was (not) created - test run only');
                 }
             } else {
                 $this->comment('No location given, so none created.');
             }
         }
         if (e($user_asset_category) == '') {
             $category_name = 'Unnamed Category';
         } else {
             $category_name = e($user_asset_category);
         }
         // Check for the category match and create it if it doesn't exist
         if ($category = Category::where('name', e($category_name))->where('category_type', 'asset')->first()) {
             $this->comment('Category ' . $category_name . ' already exists');
         } else {
             $category = new Category();
             $category->name = e($category_name);
             $category->category_type = 'asset';
             $category->user_id = 1;
             if ($category->save()) {
                 $this->comment('Category ' . $user_asset_category . ' was created');
             } else {
                 $this->comment('Something went wrong! Category ' . $user_asset_category . ' was NOT created');
             }
         }
         // Check for the manufacturer match and create it if it doesn't exist
         if ($manufacturer = Manufacturer::where('name', e($user_asset_mfgr))->first()) {
             $this->comment('Manufacturer ' . $user_asset_mfgr . ' already exists');
         } else {
             $manufacturer = new Manufacturer();
             $manufacturer->name = e($user_asset_mfgr);
             $manufacturer->user_id = 1;
             if ($manufacturer->save()) {
                 $this->comment('Manufacturer ' . $user_asset_mfgr . ' was created');
             } else {
                 $this->comment('Something went wrong! Manufacturer ' . $user_asset_mfgr . ' was NOT created');
             }
         }
         // Check for the asset model match and create it if it doesn't exist
         if ($asset_model = Model::where('name', e($user_asset_name))->where('modelno', e($user_asset_modelno))->where('category_id', $category->id)->where('manufacturer_id', $manufacturer->id)->first()) {
             $this->comment('The Asset Model ' . $user_asset_name . ' with model number ' . $user_asset_modelno . ' already exists');
         } else {
             $asset_model = new Model();
             $asset_model->name = e($user_asset_name);
             $asset_model->manufacturer_id = $manufacturer->id;
             $asset_model->modelno = e($user_asset_modelno);
             $asset_model->category_id = $category->id;
             $asset_model->user_id = 1;
             if ($asset_model->save()) {
                 $this->comment('Asset Model ' . $user_asset_name . ' with model number ' . $user_asset_modelno . ' was created');
             } else {
                 $this->comment('Something went wrong! Asset Model ' . $user_asset_name . ' was NOT created');
             }
         }
         // Check for the asset company match and create it if it doesn't exist
         if ($user_asset_company_name != '') {
             if ($company = Company::where('name', e($user_asset_company_name))->first()) {
                 $this->comment('Company ' . $user_asset_company_name . ' already exists');
             } else {
                 $company = new Company();
                 $company->name = e($user_asset_company_name);
                 if ($company->save()) {
                     $this->comment('Company ' . $user_asset_company_name . ' was created');
                 } else {
                     $this->comment('Something went wrong! Company ' . $user_asset_company_name . ' was NOT created');
                 }
             }
         } else {
             $company = new Company();
         }
         // Check for the asset match and create it if it doesn't exist
         if ($asset = Asset::where('asset_tag', e($user_asset_tag))->first()) {
             $this->comment('The Asset with asset tag ' . $user_asset_tag . ' already exists');
         } else {
             $asset = new Asset();
             $asset->name = e($user_asset_asset_name);
             if ($user_asset_purchase_date != '') {
                 $asset->purchase_date = $user_asset_purchase_date;
             } else {
                 $asset->purchase_date = NULL;
             }
             if ($user_asset_purchase_cost != '') {
                 $asset->purchase_cost = ParseFloat(e($user_asset_purchase_cost));
             } else {
                 $asset->purchase_cost = 0.0;
             }
             $asset->serial = e($user_asset_serial);
             $asset->asset_tag = e($user_asset_tag);
             $asset->model_id = $asset_model->id;
             $asset->assigned_to = $user->id;
             $asset->rtd_location_id = $location->id;
             $asset->user_id = 1;
             $asset->status_id = $status_id;
             $asset->company_id = $company->id;
             if ($user_asset_purchase_date != '') {
                 $asset->purchase_date = $user_asset_purchase_date;
             } else {
                 $asset->purchase_date = NULL;
             }
             $asset->notes = e($user_asset_notes);
             if ($asset->save()) {
                 $this->comment('Asset ' . $user_asset_name . ' with serial number ' . $user_asset_serial . ' was created');
             } else {
                 $this->comment('Something went wrong! Asset ' . $user_asset_name . ' was NOT created');
             }
         }
         $this->comment('=====================================');
         return true;
     });
 }
 /**
  * @param Asset $asset
  * @return array|string
  */
 protected function getTreeNodeConfig($asset)
 {
     $tmpAsset = array("id" => $asset->getId(), "text" => $asset->getFilename(), "type" => $asset->getType(), "path" => $asset->getFullPath(), "basePath" => $asset->getPath(), "locked" => $asset->isLocked(), "lockOwner" => $asset->getLocked() ? true : false, "elementType" => "asset", "permissions" => array("remove" => $asset->isAllowed("delete"), "settings" => $asset->isAllowed("settings"), "rename" => $asset->isAllowed("rename"), "publish" => $asset->isAllowed("publish"), "view" => $asset->isAllowed("view")));
     // set type specific settings
     if ($asset->getType() == "folder") {
         $tmpAsset["leaf"] = false;
         $tmpAsset["expanded"] = $asset->hasNoChilds();
         $tmpAsset["iconCls"] = "pimcore_icon_folder";
         $tmpAsset["permissions"]["create"] = $asset->isAllowed("create");
     } else {
         $tmpAsset["leaf"] = true;
         $tmpAsset["iconCls"] = "pimcore_icon_" . Pimcore_File::getFileExtension($asset->getFilename());
     }
     $tmpAsset["qtipCfg"] = array("title" => "ID: " . $asset->getId());
     if ($asset->getType() == "image") {
         try {
             $tmpAsset["qtipCfg"] = array("title" => "ID: " . $asset->getId(), "text" => '<img src="/admin/asset/get-image-thumbnail/id/' . $asset->getId() . '/width/130/aspectratio/true" width="130" />', "width" => 140);
             // this is for backward-compatibilty, to calculate the dimensions if they are not there
             if (!$asset->getCustomSetting("imageDimensionsCalculated")) {
                 $asset->save();
             }
             if ($asset->getCustomSetting("imageWidth") && $asset->getCustomSetting("imageHeight")) {
                 $tmpAsset["imageWidth"] = $asset->getCustomSetting("imageWidth");
                 $tmpAsset["imageHeight"] = $asset->getCustomSetting("imageHeight");
             }
         } catch (Exception $e) {
             Logger::debug("Cannot get dimensions of image, seems to be broken.");
         }
     } else {
         if ($asset->getType() == "video") {
             try {
                 if (Pimcore_Video::isAvailable()) {
                     $tmpAsset["qtipCfg"] = array("title" => "ID: " . $asset->getId(), "text" => '<img src="/admin/asset/get-video-thumbnail/id/' . $asset->getId() . '/width/130/aspectratio/true" width="130" />', "width" => 140);
                 }
             } catch (Exception $e) {
                 Logger::debug("Cannot get dimensions of video, seems to be broken.");
             }
         }
     }
     $tmpAsset["cls"] = "";
     if ($asset->isLocked()) {
         $tmpAsset["cls"] .= "pimcore_treenode_locked ";
     }
     if ($asset->getLocked()) {
         $tmpAsset["cls"] .= "pimcore_treenode_lockOwner ";
     }
     return $tmpAsset;
 }
 public function store()
 {
     try {
         //gets the input from Backbone
         $newModel = Input::json()->all();
         //makes a new asset
         $newAsset = new Asset();
         //sets the properties of the new asset
         $newAsset->brand_name = $newModel['brand_name'];
         $newAsset->serial_number = $newModel['serial_number'];
         $newAsset->asset_tag = $newModel['asset_tag'];
         $newAsset->description = $newModel['description'];
         $newAsset->room = $newModel['room'];
         $newAsset->department_id = $newModel['department_id'];
         $newAsset->mac_address = $newModel['mac_address'];
         $newAsset->ip_address = $newModel['ip_address'];
         $newAsset->asset_type = $newModel['asset_type'];
         $newAsset->assignee_name = $newModel['assignee_name'];
         $newAsset->active = 1;
         //saves the asset to the Database
         $newAsset->save();
         //return the new asset
         return $newAsset->toJSON();
     } catch (Exception $e) {
         return json_encode('{"error":{"text":' . $e->getMessage() . '}}');
     }
 }