Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.34 KB | None | 0 0
  1.  
  2. @jsonrpc.method('User.modify(user_id=Number, username=String, password=String, usr_data=Object)')
  3. @auth.login_required
  4. def user_modify(user_id, username, password, usr_data):
  5.     """
  6.    Редактирование информации о пользователях
  7.    :param user_id: int
  8.    :param username: str
  9.    :param password: str
  10.    :param usr_data: str
  11.    :return: dict
  12.    """
  13.     auth_type, token = request.headers['Authorization'].split(None, 1)
  14.  
  15.     if not models.UserSession.is_operator(token):
  16.         raise exceptions.InvalidCredentialsError
  17.  
  18.     if not isinstance(user_id, int):
  19.         raise exceptions.InvalidParamsError
  20.  
  21.     user = models.User.get(user_id)
  22.  
  23.     if not user:
  24.         raise errors.UserDoesNotExists
  25.  
  26.     try:
  27.         user.username = username
  28.     except models.InvalidLoginOrPassword:
  29.         raise errors.InvalidUsage("User %r already exists" % username)
  30.  
  31.     if len(password):
  32.         user.password = password
  33.  
  34.     if isinstance(usr_data, dict) and len(usr_data.keys()):
  35.         for key in usr_data.keys():
  36.             if key not in dir(user): continue
  37.             user.__setattr__(key, usr_data[key])
  38.  
  39.     db.session.commit()
  40.  
  41.     return {
  42.         "id": user.id,
  43.         "username": user.username,
  44.         "fam": user.fam,
  45.         "name": user.name,
  46.         "otch": user.otch,
  47.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement