Skip to content

Commit

Permalink
Add bundle ID
Browse files Browse the repository at this point in the history
  • Loading branch information
tuxudo committed Nov 21, 2024
1 parent b576e8d commit 2275d2b
Show file tree
Hide file tree
Showing 7 changed files with 71 additions and 30 deletions.
2 changes: 1 addition & 1 deletion applications_controller.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public function get_data($serial_number = '')
// Remove non-serial number characters
$serial_number = preg_replace("/[^A-Za-z0-9_\-]]/", '', $serial_number);

$sql = "SELECT name, path, last_modified, obtained_from, runtime_environment, version, bundle_version, info, signed_by, has64bit
$sql = "SELECT name, path, last_modified, obtained_from, runtime_environment, version, bundle_version, bundle_id, info, signed_by, has64bit
FROM applications
LEFT JOIN reportdata USING (serial_number)
".get_machine_group_filter()."
Expand Down
4 changes: 3 additions & 1 deletion applications_model.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ function __construct($serial='')
$this->rs['signed_by'] = '';
$this->rs['has64bit'] = 0; // True or False
$this->rs['bundle_version'] = '';
$this->rs['bundle_id'] = null;

$this->serial_number = $serial;
}
Expand Down Expand Up @@ -55,7 +56,8 @@ function process($plist)
'info' => '',
'signed_by' => '',
'has64bit' => 0, // Yes or No
'bundle_version' => '' // Yes or No
'bundle_version' => '',
'bundle_id' => null
);

// List of paths to ignore
Expand Down
3 changes: 2 additions & 1 deletion locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@
"applications": "Applications",
"no_32_bit": "No 32-bit Applications",
"32_bit_apps": "32-bit Applications",
"bundle_version": "Bundle Version"
"bundle_version": "Bundle Version",
"bundle_id": "Bundle ID"
}
27 changes: 27 additions & 0 deletions migrations/2024_11_21_000000_applications_add_bundle_id.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Capsule\Manager as Capsule;

class ApplicationsAddBundleId extends Migration
{
private $tableName = 'applications';

public function up()
{
$capsule = new Capsule();
$capsule::schema()->table($this->tableName, function (Blueprint $table) {
$table->string('bundle_id')->nullable();

$table->index('bundle_id');
});
}

public function down()
{
$capsule = new Capsule();
$capsule::schema()->table($this->tableName, function (Blueprint $table) {
$table->dropColumn('bundle_id');
});
}
}
15 changes: 13 additions & 2 deletions scripts/applications.py
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def get_app_bundle_version(app_path):
try:
with open(app_path+"/Contents/Info.plist", 'rb') as fp:
info_plist = plistlib.load(fp)
return info_plist['CFBundleVersion']
return info_plist
except Exception:
return ""

Expand Down Expand Up @@ -63,7 +63,18 @@ def flatten_applications_info(array):
app['obtained_from'] = obj[item]
elif item == 'path':
app['path'] = obj[item]
app['bundle_version'] = get_app_bundle_version(obj[item])
app_info = get_app_bundle_version(obj[item])
try:
app['bundle_version'] = app_info['CFBundleShortVersionString']
except Exception:
app['bundle_version'] = ""
try:
app['bundle_id'] = app_info['CFBundleIdentifier']
except Exception:
try:
app['bundle_id'] = app_info['Bundle identifier']
except Exception:
app['bundle_id'] = ""
elif item == 'runtime_environment':
app['runtime_environment'] = obj[item]
elif item == 'version':
Expand Down
27 changes: 12 additions & 15 deletions views/applications_listing.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<th data-i18n="name" data-colname='applications.name'></th>
<th data-i18n="version" data-colname='applications.version'></th>
<th data-i18n="applications.bundle_version" data-colname='applications.bundle_version'></th>
<th data-i18n="applications.bundle_id" data-colname='applications.bundle_id'></th>
<th data-i18n="applications.signed_by" data-colname='applications.signed_by'></th>
<th data-i18n="applications.obtained_from" data-colname='applications.obtained_from'></th>
<th data-i18n="applications.last_modified" data-colname='applications.last_modified'></th>
Expand All @@ -23,7 +24,7 @@
</thead>
<tbody>
<tr>
<td data-i18n="listing.loading" colspan="12" class="dataTables_empty"></td>
<td data-i18n="listing.loading" colspan="13" class="dataTables_empty"></td>
</tr>
</tbody>
</table>
Expand Down Expand Up @@ -81,11 +82,6 @@
});

}
// IDK what this does
if(d.search.value.match(/^\d+\.\d+(\.(\d+)?)?$/)){
var search = d.search.value.split('.').map(function(x){return ('0'+x).slice(-2)}).join('');
d.search.value = search;
}
}
},
dom: mr.dt.buttonDom,
Expand All @@ -101,23 +97,24 @@
$('td:eq(0)', nRow).html(link);

// Localize Obtained From
var obtained_from=$('td:eq(6)', nRow).html();
var obtained_from=$('td:eq(7)', nRow).html();
obtained_from = obtained_from == 'unknown' ? i18n.t('unknown') :
obtained_from = obtained_from == 'mac_app_store' ? i18n.t('applications.mac_app_store') :
obtained_from = obtained_from == 'apple' ? "Apple":
obtained_from = obtained_from == 'safari' ? "Web Clip":
(obtained_from === 'identified_developer' ? i18n.t('applications.identified_developer') : obtained_from)
$('td:eq(6)', nRow).html(obtained_from)
$('td:eq(7)', nRow).html(obtained_from)

