Revision a23ac2f7 snf-astakos-app/astakos/api/projects.py
b/snf-astakos-app/astakos/api/projects.py | ||
---|---|---|
31 | 31 |
# interpreted as representing official policies, either expressed |
32 | 32 |
# or implied, of GRNET S.A. |
33 | 33 |
|
34 |
import re |
|
34 | 35 |
from django.utils import simplejson as json |
35 | 36 |
from django.views.decorators.csrf import csrf_exempt |
36 | 37 |
from django.http import HttpResponse |
... | ... | |
362 | 363 |
return value |
363 | 364 |
|
364 | 365 |
|
366 |
DOMAIN_VALUE_REGEX = re.compile( |
|
367 |
r'^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$', |
|
368 |
re.IGNORECASE) |
|
369 |
|
|
370 |
|
|
371 |
def valid_project_name(name): |
|
372 |
return DOMAIN_VALUE_REGEX.match(name) is not None |
|
373 |
|
|
374 |
|
|
365 | 375 |
def submit_application(app_data, user, project_id=None): |
366 | 376 |
uuid = app_data.get("owner") |
367 | 377 |
if uuid is None: |
... | ... | |
377 | 387 |
except KeyError: |
378 | 388 |
raise faults.BadRequest("Name missing.") |
379 | 389 |
|
390 |
if not valid_project_name(name): |
|
391 |
raise faults.BadRequest("Project name should be in domain format") |
|
392 |
|
|
380 | 393 |
join_policy = app_data.get("join_policy", "moderated") |
381 | 394 |
try: |
382 | 395 |
join_policy = MEMBERSHIP_POLICY[join_policy] |
Also available in: Unified diff