예제 #1
0
'''
Created on Jun 9, 2010

@author: jnaous
'''
from django.db import models
from ..decorators import require_obj_permissions_for_method
from expedient.common.middleware import threadlocals


def user_parse_func(request):
    return request.user


threadlocals.add_parser("user_kw", user_parse_func)


def test_parse_func(request):
    try:
        return PermissionTestClass.objects.all()[0]
    except:
        return None


threadlocals.add_parser("test_kw", test_parse_func)


class PermissionTestClass(models.Model):
    """
    Dummy class used for tests.
    """
예제 #2
0
'''
Created on Jul 27, 2010

@author: jnaous
'''
from django.core.urlresolvers import resolve
from expedient.common.middleware.threadlocals import add_parser
from expedient.clearinghouse.project.models import Project
from expedient.clearinghouse.slice.models import Slice

def get_user(request):
    return request.user
add_parser("user", get_user)

def get_project(request):
    _, _, kwargs = resolve(request.path)
    if "proj_id" in kwargs:
        return Project.objects.get(id=kwargs["proj_id"])
    elif "slice_id" in kwargs:
        return Project.objects.get(slice__id=kwargs["slice_id"])
    elif "role_id" in kwargs:
        return Project.objects.get(projectrole__id=kwargs["role_id"])
    else:
        return None
add_parser("project", get_project)

def get_slice(request):
    _, _, kwargs = resolve(request.path)
    if "slice_id" in kwargs:
        return Slice.objects.get(id=kwargs["slice_id"])
    else:
예제 #3
0
'''
Created on Jun 9, 2010

@author: jnaous
'''
from django.db import models
from ..decorators import require_obj_permissions_for_method
from expedient.common.middleware import threadlocals

def user_parse_func(request):
    return request.user
threadlocals.add_parser("user_kw", user_parse_func)

def test_parse_func(request):
    try:
        return PermissionTestClass.objects.all()[0]
    except:
        return None
threadlocals.add_parser("test_kw", test_parse_func)

class PermissionTestClass(models.Model):
    """
    Dummy class used for tests.
    """

    val = models.IntegerField()
    
    @require_obj_permissions_for_method(
        "user_kw", ["can_get_x2", "can_read_val"])
    def get_val_x2(self):
        return self.val * 2
예제 #4
0
'''
Created on Jul 27, 2010

@author: jnaous
'''
from django.core.urlresolvers import resolve
from expedient.common.middleware.threadlocals import add_parser
from expedient.clearinghouse.project.models import Project
from expedient.clearinghouse.slice.models import Slice


def get_user(request):
    return request.user


add_parser("user", get_user)


def get_project(request):
    _, _, kwargs = resolve(request.path)
    if "proj_id" in kwargs:
        return Project.objects.get(id=kwargs["proj_id"])
    elif "slice_id" in kwargs:
        return Project.objects.get(slice__id=kwargs["slice_id"])
    elif "role_id" in kwargs:
        return Project.objects.get(projectrole__id=kwargs["role_id"])
    else:
        return None


add_parser("project", get_project)