منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : منع أي مستخدم لديه الصلاحيات الكاملة من حذف الأدمن
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الأخوة الأعزاء

السلام عليكم ورحمة الله وبركاته،،،

لدى هذا الكود لتحديد صلاحيات المستخدمين وقد وضعته في Module وهو يأخذ البيانات من جدول بقاعدة البيانات
كود :
Public Sub Userlogin(ByVal TextBox1 As String, ByVal TextBox2 As String)
    Try
     
        con.Open()
     
        da = New OleDbDataAdapter("Select * From User_info where User_Name = '" & TextBox1 & "' and User_Pass = '" & TextBox2 & "'", con)


   
        dt = New DataTable
             da.Fill(dt)
        Dim maxrow As Integer = dt.Rows.Count
        Dim type As String = dt.Rows(0).Item("User_Salahyat")

        If maxrow > 0 Then



            If type = "Admin" Then



                With Main_Form
                                     .Button1.Visible = True
                    .Button2.Visible = True
                    .Button3.Visible = True
                    .Button4.Visible = True
                                        .Button5.Visible = True
                    .Button7.Visible = True
                    .Button8.Visible = True
                                    .Button10.Text = dt.Rows(0).Item("User_Name") '& "::" & type
                    .Button11.Text = type

                End With

                MsgBox("لقد دخلت بصلاحيات " & type, , "الصلاحيات")
End If

وقد أضقت بعض المسمات لتحديد المسئولية مثل ( مبرمج - مسئول - مستعلم )

وأريد إعطاء المسئول الصلاحيات كاملة من بينها حذف وتعديل وإضافة مستخدمين ولكن لا أريده أن يعدل على بياناتي أنا كمبرمج بحيث لايستطيع حذفي ولا تعديل بياناتي

فهل من طريقة

جربت أن أجعل السطر الذي فيه بياناتي للقراءة فقط ولكن يفلح الأمر حيث لم تفعل هذه الخاصية

مع العلم بأن الفورم الخاص بالمستخدمين هو User_Form والفورم بالكود أعلاه هو للفورم الرئيسي Main_Form
وعليكم السلام ورحمة الله وبركاته

يمكنك وضع استثناء في كود حذف وتعديل المستخدمين
وهو عبارة عن شرط ويكون كالتالي

في بداية الكود أذا كان المستخدم (أسم حسابك او كوده) تخطى العملية كاملة ولا يكمل الكود
أما في حالة وجود أسم مستخدم أخر فلتجعل الكود يستمر بالعمل


فكرة أخرى قم بأضافة عمود في قاعدة البيانات ولتسميه مثلا VIP_STATUS ويكون من نوع BOOLEAN وأمام المستخدم الخاص بك قم بأعطاءة قيمة TRUE
وباقي المستخدمين قيمة FALSE
وعند أستدعاء قائمة المستخدمين قم بوضع شرط ان يكون العمود قيمته FALSE وبذلك تكون قد أخفيت تماما مستخدمك من الظهور في البرنامج
أشكرك أخي الغالي على المساعدة


هل ممكن تضع لي الكودين ولا عليك أمر
هل يمكنك رفع مثال لمشروعك حتى أقوم بالتعديل عليه
لان التعديل سيكون في أكثر من مكان وفي قاعدة البيانات ايضا اذا قررت استخدام الطريقة الثانية

أما اذا كنت لا تستطيع فسأحاول شرح الأمر لك أكثر


في الحالة الأولى
((( يمكنك وضع استثناء في كود حذف وتعديل المستخدمين
وهو عبارة عن شرط ويكون كالتالي

في بداية الكود أذا كان المستخدم (أسم حسابك او كوده) تخطى العملية كاملة ولا يكمل الكود
أما في حالة وجود أسم مستخدم أخر فلتجعل الكود يستمر بالعمل   )))
لا تحتاج للتعديل في قاعدة البيانات واضافة عمود

كل ما ستحتاجه هو تحديد متغير نصي يكون فيه أسم حسابك أو كوده في قاعدة البيانات

وفي كود التعديل والحذف على المستخدمين

ستضع الشرط التالي بناء على الدليل الذي تستخدمه لتحديد السجل المراد حذفه او تعديله سواء كان الاسم أو الكود

كود :
DIM PROGRAMERNAM AS STRING = "أسم مستخدمك أو كوده"  

IF USERNAME = PROGRAMERNAME THEN END SUB

ثم تضع كود التعديل أو الحذف الذي لديك

وستعمل معك إن شاء الله تعالى
أشكرك يا الغالي على المساعدة وإسمح لي على التأخير توني طالع من العمل

الصراحة فكرة العمود في قاعدة البيانات أفضل أريد فقط الكود إن أمكن

سأضع العمود وأضع في true و FALSE
في كود استدعاء البيانات داخل datagridview  وكود التعديل والحذف على المستخدمين
في جملة الأستعلام 
أضف شرط العمود المضاف =false

كمثال


كود :
Dim sql = "select * from  tblname where EmpName ='" & (x) & "'  and vipstatus = false '"

بحيث x = اسم المستخدم او كوده المراد التعديل عليه او حذفه
وبحيث vipstatus = false  او 0  وهو الشرط الموضوع بحيث يخفى مستخدمك الذي سيأخذ قيمة true في العمود وبذلك لن يظهر ولن يتم التعديل عليه
الله يعطيك العافية على الفكرة الله لايحرمك الأجر