כלי משתמשים
שלושה כלים נוגעים בזהות: אחד אומר מי אני, אחד אומר מי קיים, ואחד יוצר או מעדכן.
Get-Current-User
Section titled “Get-Current-User”בלי פרמטרים. מיועד להחזיר את פרטי הזהות שמאחורי החיבור הנוכחי — objectId, username (= האימייל), name, phone, status ומזהה האפליקציה — בהתחברות משתמש (OAuth) זו רשומת המשתמש; בחיבור Master / API Key זו רשומה סינתטית בשם Master (ראו למטה).
זהו הכלי שממנו לוקחים את ה‑objectId בשני מצבים נפוצים:
- בניית Pointer ל‑
_User— כשכותביםOwnerIdאו כל שדה אחראי:
{ "table": "Tasks", "data": { "Name": "מעקב", "OwnerId": { "__type": "Pointer", "className": "_User", "objectId": "2b0QVKoigE" } } }- הקשרי
currentUser— במקומות שבהם המערכת מקבלת את המילה"currentUser"במקום מזהה (תנאי טריגר, ערך סטטי בפעולת טריגר, כלל טופס). כשצריך לדעת מי זה יהיה בפועל — שואלים את הכלי הזה.
Get-all-Users
Section titled “Get-all-Users”בלי פרמטרים. מחזיר את רשימת המשתמשים במערכת, ולכל אחד:
| השדה | המשמעות |
|---|---|
objectId |
המזהה — זה מה שמשתמשים בו ב‑Pointer, בשיוך תפקיד ובשיוך חבילה |
username |
מזהה ההתחברות. תמיד כתובת אימייל |
email |
האימייל |
name |
שם התצוגה (בעברית) |
active |
false = חסום מהתחברות |
job |
תפקיד בארגון (טקסט חופשי — לא התפקיד ההרשאתי) |
phone / extension |
טלפון ושלוחה |
status |
מצב הנוכחות של המשתמש (Pointer ל‑UserStatuses) |
profile_image |
תמונת פרופיל |
last_success_login |
ההתחברות המוצלחת האחרונה |
emailVerified, createdBy, updatedBy, createdAt, updatedAt |
שדות המערכת הרגילים |
שדות ריקים פשוט חסרים ברשומה (למשל active או job שלא נקבעו מעולם).
last_success_login הוא גם כלי אבחון: “המשתמש לא מצליח להתחבר” נפתר לרוב באחד מארבעה — active: false (ההתחברות נדחית עם User is not active.), emailVerified: false (User email is not verified.), חבילה שפג תוקפה, או נעילה זמנית אחרי כמה כישלונות רצופים (Your account is locked due to multiple failed login attempts. Please try again after 30 minute(s)). השדות _failed_login_count ו‑_account_lockout_expires_at נראים ברשומה: המונה עולה בכל כישלון, ואחרי הנעילה גם הסיסמה הנכונה נדחית עד לפקיעת הנעילה.
Create-or-Update-User
Section titled “Create-or-Update-User”יוצר משתמש חדש, או מעדכן קיים. נוכחות objectId היא מה שמבדיל בין שני המצבים.
| הפרמטר | טיפוס | מתי | המשמעות |
|---|---|---|---|
objectId |
String | לעדכון | מזהה משתמש קיים. נוכח ⇒ עדכון; נעדר ⇒ יצירה |
username |
String | ליצירה | מזהה ההתחברות — חייב להיות האימייל |
password |
String | ליצירה | ראו מדיניות למטה |
name |
String | שם תצוגה. עברית תקינה | |
job |
String | תפקיד בארגון (טקסט) | |
phone |
String | טלפון | |
extension |
String | שלוחה | |
active |
Boolean | false = חסום מהתחברות |
|
emailVerified |
Boolean | ברירת מחדל true. false חוסם התחברות: User email is not verified. |
|
isPortalUser |
Boolean | ליצירה | הנחיית יצירה — לא שדה שנשמר על הרשומה. ראו ההסבר למטה |
// יצירה{ "username": "dana@example.co.il", "password": "Kayitz2026", "name": "דנה לוי", "job": "נציגת מכירות", "phone": "0501234567", "active": true }
// עדכון — רק מה שמשתנה{ "objectId": "6uWdJUouOg", "phone": "0509876543", "job": "מנהלת מכירות" }ערכי החזרה: ביצירה — objectId, createdAt ו‑sessionToken; בעדכון — objectId ו‑updatedAt. המשתמש החדש מתחבר מיד (POST /login ⇒ 200), ו‑username נשמר גם ב‑email.
מדיניות הסיסמאות — נאכפת בשרת
Section titled “מדיניות הסיסמאות — נאכפת בשרת”לפחות 8 תווים, ובתוכם לפחות אות קטנה אחת, אות גדולה אחת וספרה אחת. הפרה מוחזרת כשגיאה, לא כאזהרה — שתי הודעות שונות, ביצירה ובעדכון כאחד:
Password must be at least 8 characters longPassword must contain at least one uppercase letter, one lowercase letter, and one numberאיפוס סיסמה בידי מנהל = עדכון עם password חדש (ההתחברות עם הסיסמה החדשה עובדת מיד, והישנה נכנסת ל‑_password_history). איפוס ביוזמת המשתמש הוא זרימה אחרת לגמרי, ב‑REST.
מנטרלים משתמש — לא מוחקים אותו
Section titled “מנטרלים משתמש — לא מוחקים אותו”isPortalUser
Section titled “isPortalUser”true מסמן משתמש חיצוני — לקוח שנכנס לפורטל השירות העצמי, סטודנט שצופה בציונים שלו.
הפרמטר הוא הנחיית יצירה, לא שדה שנשמר על רשומת המשתמש. תפקידו: לקבוע האם ליצור את המשתמש — האימייל והחיבור לטננט — גם במערכת הראשית. משתמש פורטל (isPortalUser: true) אינו נוצר במערכת הראשית, ומכאן שתי ההשלכות:
- חיוב — משתמש פורטל אינו נספר לצורכי חיוב, ואי אפשר לשייך לו חבילת רכש (
Set-Package-for-User). - התחברות — הוא אינו מתחבר במסלול ההתחברות הראשי של המערכת; הכניסה שלו היא דרך הפורטל בלבד.
לכן אל תצפו למצוא מפתח isPortalUser ברשומת ה‑_User — היעדרו אינו באג, אלא ההתנהגות המתוכננת.
מה שלא משתנה: הוא עדיין צריך תפקיד ו‑CLP מתאימים כדי לראות משהו. פורטל בלי תכנון הרשאות הוא פורטל ריק — או, גרוע יותר, פורטל שמראה יותר מדי.
שימו לב: ההגבלה “אינו מתחבר במסלול הראשי” נוגעת למסלול ההתחברות של המערכת הראשית (הממשק). POST /parse/login של ה‑API מנפיק sessionToken גם למשתמש שנוצר עם isPortalUser: true; מנגנון ההתחברות של הפורטל הספציפי נמצא מחוץ לטווח של עמוד זה — אל תבטיחו זרימת התחברות ללקוח בלי לאמת מול הפורטל שלו.
תהליך קליטת עובד — שלושת השלבים
Section titled “תהליך קליטת עובד — שלושת השלבים”1. Create-or-Update-User { name, username: <email>, password, job, phone, active: true } ⇒ userId2. Get-Packages → בחירת resellerPackageId → Set-Package-for-User { userId, resellerPackageId, action: "add" }3. Get-Roles → roleId → Add-Users-to-Role { roleId, userIds: [userId] }שלב 1 כאן; שלבים 2 ו‑3 בחבילת ההרשאות. בלי שלב 2 אין התחברות. בלי שלב 3 אין מה לראות.
עזיבה — בסדר ההפוך: active: false, הסרה מתפקידים, ואז שחרור המושב.
ומשתמש שאין לו רישיון בכלל? במערכת ללא חבילה (Get-Packages ⇒ "packages": []) משתמשים חדשים נוצרים ומתחברים ב‑POST /parse/login כרגיל — המושב אינו נאכף בשכבת ה‑API.
- אינדקס הכלים המלא
- סוכן במצב קריאה בלבד — למה
Create-or-Update-Userהוא כלי משנה מסוכן במיוחד - משתמשים וסשנים ב‑REST — חיפוש מעבר ל‑100, איפוס סיסמה,
/users/me - אימות והרשאות