nodebb-plugin-phone-verification 1.2.3 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/library.js +35 -9
- package/package.json +1 -1
package/library.js
CHANGED
|
@@ -101,35 +101,61 @@ plugin.checkVotingPermissions = async function (data) {
|
|
|
101
101
|
};
|
|
102
102
|
|
|
103
103
|
plugin.checkMessagingPermissions = async function (data) {
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
// --- תיקון: בדיקת כל הווריאציות האפשריות (כולל fromuid באותיות קטנות) ---
|
|
105
|
+
const uid = data.fromuid || data.fromUid || data.uid;
|
|
106
106
|
|
|
107
|
+
// לוג לבדיקה שזה עובד עכשיו
|
|
108
|
+
// console.log(`[Phone-Verify] Checking message from UID: ${uid}`);
|
|
109
|
+
|
|
110
|
+
// אם עדיין לא מצאנו מזהה משתמש, מחזירים את המידע כמו שהוא
|
|
111
|
+
if (!uid || parseInt(uid, 10) === 0) return data;
|
|
112
|
+
|
|
107
113
|
const settings = await plugin.getSettings();
|
|
114
|
+
// אם ההגדרות כבויות - משחררים
|
|
108
115
|
if (!settings.blockUnverifiedUsers) return data;
|
|
109
116
|
|
|
117
|
+
// מנהלים מורשים תמיד
|
|
110
118
|
const isAdmin = await User.isAdministrator(uid);
|
|
111
119
|
if (isAdmin) return data;
|
|
112
120
|
|
|
121
|
+
// משתמשים מאומתים מורשים תמיד
|
|
113
122
|
const phoneData = await plugin.getUserPhone(uid);
|
|
114
123
|
if (phoneData && phoneData.phoneVerified) {
|
|
115
124
|
return data;
|
|
116
|
-
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// --- המשתמש לא מאומת -> בדיקת שאר המשתתפים ---
|
|
128
|
+
|
|
117
129
|
const Messaging = require.main.require('./src/messaging');
|
|
130
|
+
|
|
131
|
+
// וידוא שיש לנו roomId
|
|
132
|
+
if (!data.roomId) return data;
|
|
133
|
+
|
|
134
|
+
// שליפת המשתתפים בחדר
|
|
118
135
|
const roomUids = await Messaging.getUidsInRoom(data.roomId, 0, -1);
|
|
136
|
+
|
|
137
|
+
// סינון השולח עצמו
|
|
119
138
|
const targetUids = roomUids.filter(id => parseInt(id, 10) !== parseInt(uid, 10));
|
|
139
|
+
|
|
140
|
+
// הכנת הקישור לפרופיל
|
|
141
|
+
const userSlug = await User.getUserField(uid, 'userslug');
|
|
142
|
+
const editUrl = userSlug ? `/user/${userSlug}/edit` : '/user/me/edit';
|
|
143
|
+
const errorMsg = `חובה לאמת מספר טלפון כדי לשלוח הודעות.<br/>אנא גש ל<a href="${editUrl}">הגדרות הפרופיל שלך</a>.`;
|
|
144
|
+
|
|
145
|
+
// אם אין אף אחד אחר בשיחה (מדבר לעצמו) - חוסמים
|
|
120
146
|
if (targetUids.length === 0) {
|
|
121
|
-
|
|
122
|
-
const editUrl = userSlug ? `/user/${userSlug}/edit` : '/user/me/edit';
|
|
123
|
-
throw new Error(`חובה לאמת מספר טלפון כדי להמשיך את הפעילות בפורום.<br/>אנא גש ל<a href="${editUrl}">הגדרות הפרופיל שלך</a>.`);
|
|
147
|
+
throw new Error(errorMsg);
|
|
124
148
|
}
|
|
149
|
+
|
|
150
|
+
// בדיקה שכל המשתתפים האחרים הם מנהלים
|
|
125
151
|
for (const targetUid of targetUids) {
|
|
126
152
|
const isTargetAdmin = await User.isAdministrator(targetUid);
|
|
153
|
+
// אם נמצא אפילו משתתף אחד שאינו מנהל -> חסימה
|
|
127
154
|
if (!isTargetAdmin) {
|
|
128
|
-
|
|
129
|
-
const editUrl = userSlug ? `/user/${userSlug}/edit` : '/user/me/edit';
|
|
130
|
-
throw new Error(`חובה לאמת מספר טלפון כדי להמשיך את הפעילות בפורום.<br/>אנא גש ל<a href="${editUrl}">הגדרות הפרופיל שלך</a>.`);
|
|
155
|
+
throw new Error(errorMsg);
|
|
131
156
|
}
|
|
132
157
|
}
|
|
158
|
+
|
|
133
159
|
return data;
|
|
134
160
|
};
|
|
135
161
|
|