app/soc/views/models/user.py
changeset 590 37735d97b541
parent 587 7504504209a3
child 605 4a384d412640
--- a/app/soc/views/models/user.py	Wed Nov 26 16:33:36 2008 +0000
+++ b/app/soc/views/models/user.py	Wed Nov 26 20:50:56 2008 +0000
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-"""Views for Host profiles.
+"""Views for User profiles.
 """
 
 __authors__ = [
@@ -110,49 +110,10 @@
   key_name = forms.CharField(widget=forms.HiddenInput)
 
 
-class UserForm(helper.forms.BaseForm):
-  """Django form displayed when creating or editing a User.
-  """
-  class Meta:
-    """Inner Meta class that defines some behavior for the form.
-    """
-    #: db.Model subclass for which the form will gather information
-    model = soc.models.user.User
-
-    #: list of model fields which will *not* be gathered by the form
-    exclude = ['account', 'former_accounts', 'is_developer']
-
-  def clean_link_id(self):
-    link_id = self.cleaned_data.get('link_id')
-    if not validate.isLinkIdFormatValid(link_id):
-      raise forms.ValidationError("This link ID is in wrong format.")
-
-    user = soc.logic.models.user.logic.getForFields({'link_id': link_id},
-                                          unique=True)
-
-    # Get the currently logged in user account
-    current_account = users.get_current_user()
-
-    if user:
-      if current_account != user.account:
-        raise forms.ValidationError("This link ID is already in use.")
-
-    return link_id
-
-
 class View(base.View):
   """View methods for the User model.
   """
 
-  DEF_USER_ACCOUNT_INVALID_MSG_FMT = ugettext_lazy(
-    'The <b><i>%(email)s</i></b> account cannot be used with this site, for'
-    ' one or more of the following reasons:'
-    '<ul>'
-    ' <li>the account is invalid</li>'
-    ' <li>the account is already attached to a User profile and cannot be'
-    ' used to create another one</li>'
-    ' <li>the account is a former account that cannot be used again</li>'
-    '</ul>')
 
   def __init__(self, original_params=None):
     """Defines the fields and methods required for the base View class
@@ -164,12 +125,7 @@
 
     self._logic = soc.logic.models.user.logic
 
-    rights = {}
-    rights['editSelf'] = [access.allow]
-    rights['roles'] = [access.checkIsUser]
-
     params = {}
-    params['rights'] = rights
 
     params['name'] = "User"
     params['name_short'] = "User"
@@ -188,96 +144,7 @@
 
     base.View.__init__(self, params=params)
 
-  EDIT_SELF_TMPL = 'soc/user/edit_self.html'
 
-  def editSelf(self, request, page_name=None, params=None, **kwargs):
-    """Displays User self edit page for the entity specified by **kwargs.
-
-    Args:
-      request: the standard Django HTTP request object
-      page_name: the page name displayed in templates as page and header title
-      params: a dict with params for this View
-      kwargs: The Key Fields for the specified entity
-    """
-
-    try:
-      self.checkAccess('editSelf', request)
-    except out_of_band.Error, error:
-      return error.response(request, template=self.EDIT_SELF_TMPL)
-
-    new_params = {}
-    new_params['edit_template'] = self.EDIT_SELF_TMPL
-
-    params = dicts.merge(params, new_params)
-    params = dicts.merge(params, self._params)
-
-    account = users.get_current_user()
-    properties = {'account': account}
-
-    user = soc.logic.models.user.logic.getForFields(properties, unique=True)
-
-    # create default template context for use with any templates
-    context = helper.responses.getUniversalContext(request)
-
-    if request.method == 'POST':
-      form = UserForm(request.POST)
-
-      if form.is_valid():
-        new_link_id = form.cleaned_data.get('link_id')
-        properties = {
-          'link_id': new_link_id,
-          'name': form.cleaned_data.get("name"),
-          'account': account,
-        }
-
-        # check if user account is not in former_accounts
-        # if it is show error message that account is invalid
-        if soc.logic.models.user.logic.isFormerAccount(account):
-          msg = self.DEF_USER_ACCOUNT_INVALID_MSG_FMT % {
-            'email': account.email()}
-          error = out_of_band.Error(msg)
-          return error.response(request, template=self.EDIT_SELF_TMPL,
-                                context=context)
-
-        user = soc.logic.models.user.logic.updateOrCreateFromFields(
-            properties, {'link_id': new_link_id})
-
-        # redirect to /user/profile?s=0
-        # (causes 'Profile saved' message to be displayed)
-        return helper.responses.redirectToChangedSuffix(
-            request, None, params=params['edit_params'])
-    else: # request.method == 'GET'
-      if user:
-        # is 'Profile saved' parameter present, but referrer was not ourself?
-        # (e.g. someone bookmarked the GET that followed the POST submit)
-        if (request.GET.get(self.DEF_SUBMIT_MSG_PARAM_NAME)
-            and (not helper.requests.isReferrerSelf(request))):
-          # redirect to aggressively remove 'Profile saved' query parameter
-          return http.HttpResponseRedirect(request.path)
-
-        # referrer was us, so select which submit message to display
-        # (may display no message if ?s=0 parameter is not present)
-        context['notice'] = (
-            helper.requests.getSingleIndexedParamValue(
-                request, self.DEF_SUBMIT_MSG_PARAM_NAME,
-                values=params['save_message']))
-
-        # populate form with the existing User entity
-        form = UserForm(instance=user)
-      else:
-        if request.GET.get(self.DEF_SUBMIT_MSG_PARAM_NAME):
-          # redirect to aggressively remove 'Profile saved' query parameter
-          return http.HttpResponseRedirect(request.path)
-
-        # no User entity exists for this Google Account, so show a blank form
-        form = UserForm()
-
-    context['form'] = form
-
-    template = params['edit_template']
-
-    return helper.responses.respond(request, template, context)
-  
   def _editGet(self, request, entity, form):
     """See base.View._editGet().
     """
@@ -290,33 +157,6 @@
     # fill in the account field with the user created from email
     fields['account'] = users.User(fields['email'])
 
-  def getUserSidebar(self, request):
-    """Returns an dictionary with the user sidebar entry.
-    """
-
-    params = {}
-    params['sidebar_heading'] = "User (self)"
-    params['sidebar'] = [
-        ('/' + self._params['url_name'] + '/edit', 'Profile', 'editSelf'),
-        ('/' + self._params['url_name'] + '/roles', 'Roles', 'roles'),
-        ]
-    return self.getSidebarLinks(request, params)
-
-  def getDjangoURLPatterns(self):
-    """See base.View.getDjangoURLPatterns().
-    """
-
-    patterns = super(View, self).getDjangoURLPatterns()
-    patterns += [(r'^' + self._params['url_name'] + '/edit$',
-                   'soc.views.models.user.edit_self')]
-
-    page_name = "Requests Overview"
-    patterns += [(r'^' + self._params['url_name'] + '/roles$',
-                   'soc.views.models.request.list_self',
-                   {'page_name': page_name}, page_name)]
-
-    return patterns
-
 
 view = View()
 
@@ -325,4 +165,3 @@
 edit = view.edit
 list = view.list
 public = view.public
-edit_self = view.editSelf