fix files consent with autoacceptifnouser #7460
Signed-off-by: si458 <simonsmith5521@gmail.com>
si458 committed
Dec 1, 2025 at 15:25 UTC
d2677dcc6640db89fb3b9d70b94753fc7c8890d0
1 file changed
+45
-39
agents/meshcore.js
+45
-39
@@ -3317,49 +3317,55 @@ function onTunnelData(data)
3317
};
3318
3319
// Perform notification if needed. Toast messages may not be supported on all platforms.
3320
- if (this.httprequest.consentAutoAcceptIfNoUser || this.httprequest.consentAutoAcceptIfFileNoUser || this.httprequest.consentAutoAcceptIfLocked || this.httprequest.consentAutoAcceptIfFileLocked) {
3321
- var p = require('user-sessions').enumerateUsers();
3322
- p.sessionid = this.httprequest.sessionid;
3323
- p.ws = this;
3324
- p.then(function (u) {
3325
- var v = [];
3326
- for (var i in u) {
3327
- if (u[i].State == 'Active') { v.push({ tsid: i, type: u[i].StationName, user: u[i].Username, domain: u[i].Domain }); }
3328
- }
3329
- var autoAccept = false;
3330
-
3331
- // Check if we should auto-accept because no user is present
3332
- if ((this.ws.httprequest.consentAutoAcceptIfNoUser || this.ws.httprequest.consentAutoAcceptIfFileNoUser) && (v.length == 0)) {
3333
- autoAccept = true;
3334
- }
3335
-
3336
- // Check if we should auto-accept because all users are locked
3337
- if ((this.ws.httprequest.consentAutoAcceptIfLocked || this.ws.httprequest.consentAutoAcceptIfFileLocked) && (v.length > 0)) {
3338
- var allUsersLocked = true;
3339
- if (!meshCoreObj.lusers || meshCoreObj.lusers.length == 0) {
3340
- // No locked users list available, assume users are not locked
3341
- allUsersLocked = false;
3342
- } else {
3343
- for (var i in v) {
3344
- var username = v[i].domain ? (v[i].domain + '\\' + v[i].user) : v[i].user;
3345
- if (meshCoreObj.lusers.indexOf(username) == -1) {
3346
- allUsersLocked = false;
3347
- break;
3320
+ if (this.httprequest.consent && (this.httprequest.consent & 32)) {
3321
+ // User asked for consent so now we check if we can auto accept if no user is present/loggedin
3322
+ if (this.httprequest.consentAutoAcceptIfNoUser || this.httprequest.consentAutoAcceptIfFileNoUser || this.httprequest.consentAutoAcceptIfLocked || this.httprequest.consentAutoAcceptIfFileLocked) {
3323
+ var p = require('user-sessions').enumerateUsers();
3324
+ p.sessionid = this.httprequest.sessionid;
3325
+ p.ws = this;
3326
+ p.then(function (u) {
3327
+ var v = [];
3328
+ for (var i in u) {
3329
+ if (u[i].State == 'Active') { v.push({ tsid: i, type: u[i].StationName, user: u[i].Username, domain: u[i].Domain }); }
3330
+ }
3331
+ var autoAccept = false;
3332
+
3333
+ // Check if we should auto-accept because no user is present
3334
+ if ((this.ws.httprequest.consentAutoAcceptIfNoUser || this.ws.httprequest.consentAutoAcceptIfFileNoUser) && (v.length == 0)) {
3335
+ autoAccept = true;
3336
+ }
3337
+
3338
+ // Check if we should auto-accept because all users are locked
3339
+ if ((this.ws.httprequest.consentAutoAcceptIfLocked || this.ws.httprequest.consentAutoAcceptIfFileLocked) && (v.length > 0)) {
3340
+ var allUsersLocked = true;
3341
+ if (!meshCoreObj.lusers || meshCoreObj.lusers.length == 0) {
3342
+ // No locked users list available, assume users are not locked
3343
+ allUsersLocked = false;
3344
+ } else {
3345
+ for (var i in v) {
3346
+ var username = v[i].domain ? (v[i].domain + '\\' + v[i].user) : v[i].user;
3347
+ if (meshCoreObj.lusers.indexOf(username) == -1) {
3348
+ allUsersLocked = false;
3349
+ break;
3350
+ }
3351
}
3352
}
3353
+ if (allUsersLocked) { autoAccept = true; }
3354
}
3351
- if (allUsersLocked) { autoAccept = true; }
3352
- }
3353
-
3354
- if (autoAccept) {
3355
- // User Consent Prompt is not required
3356
- files_consent_ok(this.ws);
3357
- } else {
3358
- // User is present and not all locked, so we still need consent
3359
- files_consent_ask(this.ws);
3360
- }
3361
- });
3355
+
3356
+ if (autoAccept) {
3357
+ // User Consent Prompt is not required
3358
+ files_consent_ok(this.ws);
3359
+ } else {
3360
+ // User is present and not all locked, so we still need consent
3361
+ files_consent_ask(this.ws);
3362
+ }
3363
+ });
3364
} else {
3365
+ // User Consent Prompt is required
3366
+ files_consent_ask(this);
3367
+ }
3368
+ } else {
3369
// User Consent Prompt is not required
3370
files_consent_ok(this);
3371
}