// Format date
var event = parseInt($('td:eq(7)', nRow).html());
var event = parseInt($('td:eq(8)', nRow).html());
if (event > 0){
var date = new Date(event * 1000);
$('td:eq(7)', nRow).html('<span title="' + moment(date).fromNow() + '">'+ moment(date).format('llll')+'</span>');
$('td:eq(8)', nRow).html('<span title="' + moment(date).fromNow() + '">'+ moment(date).format('llll')+'</span>');
}

// runtime_environment
var colbit=$('td:eq(8)', nRow).html();
var colvar=$('td:eq(9)', nRow).html();
var colbit=$('td:eq(9)', nRow).html();
var colvar=$('td:eq(10)', nRow).html();
colvar = colvar == 'arch_x86' && colbit == '1' ? 'Intel 64-bit' :
colvar = colvar == 'arch_x86' && colbit == '0' ? 'Intel 32-bit' :
colvar = colvar == 'arch_i64' ? 'Intel 64-bit' :
Expand All @@ -129,13 +126,13 @@
colvar = colvar == 'arch_arm' ? 'Apple Silicon' :
colvar = colvar == 'arch_web' ? 'Web App' :
(colvar == 'arch_arm' ? 'Apple Silicon' : colvar)
$('td:eq(9)', nRow).html(colvar)
$('td:eq(10)', nRow).html(colvar)

// has64bit
var colvar=$('td:eq(8)', nRow).html();
var colvar=$('td:eq(9)', nRow).html();
colvar = colvar == '1' ? i18n.t('yes') :
(colvar == '0' ? i18n.t('no') : '')
$('td:eq(8)', nRow).html(colvar)
$('td:eq(9)', nRow).html(colvar)
}
});
});
Expand Down
23 changes: 13 additions & 10 deletions views/applications_tab.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
<th data-i18n="name" data-colname='applications.name'></th>
<th data-i18n="version" data-colname='applications.version'></th>
<th data-i18n="applications.bundle_version" data-colname='applications.bundle_version'></th>
<th data-i18n="applications.bundle_id" data-colname='applications.bundle_id'></th>
<th data-i18n="applications.signed_by" data-colname='applications.signed_by'></th>
<th data-i18n="applications.obtained_from" data-colname='applications.obtained_from'></th>
<th data-i18n="applications.last_modified" data-colname='applications.last_modified'></th>
Expand All @@ -21,7 +22,7 @@
</thead>
<tbody>
<tr>
<td data-i18n="listing.loading" colspan="10" class="dataTables_empty"></td>
<td data-i18n="listing.loading" colspan="11" class="dataTables_empty"></td>
</tr>
</tbody>
</table>
Expand Down Expand Up @@ -57,6 +58,7 @@
{ data: 'name' },
{ data: 'version' },
{ data: 'bundle_version' },
{ data: 'bundle_id' },
{ data: 'signed_by' },
{ data: 'obtained_from' },
{ data: 'last_modified' },
Expand All @@ -67,23 +69,24 @@
],
createdRow: function( nRow, aData, iDataIndex ) {
// Localize Obtained From
var obtained_from=$('td:eq(4)', nRow).html();
var obtained_from=$('td:eq(5)', nRow).html();
obtained_from = obtained_from == 'unknown' ? i18n.t('unknown') :
obtained_from = obtained_from == 'mac_app_store' ? i18n.t('applications.mac_app_store') :
obtained_from = obtained_from == 'apple' ? "Apple":
obtained_from = obtained_from == 'safari' ? "Web Clip":
(obtained_from == 'identified_developer' ? i18n.t('applications.identified_developer') : obtained_from)
$('td:eq(4)', nRow).text(obtained_from)
$('td:eq(5)', nRow).text(obtained_from)
// Format date
var event = parseInt($('td:eq(5)', nRow).html());
var event = parseInt($('td:eq(6)', nRow).html());
if (event > 0){
var date = new Date(event * 1000);
$('td:eq(5)', nRow).html('<span title="' + moment(date).fromNow() + '">'+moment(date).format('llll')+'</span>');
$('td:eq(6)', nRow).html('<span title="' + moment(date).fromNow() + '">'+moment(date).format('llll')+'</span>');
}
// runtime_environment
var colbit=$('td:eq(6)', nRow).html();
var colvar=$('td:eq(7)', nRow).html();
var colbit=$('td:eq(7)', nRow).html();
var colvar=$('td:eq(8)', nRow).html();
colvar = colvar == 'arch_x86' && colbit == '1' ? 'Intel 64-bit' :
colvar = colvar == 'arch_x86' && colbit == '0' ? 'Intel 32-bit' :
colvar = colvar == 'arch_i64' ? 'Intel 64-bit' :
Expand All @@ -95,13 +98,13 @@
colvar = colvar == 'arch_web' ? 'Web App' :
colvar = colvar == 'arch_other' ? 'Unknown' :
(colvar == 'arch_arm' ? 'Apple Silicon' : colvar)
$('td:eq(7)', nRow).text(colvar)
$('td:eq(8)', nRow).text(colvar)
// has64bit
var colvar=$('td:eq(6)', nRow).html();
var colvar=$('td:eq(7)', nRow).html();
colvar = colvar == '1' ? i18n.t('yes') :
(colvar == '0' ? i18n.t('no') : '')
$('td:eq(6)', nRow).text(colvar)
$('td:eq(7)', nRow).text(colvar)
}
});
}
Expand Down

0 comments on commit 2275d2b

Please sign in to comment.