Commit graph

33 commits

Author SHA1 Message Date
Griatch
ebdc6cdbd4 Fixed an issue with quell not correctly updating its caches in some situations. 2013-11-11 21:51:41 +01:00
Griatch
06e858b3f6 Moved permissions into a the tag system as a separate handler. Permissions still don't work quite right yet. 2013-08-24 23:57:44 +02:00
Kelketek
cab0182077 Fixed issue with lock replacements not committing. 2013-05-18 19:57:47 -05:00
Griatch
f00053710c Added Character-level quelling possibilities to superuser. This makes the superuser quelling completely in line with normal quelling for other permission levels. It also removes the need for the special _superuser_character bypass used before (the migration no longer creates it an initial_setup won't either). 2013-05-14 14:53:08 +02:00
Griatch
77a0b47859 Fixed some issues with the _superuser_character bypass as well as the is_superuser property on objects. Also fixed a bug with @examine that caused it to display object Attribute instead of Player Attributes when called from the ooc state. 2013-05-14 13:55:03 +02:00
Griatch
be22a31ec4 Made it possible to "take" over puppeting from one's own stale sessions. Fixed a nasty bug in swap_typeclass. 2013-05-11 16:09:26 +02:00
Griatch
7581d65cb3 Made superuser able to have a separate "superuser character" in order to be able to have also test-characters without privileges. 2013-03-11 22:01:52 +01:00
Griatch
bbdf2e0896 Fixed a bug that caused superuser status to be cached only once for characters, even if the player was not yet connected. 2013-03-11 20:01:03 +01:00
Griatch
29e313492f Added more session info to ooclook. Working on a bug that causes superuser to not be recognized now and then - this seems to be related to character.player returning None. This revision contains some printout debug messages since that bug is not yet fixed. 2013-03-11 01:32:17 +01:00
Griatch
d42949b324 Fixed up Tutorial world, which also led to weeding out a host of smaller things. Resolves Issue 216. Resolves Issue 335. Tutorial should now again be possible to complete. :) 2012-12-08 20:13:54 +01:00
Griatch
32b6becd33 Fixed a bug in lockhandler when entering a lock string containing upper-case AND/OR/NOT as part of a word (such as MAYOR). Thanks to lagos for suggesting the fix! Resolves Issue 303. 2012-10-21 23:52:54 +02:00
Griatch
d80daccb70 lockhandler.get() returned on the wrong format. Now returns the lockstring as the API specifies. Resolves Issue 282. 2012-10-14 12:39:59 +02:00
Griatch
049cc84be7 Added a "replace" method to lockhandler, courtesy of patch by user Shell. 2012-09-30 17:37:05 +02:00
Griatch
cdd24bd6f2 Fixed some leftover inconsistenciesin lockhandler, thanks to Shell pointing it out. 2012-09-30 15:42:30 +02:00
Griatch
4c849ec351 Cleaned and updated the i18n strings for various server-core system. Removed i18n for all strings that are only visible on stdout or in logs. Still missing i18n on certain specific things such as model field help and attribute warnings. Updated Swedish translation to match. 2012-06-14 02:43:35 +02:00
Griatch
5f043d28d7 Minor cleanups of code. 2012-06-10 11:16:00 +02:00
Griatch
ed6def0c88 Made XTERM256 properly range between 0-5 (it was erroneously capped at 1-5 which mean the darkest values
of the colour cube were unreachable).
Fixed some issues with the lock caching.
2012-04-29 01:26:10 +02:00
Griatch
e92c9ac93e Edited lockhandler to pre-determine an object's superuser-status instead of re-acquiring it every lock check. This caused a surprisingly large overhead considering how often locks are checked for various reasons. 2012-04-28 15:26:52 +02:00
Griatch
6e08c011a1 Further caching and optimization, making some operations noticeable faster in the end. 2012-04-26 17:47:25 +02:00
Griatch
1a6ef5d983 Added more caching to channelhandler as well as players in order to cut back on unnecessary database calls. 2012-04-26 13:38:34 +02:00
Griatch
a8373c685f Some optimizations in one of the most expensive bits of the server, namely the command handler. 2012-04-25 18:47:03 +02:00
Griatch
c8df141e89 Further cleanup of source; making class methods _private for clarity in the API. 2012-03-31 15:09:22 +02:00
Griatch
c47ff33aae Some cleanup in the lockhandler. 2012-02-22 14:46:07 +01:00
Griatch
bc0195bbaa Worked with admin interface, cleaning up and adding functionality. There are still some strange behaviour that makes e.g. the presence of inlines to auto-create empty database objects for some strange reason. Inlines are turned off at the moment (so there is no convenient way to add attributes from the admin interface at this time). Creating players now work, but one needs to create all three components (User, Player, Character) in one go and tie them together. The User-admin form was changed to also support multi-word usernames (django default didn't allow spaces). 2011-10-02 22:37:07 +02:00
Griatch
7237be87c6 Fixing typo in lock definitions for @dig as well as docstrings. Patch by sergi.reyner. Resolves issue 186. 2011-09-08 10:41:55 +00:00
Griatch
8770a263ac Fixes, cleanups and bugfixes in various systems. 2011-06-26 22:03:09 +00:00
Griatch
28fe2ad3f4 Run Migrate. Implemented a full separation between Player and Character - Players (OOC entities) can now also hold cmdsets and execute commands. This means that "disconnecting" from a Character becomes possible, putting the Player in an "OOC" state outside the game. This overall makes the game much more stable since there used to be issues if the character was destroyed. Having an OOC set also avoids the previous problem of @puppeting into an object that didn't have any cmdset of its own - you couldn't get back out! A new default OOC-Cmdset handles commands available to a player while OOC. Commands in this set are applied with a low priority, allowing "IC" mode to give precedence if desired.
This change meant several changes to the lock and permission functionality, since it becomes important if permissions are assigned on the Player or on their Character (lock functions pperm() and pid() etc check on Player rather than Character). This has the boon of allowing Admins to switch and play/test the game as a "Low access" character as they like.

Plenty of bug fixes and adjustments. Migrations should make sure to move over all data properly.
2011-04-23 11:54:08 +00:00
Griatch
7f7016ad7d Run Migrate. Implemented @search functionality with limits as per MUX (as part of the @find command). Added some more channel-related commands and changed locks for channels to have a "control" lock type rather than "admin". The migration converts this in existing channels.. 2011-04-20 22:40:27 +00:00
Griatch
7d30b337d9 Cleanups and bug fixes. Fixed the @unlink command and also made it overally more stable. Resolves issue 161. Added more string conversion routines to handle non-ascii variables being stored in an Attribute. Resolves issue 160. 2011-04-16 22:26:22 +00:00
Griatch
126e2ea61f OBS: You need to resync your database! Moved cmdsets into the database rather than being dependent on scripts. Moved the creation of the cmdset- and cmdset-handlers into ObjectDB.__init__ rather than bootstrapping it from the typeclass. Added some more script functionality for testing, includong the @script command for assigning a script to an object. 2011-03-20 19:45:56 +00:00
Griatch
de28b2d575 Fixes @locks to block self-escalation. Fixed a few bugs in @reload that caused it to reload also unsafe modules. 2011-03-17 22:28:30 +00:00
Griatch
bccd84e480 Fixed some bugs in the access system. Changed the "owner" default permission to "control" instead to more general. Added a new hook for setting locks for objects (the suspicion was that this would give lots of grief to newbies otherwise, now we have a lockdown policy in the absence of lock definitions). 2011-03-17 21:43:18 +00:00
Griatch
08b3de9e5e OBS: You'll need to resync/rebuild your database!
- This implements an updated, clearer and more robust access system. The policy is now to lock that which is not explicitly left open.
- Permission strings -> Lock strings. Separating permissions and locks makes more sense security-wise
- No more permissiongroup table; permissions instead use a simple tuple PERMISSIONS_HIERARCHY to define an access hierarchy
- Cleaner lock-definition syntax, all based on function calls.
- New objects/players/channels get a default security policy during creation (set through typeclass)

As part of rebuilding and testing the new lock/permission system I got into testing and debugging several other systems, fixing some
outstanding issues:
- @reload now fully updates the database asynchronously. No need to reboot server when changing cmdsets
- Dozens of new test suites added for about 30 commands so far
- Help for channels made more clever and informative.
2011-03-15 16:08:32 +00:00