إدارة المستخدمين في SDK
يوفر وحدة dypai.users عمليات على مستوى المشرف لإدارة مستخدمي مشروعك. تتطلب هذه الطرق رمز مشرف — مقصودة للاستخدام على الخادم أو لوحات تحكم المشرف، وليس لكود جانب العميل.
كل عمليات dypai.users تتطلب رمزاً بصلاحيات مشرف. لا تعرض رموز المشرف في كود جانب العميل.
تتطلب هذه الطرق أن يكون لدور المستخدم صلاحية manage_users مفعّلة في system.roles. دور "admin" لديهها مفعّلة افتراضياً. للأدوار الأخرى، يمكنك تفعيلها من قسم Auth > Roles في لوحة التحكم. انظر نظام الصلاحيات للتفاصيل.
عرض المستخدمين
استرجع قائمة مُقسَّمة إلى صفحات لكل المستخدمين في مشروعك.
const { data, error } = await dypai.users.list({
page: 1,
per_page: 20
});
if (data) {
console.log('Users:', data.users);
console.log('Total:', data.total);
}
الدور الموحَّد
يعرض كل مستخدم في data.users دوره في التطبيق كـ user.role (يستخرجه SDK من app_metadata.role). يمكنك إدارة هؤلاء المستخدمين والأدوار بصرياً تحت Auth → Users و Auth → Roles في لوحة التحكم — انظر المصادقة.
إنشاء مستخدم
أنشئ مستخدماً جديداً برمجياً (يتجاوز تأكيد البريد).
const { data, error } = await dypai.users.create({
email: 'newuser@example.com',
full_name: 'Jane Smith'
});
if (error) {
console.error('Failed to create user:', error.message);
return;
}
console.log('Created user:', data.id);
تحديث مستخدم
حدّث بيانات ملف مستخدم موجود.
const { data, error } = await dypai.users.update('user-uuid', {
full_name: 'Jane Doe'
});
if (error) {
console.error('Failed to update user:', error.message);
return;
}
console.log('Updated user:', data.email);
حذف مستخدم
احذف مستخدماً نهائياً من مشروعك.
const { data, error } = await dypai.users.delete('user-uuid');
if (error) {
console.error('Failed to delete user:', error.message);
return;
}
console.log('User deleted:', data.success);
مرجع الطرق
| الطريقة | الوصف |
|---|---|
list({ page, per_page }) | عرض المستخدمين مع الصفحات. يعيد { users, total }. |
create({ email, full_name }) | إنشاء مستخدم جديد. يعيد User المُنشأ. |
update(userId, { full_name }) | تحديث ملف مستخدم. يعيد User المحدَّث. |
delete(userId) | حذف مستخدم نهائياً. يعيد { success: boolean }. |