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