Propagate permissions information on map view

pull/1504/head
Piero Toffanin 2024-05-23 14:48:32 -04:00
rodzic ab350116b0
commit 788157a95e
5 zmienionych plików z 20 dodań i 5 usunięć

Wyświetl plik

@ -11,7 +11,8 @@ class MapView extends React.Component {
selectedMapType: 'auto',
title: "",
public: false,
shareButtons: true
shareButtons: true,
permissions: ["view"]
};
static propTypes = {
@ -19,7 +20,8 @@ class MapView extends React.Component {
selectedMapType: PropTypes.oneOf(['auto', 'orthophoto', 'plant', 'dsm', 'dtm']),
title: PropTypes.string,
public: PropTypes.bool,
shareButtons: PropTypes.bool
shareButtons: PropTypes.bool,
permissions: PropTypes.array
};
constructor(props){
@ -130,6 +132,7 @@ class MapView extends React.Component {
mapType={this.state.selectedMapType}
public={this.props.public}
shareButtons={this.props.shareButtons}
permissions={this.props.permissions}
/>
</div>
</div>);

Wyświetl plik

@ -35,7 +35,8 @@ class Map extends React.Component {
showBackground: false,
mapType: "orthophoto",
public: false,
shareButtons: true
shareButtons: true,
permissions: ["view"]
};
static propTypes = {
@ -43,7 +44,8 @@ class Map extends React.Component {
tiles: PropTypes.array.isRequired,
mapType: PropTypes.oneOf(['orthophoto', 'plant', 'dsm', 'dtm']),
public: PropTypes.bool,
shareButtons: PropTypes.bool
shareButtons: PropTypes.bool,
permissions: PropTypes.array
};
constructor(props) {

Wyświetl plik

@ -13,6 +13,7 @@ from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.utils.translation import ugettext as _
from django import forms
from app.views.utils import get_permissions
from webodm import settings
def index(request):
@ -73,7 +74,8 @@ def map(request, project_pk=None, task_pk=None):
'map-items': json.dumps(mapItems),
'title': title,
'public': 'false',
'share-buttons': 'false' if settings.DESKTOP_MODE else 'true'
'share-buttons': 'false' if settings.DESKTOP_MODE else 'true',
'permissions': json.dumps(get_permissions(request.user, project))
}.items()
})

Wyświetl plik

@ -7,6 +7,7 @@ from django.shortcuts import render
from app.api.tasks import TaskSerializer
from app.models import Task
from app.views.utils import get_permissions
from django.views.decorators.csrf import ensure_csrf_cookie
from webodm import settings
@ -31,6 +32,7 @@ def handle_map(request, template, task_pk=None, hide_title=False):
'public': 'true',
'share-buttons': 'false' if settings.DESKTOP_MODE else 'true',
'selected-map-type': request.GET.get('t', 'auto'),
'permissions': json.dumps(get_permissions(request.user, task.project))
}.items()
})

Wyświetl plik

@ -0,0 +1,6 @@
def get_permissions(user, project):
perms = []
for p in ["view", "change"]:
if user.has_perm('app.%s_project' % p, project):
perms.append(p)
return perms