users, roles & commands

drbunsen

New member
users, roles & commands

שלום, אני בונה מערכת ניהול כלשהיא (WEB) בה יש לי משתמשים ותפקידים. אני רוצה שהממשקים השונים במערכת (כמו גם פעולות מסויימות בהם) יהיו זמינים למשתמש לפי ה-role שלו. לצורך העניין בניתי XML המפרט את כל הפעולות במערכת , ומחזיק רשימה של ה-roles הרשאים לבצע כל פעולה. השאלה: מהי הדרך היעילה והנכונה(איזשהו design pattern וכד') לבדוק את ההרשאות לפני ביצוע הפעולה? כלומר, האם בקוד onClick של כפתור adduser למשל, אני צריך לשים תנאי פשוט בסגנון: if AuthorizeCommand("AddUSer")=True ... או שיש דרך יותר אלגנטית?
 

gewitter

New member
הצעה

האמת שהתחלתי לחשוב על אובייקטים, אבל אולי עדיף שתממש נניח שלוש פעולות כאלה עם מעט הרשאות, כולל הממשק, ותראה לנו מה יצא. אז נדע בדיוק איך להפוך את הקוד שלך לאלגנטי יותר, וזה לא יהיה קשה מדי בשבילך לשנות אותו. כלומר, במקום להתפלסף שירשור שלם, נראה בדיוק מה הדרישות לפי קוד קיים, ונעמוד בדיוק בדרישות אלה, כל אחד עם הטכניקה שלו. בקיצור, Refactoring.
 

drbunsen

New member
תודה! המימוש הבסיסי הוא מאד פשוט למעשה,

והפתרון שאני מחפש כללי, לאו דווקא רלוונטי לטכנולוגיה שלי (.NET). הקוד (שתכל'ס עוד לא נכתב) נראה ככה (זה EVENTHANDLER של לחיצה על כפתור מסויים ב-webpage, אבל באותה מידה זה יכול להיות גם במקום אחר, למשל בטעינת הדף. ממש לא משנה).
sub AddUSer_Click(..) if AuthorizeCommand(commandName,userName)=true do whatever you'd like to do else send user home... end if end sub function AuthorizeCommand(commandName,userName) as boolean if userIsAuthorizedUsingXML return true else return false end function​
חבר שלי גוגל רומז לי שאולי כדאי להשתמש פה ב-command design pattern. לא סגור עדיין איך אני מממש את זה בקונטקסט של webpage שמפעיל רוטינות למיניהן... חן חן
 

arnonrgo

New member
דרישות

השאלה מה נדרש מבחינת security - למשל דוגמא קטנה האם צריך למנוע מצב שבו מישהו עוקף את הUI שלך ומגיע ישירות ל, data בד"כ מבצעים ניתוח איומים ואז אפשר להמשיך מזה ספציפית ברמה של UI נראה לי יותר יעיל להסתיר או לחזוף כdisabled פקדים שהמשתמש אינו מורשה להם כשמרנדרים את הדף מאשר לבדוק בדיעבד ארנון
 
למעלה