From ea52870db6ae8f3c913ebb2cb0d3a307e580664b Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Sat, 22 Oct 2011 22:12:56 +0000 Subject: [PATCH] charactes are not people, fix changing password --- pandora/0xdb.jsonc | 4 ++-- pandora/archive/models.py | 2 +- pandora/item/models.py | 3 ++- pandora/item/views.py | 7 +++++-- pandora/user/views.py | 2 +- static/js/pandora/ui/filesView.js | 4 ++-- static/js/pandora/ui/infoView.js | 8 ++++---- static/js/pandora/ui/item.js | 2 +- 8 files changed, 18 insertions(+), 14 deletions(-) diff --git a/pandora/0xdb.jsonc b/pandora/0xdb.jsonc index 6de338678..b733f5b1e 100644 --- a/pandora/0xdb.jsonc +++ b/pandora/0xdb.jsonc @@ -14,7 +14,7 @@ */ "capabilities": { "canDeleteItems": {"admin": true}, - "canEditItemIcons": {"staff": true, "admin": true}, + "canEditMetadata": {"staff": true, "admin": true}, "canPlayClips": {"guest": 2, "member": 2, "friend": 3, "staff": 4, "admin": 4}, "canPlayVideo": {"guest": 1, "member": 1, "friend": 3, "staff": 4, "admin": 4}, "canReloadMetadata": {"staff": true, "admin": true}, @@ -196,7 +196,7 @@ "type": ["string"], "autocomplete": true, "find": true, - "sort": "person" + "sort": "string" }, { "id": "name", diff --git a/pandora/archive/models.py b/pandora/archive/models.py index 5e9633754..97d9cc75f 100644 --- a/pandora/archive/models.py +++ b/pandora/archive/models.py @@ -281,7 +281,7 @@ class File(models.Model): 'videoCodec': self.video_codec, 'wanted': self.wanted, } - data['users'] = [i['user'] for i in data['instances']] + data['users'] = list(set([i['user'] for i in data['instances']])) if keys: for k in data.keys(): if k not in keys: diff --git a/pandora/item/models.py b/pandora/item/models.py index 6a20a015d..62699f2b2 100644 --- a/pandora/item/models.py +++ b/pandora/item/models.py @@ -190,7 +190,8 @@ class Item(models.Model): def editable(self, user): if user.is_anonymous(): return False - if user.is_staff or \ + if user.get_profile().capability('canEditMetadata') == True or \ + user.is_staff or \ self.user == user or \ self.groups.filter(id__in=user.groups.all()).count() > 0: return True diff --git a/pandora/item/views.py b/pandora/item/views.py index d56183b5c..4581cc479 100644 --- a/pandora/item/views.py +++ b/pandora/item/views.py @@ -426,7 +426,7 @@ actions.register(getItem) @login_required_json -def editItem(request): +def edit(request): ''' param data { id: string, @@ -445,11 +445,14 @@ def editItem(request): if request.user.get_profile().capability('canSeeNotes'): item.notes = data['notes'] del data['notes'] + if 'rightsLevel' in data: + item.level = data['rightsLevel'] + del data['rightsLevel'] item.edit(data) else: response = json_response(status=403, text='permissino denied') return render_to_json_response(response) -actions.register(editItem, cache=False) +actions.register(edit, cache=False) @login_required_json def remove(request): diff --git a/pandora/user/views.py b/pandora/user/views.py index 066cdbf34..14677a468 100644 --- a/pandora/user/views.py +++ b/pandora/user/views.py @@ -584,7 +584,7 @@ def editPreferences(request): request.user.email = data['email'] if 'password' in data: change = True - request.user.password = data['password'] + request.user.set_password(data['password']) if change: request.user.save() if errors: diff --git a/static/js/pandora/ui/filesView.js b/static/js/pandora/ui/filesView.js index bd307b56d..d72cc579a 100644 --- a/static/js/pandora/ui/filesView.js +++ b/static/js/pandora/ui/filesView.js @@ -82,7 +82,7 @@ pandora.ui.filesView = function(options, self) { operator: '+', title: 'Path', visible: true, - width: 720 + width: 480 }, { align: 'left', @@ -194,7 +194,7 @@ pandora.ui.filesView = function(options, self) { operator: '+', title: 'Path', visible: true, - width: 720 + width: 480 }, ], columnsMovable: true, diff --git a/static/js/pandora/ui/infoView.js b/static/js/pandora/ui/infoView.js index 3a0e33074..c15da5278 100644 --- a/static/js/pandora/ui/infoView.js +++ b/static/js/pandora/ui/infoView.js @@ -4,7 +4,7 @@ pandora.ui.infoView = function(data) { // when collapsing the movies browser, the info view should become a split panel var ui = pandora.user.ui, - canEditIcons = pandora.site.capabilities.canEditItemIcons[pandora.user.level], + canEdit = pandora.site.capabilities.canEditMetadata[pandora.user.level], borderRadius = ui.icons == 'posters' ? 0 : iconSize / 8, css = { marginTop: '4px', @@ -30,7 +30,7 @@ pandora.ui.infoView = function(data) { $info = $('