[TehPUG] User manger App

soroosh sarabadani soroosh.sarabadani at gmail.com
Mon May 26 09:04:07 CEST 2014


یک سوال.

User Management چرا اصلا باید پیام داشته باشه؟

به نظرم وجود این امکان app رو از minimal بودن خارج میکنه


2014-05-26 11:23 GMT+04:30 NIM4N <nim4n at yahoo.com.dmarc.invalid>:

>  مدل پیغام به نظرم به شکل فایل پیوست باشه بهتره
>
>
>
>
> On 05/26/2014 10:25 AM, soroosh sarabadani wrote:
>
>  Many To Many که خوب جدول ساخته میشه پس به نظرم اضافه کردن ویژگیهای خاص
> رابطه مفیده سربار خاصی هم نداره.
>
>  منم با آقا نیما درباره اسمها کاملا موافقم.
>
>
> 2014-05-26 10:15 GMT+04:30 NIM4N <nim4n at yahoo.com.dmarc.invalid>:
>
>>  به نظرم فرند ها هم many to many باشه توی خود پروفایل، نیازی هست به خاطر
>> یک تاریخ دوستی یه تیبل جدا بزنیم؟
>> اسمها رو هم پدر مادر دار بزنید :)
>>  On 05/26/2014 04:24 AM, amir baleghi wrote:
>>
>>   سلام بر کاربر های عزیز ‍‍‍‍‍TEHPUG
>>  خسته نباشید .. همون طور که توی جلسه مشخص شد قرار شد یک سیستم مدیریت
>> کاربران برای سایت ‍‍پاگ بسازیم. خوب همون طور که توی جلسه بحث کردیم مدلی که
>> بنده آورده بودم رو برای به عنوان شروع کار قرار دادیم... (البته با تغییرات
>> احتمالی که در ادامه می گم)...
>>  برای شروع کار از کتابخونه Djengo کمک می گیرم . توی این سایت مقدمات
>> سفارشی کردن سیستم user manager رو توضیح داده . به همه  بچه توصیه می کنم این
>> رو تا انتها بخونن.... تمام روش هایی رو که شمای می تونید از سیستم user
>> manager جنگو استفاده کنید رو توضیح داده است. و معایب بعضی از روش ها رو هم
>> بیان کرده است.
>>
>> https://docs.djangoproject.com/en/dev/topics/auth/customizing/
>>
>>  خوب در ادامه به سیستم پیشنهادی می پردازیم
>>  برای شروع کار من از ساختار پروفایل استفاده کردیم .که البته باید در مورد
>> استفاده از این ساختار با هم به توافق برسیم . انتخاب ساختار بستگی به روش کار
>> ما داره که باید روش بحث کنیم . که ادامه بهش اشاره می کنم
>>  با توجه به مستندات لینک بالا بهترین روش های برای استفاده از ساختار user
>> manager جنگو دو روش زیر می باشند:
>>  ۱- روش پروفایل
>>  ۲ - استفاده از Abstract class
>>  هستش. بقیه روش ها یا برای ما کارایی لازم رو نداره یا دارای معایب بزرگی
>> هست. البته بازم بجه اگر روش دیگه به نظر شون میاد بگن که روی اون ها هم بحث
>> کنیم
>>  روش پروفایل همون طور که در مستند توضیح داده شده است. از یک ارتباط یک به
>> یک بهره می بره . شما با درست کردن مدل خودتون به صورت کاملا سفارشی اون رو
>> مدل کاربران اصلی جنگو با یک ارتباط یک به یک ارتباط می دهید
>>  مزایا این روش خیلی زیاد هست . و یک پشتوانه علمی داره . اگر لازم به ذکر
>> شد توضیخ می دم
>>  معایب هم کاملا مشخصه وقتی شما یک مدل را به یک مدل دیگه متصل می کنید بحث
>> هزینه های join  و پیجیدگی query ها مطرح میشه. که خوب این هم به نظر من با
>> بهینه سازی query  ها می تونیم این مسایل رو برطرف کنیم. حتی می تونیم از فیلد
>> های redundant استفاده کنیم که هزینه join ها مون پایین بیاد.
>>
>>  در روش دوم بجث Abstract class
>>  در این روش ما با استفاده از کلاس های abstract اقدام به ساخت یک سیستم
>> جدید user manger می کنیم که با استفاده از ارث بری از کلاس های abstract
>> کاربری از روش استفاده می کنیم .
>>   مزایا این روش به نظر من سفارشی کردن کامل بحث user manger هست . در این
>> روش سیستم شما در حالت پیش فرض کاملا مستقل از سیستم اصلی جنگو عمل می کند
>> یعنی در حالتی شما این سیستم را پیاده سازی می کنید که می خواهیم مستقل از
>> جنگو عمل کنیم و یک سیستم مدیریت کاربران کاملا سفارشی و مسقل داشته باشیم
>> در این حالت شما نیم نگاهی به امنیت سایت هم داشته ای چون در این حالا
>> کاربران عادی سایت از کابراران توسعه دهنده سایت مجزا می باشند که می تونه
>> برای خودش یک ابزار برای گمراهی مهاجم ها به سایت باشه.
>>   البته مزایا های دیگه هم ممکن داشته باشه که در حال حاضر ذهن یاری نمی
>> کنه (ساعت ۴ صبح هستش)
>>  معایبش هم به نظر من بحث بازنویسی دوباره کد هستش ....یعنی شما در این
>> حالت نیاز دارید بسیاری از پیش فرض های جنگو را پیاده سازی کنید که در این
>> حالت یک جورایی دوباره کاری های انجام شده ....که می تونه زمینه ساز خطا در
>> برنامه باشه . و از طرفی بدلیل پیاده سازی های نادرست زمینه ورود مهاجم به
>> سایت رو هم بدیم.که در این حالت برای بطرف کردن این کار می تونیم از روش های
>> تست که در سیستم جنگو هست استفاده کنیم که در این حالت می تونیم از بروز خطا
>> جلوگیری کنیم و سیستمون رو امن تر کنیم.
>>
>>  خوب مدل های رو که من به عنوان پیش فرض اماده کردم رو اینجا می زارم
>>  برای این مدل ها من روش پروفایل استفاده کردم.
>>  برای روش abstarct هم می تونیم از لینک استفاده کنید. در اونجا یک مثال
>> کامل از روش بیان شده است
>>
>>
>> from django.db import models
>> from django.contrib.auth.models import User
>>
>> class PugUsers(models.Model):
>>     user = models.OneToOneField(User)
>>     userInformation = models.CharField(max_length=500)
>>     userImage = models.CharField(max_length=50)
>>     userAbility = models.CharField(max_length=500)
>>
>>
>>
>> class PugFriends(models.Model):
>>     userF = models.ForeignKey(PugUsers, related_name="userF")
>>     userFriend = models.ForeignKey(PugUsers, related_name="user_Friend")
>>     friendshipDate = models.DateTimeField(auto_now=True)
>>
>>
>> class PugMessage(models.Model):
>>     userSender = models.ForeignKey(PugUsers, related_name="user_sender")
>>     userReceiver = models.ForeignKey(PugUsers,
>> related_name="user_receiver")
>>     mesSubject = models.CharField(max_length=100)
>>     mesBody = models.CharField(max_length=1000)
>>
>>  خوب از اینجا به بعدش می تونیم از بین این دو روش انتخاب کنیم
>>  هر کدوم مزایا و معیابی داره تا جایی که ذهن یاری می کرد این رو بیان کردم
>>  از اینجا به بعد بچه ها کمک کنن ببینید چه مبنایی رو به عنوان شروع کار
>> قرار بدهیم.
>>  از آقا نیما تشکر می کنم که به بنده یاد آوری کردن....خیلی ممنون
>>  فایل های پروژه  رو براتون پیوست می کنم.
>>  منتظر نظر های شما هستیم
>>
>>
>>   _______________________________________________
>> TehPUG mailing list
>> Website: http://tehpug.ir
>> List Address" TehPUG at python.org
>> List Options: https://mail.python.org/mailman/listinfo/tehpug
>>
>>
>>
>> _______________________________________________
>> TehPUG mailing list
>> Website: http://tehpug.ir
>> List Address" TehPUG at python.org
>> List Options: https://mail.python.org/mailman/listinfo/tehpug
>>
>
>
>
> _______________________________________________
> TehPUG mailing list
> Website: http://tehpug.ir
> List Address" TehPUG at python.org
> List Options: https://mail.python.org/mailman/listinfo/tehpug
>
>
>
> _______________________________________________
> TehPUG mailing list
> Website: http://tehpug.ir
> List Address" TehPUG at python.org
> List Options: https://mail.python.org/mailman/listinfo/tehpug
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tehpug/attachments/20140526/7a79f412/attachment.html>


More information about the TehPUG mailing list