mirror of
https://github.com/evennia/evennia.git
synced 2026-04-01 21:47:17 +02:00
Moved permissions into a the tag system as a separate handler. Permissions still don't work quite right yet.
This commit is contained in:
parent
2acff2d1ab
commit
06e858b3f6
21 changed files with 1003 additions and 389 deletions
|
|
@ -0,0 +1,54 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Deleting field 'HelpEntry.db_permissions'
|
||||
db.delete_column(u'help_helpentry', 'db_permissions')
|
||||
|
||||
# Adding M2M table for field db_tags on 'HelpEntry'
|
||||
m2m_table_name = db.shorten_name(u'help_helpentry_db_tags')
|
||||
db.create_table(m2m_table_name, (
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
||||
('helpentry', models.ForeignKey(orm[u'help.helpentry'], null=False)),
|
||||
('tag', models.ForeignKey(orm[u'typeclasses.tag'], null=False))
|
||||
))
|
||||
db.create_unique(m2m_table_name, ['helpentry_id', 'tag_id'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Adding field 'HelpEntry.db_permissions'
|
||||
db.add_column(u'help_helpentry', 'db_permissions',
|
||||
self.gf('django.db.models.fields.CharField')(default='', max_length=255, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
# Removing M2M table for field db_tags on 'HelpEntry'
|
||||
db.delete_table(db.shorten_name(u'help_helpentry_db_tags'))
|
||||
|
||||
|
||||
models = {
|
||||
u'help.helpentry': {
|
||||
'Meta': {'object_name': 'HelpEntry'},
|
||||
'db_entrytext': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'db_help_category': ('django.db.models.fields.CharField', [], {'default': "'General'", 'max_length': '255'}),
|
||||
'db_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
|
||||
'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'db_staff_only': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'db_tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['typeclasses.Tag']", 'null': 'True', 'symmetrical': 'False'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
||||
},
|
||||
u'typeclasses.tag': {
|
||||
'Meta': {'unique_together': "(('db_key', 'db_category'),)", 'object_name': 'Tag', 'index_together': "(('db_key', 'db_category'),)"},
|
||||
'db_category': ('django.db.models.fields.CharField', [], {'max_length': '64', 'null': 'True', 'db_index': 'True'}),
|
||||
'db_data': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'db_index': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['help']
|
||||
|
|
@ -13,6 +13,7 @@ from django.db import models
|
|||
from src.utils.idmapper.models import SharedMemoryModel
|
||||
from src.help.manager import HelpEntryManager
|
||||
from src.utils import ansi
|
||||
from src.typeclasses.models import Tag, TagHandler
|
||||
from src.locks.lockhandler import LockHandler
|
||||
from src.utils.utils import is_iter
|
||||
__all__ = ("HelpEntry",)
|
||||
|
|
@ -52,10 +53,11 @@ class HelpEntry(SharedMemoryModel):
|
|||
help_text='organizes help entries in lists')
|
||||
# the actual help entry text, in any formatting.
|
||||
db_entrytext = models.TextField('help entry', blank=True, help_text='the main body of help text')
|
||||
# a string of permissionstrings, separated by commas. Not used by help entries.
|
||||
db_permissions = models.CharField('permissions', max_length=255, blank=True)
|
||||
# lock string storage
|
||||
db_lock_storage = models.TextField('locks', blank=True, help_text='normally view:all().')
|
||||
# tags are primarily used for permissions
|
||||
db_tags = models.ManyToManyField(Tag, null=True,
|
||||
help_text='tags on this object. Tags are simple string markers to identify, group and alias objects.')
|
||||
# (deprecated, only here to allow MUX helpfile load (don't use otherwise)).
|
||||
# TODO: remove this when not needed anymore.
|
||||
db_staff_only = models.BooleanField(default=False)
|
||||
|
|
@ -66,6 +68,7 @@ class HelpEntry(SharedMemoryModel):
|
|||
def __init__(self, *args, **kwargs):
|
||||
SharedMemoryModel.__init__(self, *args, **kwargs)
|
||||
self.locks = LockHandler(self)
|
||||
self.tags = TagHandler(self)
|
||||
|
||||
class Meta:
|
||||
"Define Django meta options"
|
||||
|
|
@ -130,24 +133,24 @@ class HelpEntry(SharedMemoryModel):
|
|||
# self.save()
|
||||
#entrytext = property(__entrytext_get, __entrytext_set, __entrytext_del)
|
||||
|
||||
# permissions property
|
||||
#@property
|
||||
def __permissions_get(self):
|
||||
"Getter. Allows for value = self.permissions. Returns a list of permissions."
|
||||
return [perm.strip() for perm in self.db_permissions.split(',')]
|
||||
#@permissions.setter
|
||||
def __permissions_set(self, value):
|
||||
"Setter. Allows for self.permissions = value. Stores as a comma-separated string."
|
||||
if is_iter(value):
|
||||
value = ",".join([str(val).strip().lower() for val in value])
|
||||
self.db_permissions = value
|
||||
self.save()
|
||||
#@permissions.deleter
|
||||
def __permissions_del(self):
|
||||
"Deleter. Allows for del self.permissions"
|
||||
self.db_permissions = ""
|
||||
self.save()
|
||||
permissions = property(__permissions_get, __permissions_set, __permissions_del)
|
||||
## permissions property
|
||||
##@property
|
||||
#def __permissions_get(self):
|
||||
# "Getter. Allows for value = self.permissions. Returns a list of permissions."
|
||||
# return [perm.strip() for perm in self.db_permissions.split(',')]
|
||||
##@permissions.setter
|
||||
#def __permissions_set(self, value):
|
||||
# "Setter. Allows for self.permissions = value. Stores as a comma-separated string."
|
||||
# if is_iter(value):
|
||||
# value = ",".join([str(val).strip().lower() for val in value])
|
||||
# self.db_permissions = value
|
||||
# self.save()
|
||||
##@permissions.deleter
|
||||
#def __permissions_del(self):
|
||||
# "Deleter. Allows for del self.permissions"
|
||||
# self.db_permissions = ""
|
||||
# self.save()
|
||||
#permissions = property(__permissions_get, __permissions_set, __permissions_del)
|
||||
|
||||
# lock_storage property (wraps db_lock_storage)
|
||||
##@property
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue