Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,7 @@ config.cfm

### Log files ###
www/logs
.history
.history

### NGINX configs ###
config/nginx/conf.d/*.conf
31 changes: 31 additions & 0 deletions config/db/core/V9__change-collation-to-unicode.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
ALTER TABLE `schedulecontrol`
MODIFY COLUMN `strTaskName` varchar(20) CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci NOT NULL AFTER `intControlID`;

ALTER TABLE `scheduler_01` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_02` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_03` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_04` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_05` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_06` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_07` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_08` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_09` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_10` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_11` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_12` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_13` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_14` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_15` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_16` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_17` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_18` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_19` COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `scheduler_20` COLLATE = utf8mb4_unicode_ci;

ALTER TABLE `scheduletasks`
MODIFY COLUMN `strName` varchar(255) CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL AFTER `intScheduletaskID`,
MODIFY COLUMN `strPath` varchar(255) CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL AFTER `dtmStartTime`,
COLLATE = utf8mb4_unicode_ci;
5 changes: 0 additions & 5 deletions config/nginx/conf.d/.gitignore

This file was deleted.

41 changes: 41 additions & 0 deletions www/backend/core/handler/customer.cfm
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,47 @@ if (structKeyExists(url, "change_tenant")) {

}

// Get back to the sysadmin view
if (structKeyExists(url, "sysadmin")) {

if (structKeyExists(session, "supportLogin") and session.supportLogin) {

// Get sysadmin data
qCustomer = queryExecute(
options = {datasource = application.datasource},
sql = "
SELECT *
FROM users
WHERE blnSysAdmin = 1
LIMIT 1
"
);

if (qCustomer.recordCount) {

// Overwrite session data
session.user_id = qCustomer.intUserID;
session.customer_id = qCustomer.intCustomerID;
session.user_name = qCustomer.strFirstName & " " & qCustomer.strLastName;
session.user_email = qCustomer.strEmail;
session.last_login = qCustomer.dtmLastLogin;
session.admin = 1;
session.superadmin = 1;
session.sysadmin = 1;
session.supportLogin = 0;

// Set plans and modules as well as the custom settings into a session
application.objCustomer.setProductSessions(session.customer_id, session.lng);

// Go to dashboard
location url="#application.mainURL#/dashboard" addtoken="false";

}

}

}

logWrite("user", "warning", "Access attempt to handler/customer.cfm without method [CustomerID: #session.customer_id#, UserID: #session.user_id#]");
location url="#application.mainURL#/dashboard" addtoken="false";

Expand Down
46 changes: 46 additions & 0 deletions www/backend/core/handler/sysadmin/customers.cfm
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,53 @@

}

}


// Login as a customer
if (structKeyExists(url, "logincustomer") and isNumeric(url.logincustomer)) {

if (session.sysadmin) {

// Get customer data
qCustomer = queryExecute(
options = {datasource = application.datasource},
params = {
intCustomerID: {type: "numeric", value: url.logincustomer}
},
sql = "
SELECT *
FROM users
WHERE intCustomerID = :intCustomerID
AND blnSuperAdmin = 1
LIMIT 1
"
);

if (qCustomer.recordCount) {

// Overwrite session data
session.user_id = qCustomer.intUserID;
session.customer_id = qCustomer.intCustomerID;
session.user_name = qCustomer.strFirstName & " " & qCustomer.strLastName;
session.user_email = qCustomer.strEmail;
session.last_login = qCustomer.dtmLastLogin;
session.admin = 1;
session.superadmin = 1;
session.sysadmin = 0;
session.supportLogin = 1;

// Set plans and modules as well as the custom settings into a session
application.objCustomer.setProductSessions(session.customer_id, session.lng);

// Go to dashboard
location url="#application.mainURL#/dashboard" addtoken="false";

}

}

location url="#application.mainURL#/sysadmin/customers" addtoken="false";

}

Expand Down
6 changes: 6 additions & 0 deletions www/backend/core/views/header.cfm
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,12 @@
#getTrans('txtLogout')#
</a>

<cfif structKeyExists(session, "supportLogin") and session.supportLogin>
<a class="dropdown-item" href="#application.mainURL#/customer?sysadmin">
Return to SysAdmin
</a>
</cfif>

</div>

</div>
Expand Down
7 changes: 5 additions & 2 deletions www/backend/core/views/sysadmin/customers.cfm
Original file line number Diff line number Diff line change
Expand Up @@ -143,11 +143,11 @@
<table class="table table-vcenter table-mobile-md card-table">
<thead>
<tr>
<th width="30%">Company</th>
<th width="20%">Company</th>
<th width="20%">Contact</th>
<th width="20%">City</th>
<th width="20%">Phone</th>
<th width="5%"></th>
<th width="15%"></th>
</tr>
</thead>
<tbody>
Expand Down Expand Up @@ -190,6 +190,9 @@
<a href="#application.mainURL#/sysadmin/customers/edit/#qCustomers.intCustomerID#" class="btn">
Edit
</a>
<a href="#application.mainURL#/sysadm/customers?logincustomer=#qCustomers.intCustomerID#" class="btn" data-bs-toggle="tooltip" data-bs-placement="top" title="Login as customer" onclick="return confirm('You are about to leave your sysadmin session and log in as this customer. Do you want to proceed?')">
Login
</a>
</div>
</td>
</tr>
Expand Down
Loading