Beginnings of our permissions system.

This commit is contained in:
Greg Taylor 2007-01-02 06:20:32 +00:00
parent 0e1e2ed1b0
commit 6f52e75725
7 changed files with 41 additions and 13 deletions

View file

View file

@ -0,0 +1,24 @@
from django.db import models
class GenericPerm(models.Model):
"""
This is merely a container class for some generic permissions that don't
fit under a particular module.
"""
class Meta:
permissions = (
("announce", "May use @wall to make announcements"),
("boot", "May use @boot to kick players"),
("builder", "May build"),
("chown_all", "Can @chown anything to anyone."),
("control_all", "May control everything"),
("examine_all", "Can examine any object"),
("extended_who", "May see extended WHO list"),
("free_money", "Has infinite money"),
("long_fingers", "May get/look/examine etc. from a distance"),
("steal", "May give negative money"),
("set_hide", "May set themself invisible"),
("shutdown", "May @shutdown the site"),
("tel_anywhere", "May @teleport anywhere"),
("tel_anyone", "May @teleport anything"),
)

View file

@ -0,0 +1 @@
# Create your views here.

View file

@ -1,7 +1,6 @@
from django.db import models from django.db import models
import ansi import ansi
# Create your models here.
class HelpEntry(models.Model): class HelpEntry(models.Model):
""" """
A generic help entry. A generic help entry.

View file

@ -18,7 +18,7 @@ class Attribute(models.Model):
object = models.ForeignKey("Object") object = models.ForeignKey("Object")
def __str__(self): def __str__(self):
return "%s(%d)" % (self.name, self.id,) return "%s(%s)" % (self.name, self.id)
class Admin: class Admin:
list_display = ('object', 'name', 'value',) list_display = ('object', 'name', 'value',)
@ -62,15 +62,13 @@ class Object(models.Model):
return "%s" % (self.get_name(),) return "%s" % (self.get_name(),)
class Meta: class Meta:
permissions = (
("can_examine", "Can examine objects"),
)
ordering = ['-date_created', 'id'] ordering = ['-date_created', 'id']
class Admin: class Admin:
list_display = ('id', 'name', 'type', 'date_created') list_display = ('id', 'name', 'type', 'date_created')
list_filter = ('type',) list_filter = ('type',)
search_fields = ['name'] search_fields = ['name']
save_on_top = True
""" """
BEGIN COMMON METHODS BEGIN COMMON METHODS
@ -195,18 +193,21 @@ class Object(models.Model):
Returns an object's name. Returns an object's name.
""" """
if fullname: if fullname:
return "%s(#%d%s)" % (ansi.parse_ansi(self.name, strip_ansi=True),self.id, self.flag_string()) return "%s(#%s%s)" % (ansi.parse_ansi(self.name, strip_ansi=True),self.id, self.flag_string())
else: else:
return "%s(#%d%s)" % (ansi.parse_ansi(self.name.split(';')[0], strip_ansi=True),self.id, self.flag_string()) return "%s(#%s%s)" % (ansi.parse_ansi(self.name.split(';')[0], strip_ansi=True), self.id, self.flag_string())
def get_ansiname(self, fullname=False): def get_ansiname(self, fullname=False):
""" """
Returns an object's ANSI'd name. Returns an object's ANSI'd name.
""" """
if fullname: if self.ansi_name:
return "%s(#%d%s)" % (ansi.parse_ansi(self.ansi_name), self.id, self.flag_string()) if fullname:
return "%s(#%s%s)" % (ansi.parse_ansi(self.ansi_name), self.id, self.flag_string())
else:
return "%s(#%s%s)" % (ansi.parse_ansi(self.ansi_name.split(';')[0]), self.id, self.flag_string())
else: else:
return "%s(#%d%s)" % (ansi.parse_ansi(self.ansi_name.split(';')[0]), self.id, self.flag_string()) return self.get_name()
def set_description(self, new_desc): def set_description(self, new_desc):
""" """
@ -492,6 +493,7 @@ class Object(models.Model):
Moves the object to a new location. Moves the object to a new location.
target: (Object) Reference to the object to move to. target: (Object) Reference to the object to move to.
quiet: (bool) If true, don't emit left/arrived messages.
""" """
if not quiet: if not quiet:
self.get_location().emit_to_contents("%s has left." % (self.get_ansiname(),), exclude=self) self.get_location().emit_to_contents("%s has left." % (self.get_ansiname(),), exclude=self)
@ -592,9 +594,10 @@ class Object(models.Model):
Returns the flag string for an object. This abbreviates all of the flags Returns the flag string for an object. This abbreviates all of the flags
set on the object into a list of single-character flag characters. set on the object into a list of single-character flag characters.
""" """
# TODO: Once we add a flag system, add the other flag types here. # We have to cast this because the admin interface is really picky
type_string = global_defines.OBJECT_TYPES[self.type][1][0] # about tuple index types. Bleh.
return type_string otype = int(self.type)
return global_defines.OBJECT_TYPES[otype][1][0]
import functions_db import functions_db
import session_mgr import session_mgr

Binary file not shown.

View file

@ -77,4 +77,5 @@ INSTALLED_APPS = (
'apps.config', 'apps.config',
'apps.objects', 'apps.objects',
'apps.helpsys', 'apps.helpsys',
'apps.genperms',
) )