الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

سؤال عن الصلاحيات

Featured Replies

بتاريخ:

الاخوة الاعزاء
انا عملت حماية على مستوى النماذج والتقارير، حيث عملت 3 جداول
1- جدول لاسم المستخدم وكلمة السر 2- جدول باسماء النماذج والتقارير بالعربي والانجليزي
3- جدول باسم المستخدم واسم النموذج او التقرير وهل للمستخدم صلاحية لفتحه ام (Y يعني نعم و N يعني لا).

وقد اضفت بعض البيانات لهذه الجداول وبالفعل فقد تم الدخول الى القائمة الرئيسة بواسطة اسم المستخدم وكلمة السر.
ولكن المشكلة تكمن في الدخول لكل نموذج حيث وضعت في تريجر pre-form hg الكود التالي ولكنه لا يعمل حيث يدخل المستخدم بغض النظر له صلاحية ذلك ام لا الرجاء الافادة عن السبب هل هو التريجر (اي هناك تريجر اخر يجب وضع الكود فيه) ام الكود نفسه به خطأ

declare
	b_allowed varchar2(1):=' ';   
هذا اذا كان Y فمسمولح له الدخول
	currnt_form varchar2(40);

begin
	currnt_form := :system.current_form;
	لمعرفة اسم النموذج الذي نحن فيه حاليا
	select browse_allowed
	into b_allowed
	from user_privileges
	where (user_name1=:global.user_name_g and screen_name1 = currnt_form);
	
	if b_allowed = 'Y' then
		open_form('e:\naqa\fmx\frmkinds.fmx');
	else
		exit_form;
 	end if;
	exception
		when no_data_found then
		message('no user');
		
end;


,وشكرا للجميع

بتاريخ:

اخي الكريم
المشكلة تكمن في ال where condtion حيث انت تضع اليوزر في global varaibles
ويمكن ان يكون مخزن اسم يوزر له صلاحية عموما ممكن نعدل فقط في جزئية الجدول


declare
b_allowed varchar2(1):='N'; 
currnt_form varchar2(40);

begin
currnt_form := :system.current_form;
select browse_allowed
into b_allowed
from user_privileges
where (user_name1=USER and screen_name1 = currnt_form);
if b_allowed = 'Y' then
open_form('e:\naqa\fmx\frmkinds.fmx');
else
exit_form;
end if;
exception
when no_data_found then
message('no user');
end;

بتاريخ:
  • كاتب الموضوع

الاخAdmin05 بداية اشكر لك اهتمامك وردك على تساؤلي، ولكن المشكلة ما زالت قائمة حيث أنه يدخل الى النموذج بغض النظر له صلاحية بذلك أم لا ؟ فهل هنالك محاولة اخرى، الرجاء التكرم بالرد.
على فكرة كيف يمكن عمل debug لمحتويات التريجر للتأكد من أنه يأتي بالمستخدم الصحيح وكذلك قيمة browse_allowed شاكرا لك وجعل الله ذلك في ميزان حسناتك
وهل التعديل الوحيد الذي اضفته هو في where conditiom

بتاريخ:

الأخ الكريم
يوجد تعديل بسيط
مع debuge to trigger

declare
b_allowed varchar2(1):='N'; 
currnt_form varchar2(40);

begin
currnt_form := :system.current_form;
select browse_allowed
into b_allowed
from user_privileges
where (user_name1=USER );
message('the value of ballowd is ' || :b_allowed);
message('the value of ballowd is ' || :b_allowed);
if b_allowed = 'Y' then
message('you can open from ' );
     open_form('e:\naqa\fmx\frmkinds.fmx');
else
exit_form;
end if;
exception
when no_data_found then
message('no user');
message('no user');
end;

بتاريخ:
  • كاتب الموضوع

لاخ Admin05 بداية السلام عليكم ورحمة الله وبركاته شاكرا لك وللجميع ردك السريع وبالفعل فقد تمكنت من معرفة قيمة b_allowed وكذلك اي قيمة اخرى اريدها ولكن ظهرت هناك مشكلة اخرى حيث انه ظهرت رسالة عند التنفيذ بخصوص exit_form و open_form حيث يعطي رسالة
frm-40737 illegal restricted open-form in pre-form trigger فما السبب لظهور هذه الرسالة وما الحل؟؟؟ وشكرا للجميع وحاصة الاخ Admin05

بتاريخ:

FRM-40737: Illegal restricted procedure %s in %s trigger.

Cause:Application design error. A trigger tried to execute a restricted packaged procedure. 

Action:Remove the packaged procedure from the trigger text. 

Level:>25 

Type:Error 

بتاريخ:
  • كاتب الموضوع

الاخ Admin05

لقد قرأت هذه المساعدة في ال help التابع للديفلوبر ولم افهمه؟ هل المقصود عدم استخدام exit_form و open_form في pre-form trigger فاذا كان الجواب نعم فما السبب وما البديل؟؟؟ الرجاء الاجابة مع الشكر

بتاريخ:

الاخ الكريم
نعم اخي هذا صحيح عدم استخدام الexit_form في pre-form فهذا معناها انك تريد اغلاق الفورم قبل تشغيلها ويحبب ان تضعها في تريجر لكبسة زر مثلا او في program unit
قبل فتح الفورم فقط يمكنك التشييك على حالة اليوز او ممكن استخدام when-new-forms-instance

بتاريخ:
  • كاتب الموضوع

الاخ Admin05 يبدو انني انتهي من اشكالية وندخل في اخرى، حيث انني وضعت الكود في تريجر when_new_forms-instance ولكنني لاحظت انه لا يتم تنفيذ الكود مطلقا حيث لا ينفذ عند الدخول الى النموذج فالرجاء الرجاء المساعدة وايجاد حل جذري لهذه الاشكالية وبارك الله فيك وفي جهودك وجهود الجميع

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.