بتاريخ: 2 يناير 201511 سنة comment_258046 - بسم الله الرحمن الرحيم - يسأل العديد من المبتدئين عن طريقة عمل حماية ونظام للتحكم في صلاحيات المستخدمين في تطبيقات ال ADF , ولذا سأحاول بإذن الله أن أشرح هذا الموضوع ، ولعمل نظام حماية وللتحكم في صلاحيات المستخدمين في تطبيقات الـ ADF ، توجد أكثر من طريقة منها التحكم في صلاحيات المستخدمين من خلال قاعدة البيانات او المعروف بـ Database Security وهو موضوعنا اليوم سأحدثكم عنه: وضع نظام حماية وصلاحيات المستخدمين في تطبيق يشمل عدة مستويات: التحكم في الصفحة أو أحد مكوناتها (View) التحكم في البيانات (Model) التحكم في الانتقال (Controller) ولتنفيذ ذلك نقوم بعدة خطوات: أولا: قاعدة البيانات: يتم تجهيز جدول أو أكثر في قاعدة البيانات فيه بيانات المستخدمين وصلاحياتهم. مثلا: CREATE TABLE USERS ( USER_ID number primary key, USER_NAME varchar2(15) not null, PASSWORD varchar2(15) not null, NAME varchar2(50) not null, USER_TYPE varchar2(10) not null ); -------------------------------- ثانيا: عملية دخول المستخدم (Authentication): وهي مرحلتين: 1) عملية دخول المستخدم أوالتأكد من وجوده في جدول المستخدمين (ِLogin). 2) الاحتفاظ بمعلومات المستحدم للاستفادة منها فيما بعد ولها عدة طرق سنتطرق لها فيما بعد. ----------------------------- ثالثا: التحكم في التطبيق من خلال الصلاحيات الموجودة في قاعدة البيانات (ِAuthorization): بعد القيام بعملية Login ووضع معلومات المستخدم في ال Session Scope نقوم باستخدام باستخدام هذه المعلومات في حماية المستويات المختلفة في التطبيق: أولا: التحكم في الصفحة أو أحد مكوناتها (View): وذلك له اكثر من طريقة من أهمها التأثير في الخصائص (Properties) الموجودة في الصفحة أو أي من مكوناتها حسب نوع المكونات هذه الخصائص مثل: الإلغاء والظهور والتعطيل (Render, Visible, disable)... إلخ. ,وهذه الخصائص إما أن يكون لها قيمة ثابتة بـ (True or False) أو أن تأخذ قيمة برمجيا باستخدام كود مثل (Java أو Expression language) وطبعا يتم التأثير فيها طبقا لصلاحيات المستخدم والمعلومات التي تم تخزينها في ال Session Scope بعدعملية الدخول (Login). ثانيا: التحكم في البيانات (Model): - يتم ذلك باضافة Bind variable إلى ال View Object وليكن UserId_p مثلا وذلك على سبيل المثال لفرز بيانات الموظف فقط. - قم باضافة صفحة في Task flow ، وتنفيذ فيها شاشة لعرض بيانات الموظفين باستخدام نفس ال View Object. - ثم نقوم بتمرير قيمة الموظف باستخدام Execute with param أثناء الإنتقال إلى الصفحة في ال Task flow واعطاؤه قيمة المستخدم الموجودة في ال Session Scope. ثالثا: التحكم في الانتقال (Controller): وذلك من خلال كتابة كود بالجافا مثلا يفسر عملية الانتقال طبقا لشكل الصلاحيات. أو حتى يمكن من خلال الخصائص ، عن طريق عمل زر (Button) عادي للانتقال إلى الصفحة واخفاؤه بنفس الطريقة المستخدمة في الـ (View). ----------------------------------- شكرا لقراءتكم لموضوعي, وأرجو أن قد وفقت في توصيل المعلومة وأورجو أن يفيدكم. وللحديث بقية إن شاء الله. تقديم بلاغ
بتاريخ: 4 يناير 201511 سنة comment_258124 جزيت خيراااا..موضوع مهم.. انا لي فتره ببحث عنه. وجاري التطبيق تقديم بلاغ
بتاريخ: 5 يناير 201511 سنة comment_258173 واعطاؤه قيمة المستخدم الموجودة في ال Session Scope. ثالثا: التحكم في الانتقال (Controller): وذلك من خلال كتابة كود بالجافا مثلا يفسر عملية الانتقال طبقا لشكل الصلاحيات. أو حتى يمكن من خلال الخصائص ، عن طريق عمل زر (Button) عادي للانتقال إلى الصفحة واخفاؤه بنفس الطريقة المستخدمة في الـ (View). ----------------------------------- انا وصلت لحد هنا..ممكن تواصل في الموضوع ياباشمهندس تقديم بلاغ
بتاريخ: 6 يناير 201511 سنة كاتب الموضوع comment_258178 بعد القيام بعملية Login ووضع معلومات المستخدم في ال Session Scope : نأتي على (Button) مثلا يقوم بمناداة صفحة خاصة بالمديرين فقط ونريده أن يظهر فقط في حالة أن يكون المستخدم من نوع (Manager) في الخصائص على مستوى ال (Button) توجد خاصية (Render) وهي خاصية من نوع (Boolean)، تعني إما التواجد في الصفحة أو الإلغاء تماما. - نختار (Expression) - ونضيف جملة ال (Expression) ولتكن #{sessionScope.UserType == 'Manager'} تقديم بلاغ
بتاريخ: 8 يناير 201511 سنة كاتب الموضوع comment_258262 جزاك الله خير يا هندسة ... وإياك يا هندسة تقديم بلاغ
بتاريخ: 12 يناير 201511 سنة كاتب الموضوع comment_258487 جزاك الله كل الخير وإياك يا باشمهندس تقديم بلاغ
بتاريخ: 18 أكتوبر 201510 سنة كاتب الموضوع comment_266854 السلام عليكم هل عملت فيديو اخي لا يوجد فيديو لكن سأعمل إن شاء الله. تم تعديل 18 أكتوبر 201510 سنة بواسطة kherooooo تقديم بلاغ
بتاريخ: 17 يناير 201610 سنة كاتب الموضوع comment_270363 جزاك الله خير يا باشمهندس الموضوع شيق جدا وإياك يا بشمهندس أحمد تقديم بلاغ
بتاريخ: 4 فبراير 20188 سنة comment_293493 يعطيك العافية يا بشمهندس قمت بانشاء قائمة ولكن عند اعطاء ItemNode قيمة render من خلال session scope بحيث ترجع true or false لا تأخذ تلك القيمة مع أنها تعمل في ال Pages وتعمل أيضا مع الازرار وترجع قيمة لل renderd ما المشكة ما ال menu تقديم بلاغ
بتاريخ: 15 مارس 20187 سنة comment_294326 جزاك الله خير الجزاء ولاكن نريد فيديو توضيحي يا بش مهندس تقديم بلاغ
بتاريخ: 22 مارس 20187 سنة comment_294494 مثال على ماذا؟ مثل حول موضوع الuser والصلاحيات باستخدام قاعدة بيانتات تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.