الخطوات الأولى

ما يمكن لكل مستخدم رؤيته

يرى المفتاح بالضبط ما يراه مستخدمه في لوحة التحكم. لا حاجة إلى ضبط أي شيء في API: فالقواعد مستمدة من مؤسسات المستخدم وصلاحياته.

مؤسسات المستخدم فقط

لا تأخذ API في الحسبان إلا المؤسسات المرتبطة بالمستخدم، وهي نفسها التي يمكنه اختيارها في لوحة التحكم.

المسؤول يرى كل شيء في المؤسسة

من يكون مسؤولًا عن المؤسسة، أو عن المؤسسة الرئيسية، يرى جميع أجهزة التلفزيون والملفات وقوائم التشغيل التابعة لها.

البقية تحكمهم الصلاحيات

بالنسبة إلى المستخدمين الآخرين، تسري في كل مؤسسة صلاحيات عرض أجهزة التلفزيون والملفات وقوائم التشغيل، وهي الصلاحيات نفسها التي تتيح تلك الصفحات في لوحة التحكم.

التغييرات تسري فورًا

سحب صلاحية أو إزالة مؤسسة أو تعطيل مستخدم في لوحة التحكم يسري بدءًا من الطلب التالي.

ما يُستبعد

  • لا تظهر في القوائم عناصر المؤسسات التي لا يملك المستخدم صلاحية عليها. وطلب أحدها مباشرة يعيد 404، كأنه غير موجود.
  • في قائمة التشغيل، يأتي الملف الذي لا يستطيع المستخدم رؤيته بقيمة null في الحقل file. ولا تعرض أجهزة التلفزيون الخاصة بقائمة التشغيل وقوائم التشغيل الخاصة بالملف إلا ما يمكن للمستخدم رؤيته.
  • لا تظهر العناصر المحذوفة ولا أجهزة التلفزيون التي لم تُفعَّل بعد.

لمعرفة ما يمكن لمفتاح الاطلاع عليه، استدعِ /organizations: تأتي كل مؤسسة مع admin وpermissions.

إذا كان نظامك يحتاج إلى جزء من البيانات فقط، فأنشئ في لوحة التحكم مستخدمًا مخصصًا له بالصلاحيات اللازمة فقط، وأنشئ المفتاح من حساب هذا المستخدم.

الطلب
curl "https://api.on-cloud.live/v1/organizations" \
  -H "X-API-Key: $API_KEY"
<?php
$ch = curl_init('https://api.on-cloud.live/v1/organizations');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: ' . getenv('API_KEY')],
]);
$response = json_decode(curl_exec($ch), true);
const res = await fetch('https://api.on-cloud.live/v1/organizations', {
  headers: { 'X-API-Key': process.env.API_KEY }
});
const { data } = await res.json();
الاستجابة200
{
  "data": [
    {
      "uid": "8f14e45fceea167a5a36dedd4bea2543",
      "name": "Loja Centro",
      "neutral_zone": false,
      "admin": true,
      "permissions": {
        "tvs": true,
        "files": true,
        "playlists": true
      }
    },
    {
      "uid": "1679091c5a880faf6fb5e6087eb1b2dc",
      "name": "Loja Shopping Norte",
      "neutral_zone": false,
      "admin": true,
      "permissions": {
        "tvs": true,
        "files": true,
        "playlists": true
      }
    }
  ]
}
عنصر من مؤسسة أخرى404
{
  "error": {
    "code": "not_found",
    "message": "Item not found or you do not have access to it."
  }
}