kopia lustrzana https://github.com/OpenDroneMap/WebODM
Propagate permissions information on map view
rodzic
ab350116b0
commit
788157a95e
|
@ -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>);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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()
|
||||
})
|
||||
|
||||
|
|
|
@ -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()
|
||||
})
|
||||
|
||||
|
|
|
@ -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
|
Ładowanie…
Reference in New Issue