app/soc/views/models/user.py
changeset 543 280a1ac6bcc1
parent 542 7cc99461b64d
child 546 850d9a5ad894
equal deleted inserted replaced
542:7cc99461b64d 543:280a1ac6bcc1
    30 
    30 
    31 from soc.logic import dicts
    31 from soc.logic import dicts
    32 from soc.logic import validate
    32 from soc.logic import validate
    33 from soc.logic.models import user as user_logic
    33 from soc.logic.models import user as user_logic
    34 from soc.views import helper
    34 from soc.views import helper
       
    35 from soc.views import out_of_band
    35 from soc.views.helper import access
    36 from soc.views.helper import access
    36 from soc.views.models import base
    37 from soc.views.models import base
    37 
    38 
    38 import soc.models.user
    39 import soc.models.user
    39 import soc.logic.models.user
    40 import soc.logic.models.user
   181 
   182 
   182     params = dicts.merge(original_params, params)
   183     params = dicts.merge(original_params, params)
   183 
   184 
   184     base.View.__init__(self, params=params)
   185     base.View.__init__(self, params=params)
   185 
   186 
       
   187   EDIT_SELF_TMPL = 'soc/user/edit_self.html'
       
   188 
   186   def editSelf(self, request, page_name=None, params=None, **kwargs):
   189   def editSelf(self, request, page_name=None, params=None, **kwargs):
   187     """Displays User self edit page for the entity specified by **kwargs.
   190     """Displays User self edit page for the entity specified by **kwargs.
   188 
   191 
   189     Args:
   192     Args:
   190       request: the standard Django HTTP request object
   193       request: the standard Django HTTP request object
   198     rights['unspecified'] = [access.deny]
   201     rights['unspecified'] = [access.deny]
   199     rights['editSelf'] = [access.allow]
   202     rights['editSelf'] = [access.allow]
   200 
   203 
   201     try:
   204     try:
   202       self.checkAccess('editSelf', request, rights=rights)
   205       self.checkAccess('editSelf', request, rights=rights)
   203     except soc.views.out_of_band.AccessViolationResponse, alt_response:
   206     except out_of_band.Error, error:
   204       return alt_response.response()
   207       return error.response(request, template=self.EDIT_SELF_TMPL)
   205 
   208 
   206     new_params = {}
   209     new_params = {}
   207     new_params['edit_template'] = 'soc/user/edit_self.html'
   210     new_params['edit_template'] = self.EDIT_SELF_TMPL
   208     new_params['rights'] = rights
   211     new_params['rights'] = rights
   209 
   212 
   210     params = dicts.merge(params, new_params)
   213     params = dicts.merge(params, new_params)
   211     params = dicts.merge(params, self._params)
   214     params = dicts.merge(params, self._params)
   212 
   215 
   230         }
   233         }
   231 
   234 
   232         # check if user account is not in former_accounts
   235         # check if user account is not in former_accounts
   233         # if it is show error message that account is invalid
   236         # if it is show error message that account is invalid
   234         if soc.logic.models.user.logic.isFormerAccount(account):
   237         if soc.logic.models.user.logic.isFormerAccount(account):
   235           msg = DEF_USER_ACCOUNT_INVALID_MSG
   238           error = out_of_band.Error(DEF_USER_ACCOUNT_INVALID_MSG)
   236           error = out_of_band.ErrorResponse(msg)
   239           return error.response(request, template=template, context=context)
   237           return simple.errorResponse(request, page_name, error, template,
       
   238                                       context)
       
   239 
   240 
   240         user = soc.logic.models.user.logic.updateOrCreateFromFields(
   241         user = soc.logic.models.user.logic.updateOrCreateFromFields(
   241             properties, {'link_id': new_link_id})
   242             properties, {'link_id': new_link_id})
   242 
   243 
   243         # redirect to /user/profile?s=0
   244         # redirect to /user/profile?s=0