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.
Files changed (2) hide show
  1. package/library.js +35 -9
  2. 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
- const uid = data.fromUid;
105
- if (!uid || parseInt(uid, 10) === 0) return data;
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
- const userSlug = await User.getUserField(uid, 'userslug');
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
- const userSlug = await User.getUserField(uid, 'userslug');
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-plugin-phone-verification",
3
- "version": "1.2.3",
3
+ "version": "1.2.4",
4
4
  "description": "אימות מספר טלפון נייד בתהליך ההרשמה לפורום NodeBB",
5
5
  "main": "library.js",
6
6
  "repository": {