Exemplo n.º 1
0
def users_by(request,
             scope=permissions.Scope.student,
             template="university_system/users/users.html",
             args=None):
    auth_user = auth_user_manager.get(request.session.get('token'))
    if auth_user is not None and auth_user.has_permission(
            scope, permissions.Crud.read):
        if args is None:
            args = {
                'users_key': 'type',
                'users_value': None,
                'users_info_key': 'login',
                'users_info_value': None
            }

        users = user_manager.search(args.get('users_key'),
                                    args.get('users_value'))
        users_info = []
        for user in users:
            users_info.append(user_info_manager.get(user.info_id))
        return render(request,
                      template,
                      context={
                          'users_info': users_info,
                          'auth_user': auth_user
                      })
    else:
        raise PermissionDenied
Exemplo n.º 2
0
 def post(self, request):
     auth_user = auth_user_manager.get(request.session.get('token', None))
     user_form = self.form(request.POST)
     user_info_form = self.info_form(request.POST)
     if user_form.is_valid() and user_info_form.is_valid():
         check = user_manager.check(user_form.cleaned_data['login'],
                                    user_form.cleaned_data['password'],
                                    False)
         if check is None:
             user = form_to_object(user_form, self.model)
             user_info = form_to_object(user_info_form, self.info_model)
             user_id, user_info_id = user_manager.add_and_bind(
                 user, user_info)
             if user_info.get('department_id') is not None:
                 department_manager.bind_to_user(user_info_id,
                                                 user_info.department_id)
             return base_views.home(request, self.text)
         else:
             return render(request,
                           self.template,
                           context={
                               'form': self.form_object,
                               'info_form': self.info_form_object,
                               'check': check,
                               'auth_user': auth_user
                           })
     return render(request,
                   self.template,
                   context={
                       'form': self.form_object,
                       'info_form': self.info_form_object,
                       'auth_user': auth_user
                   })
 def post(self, request):
     auth_user = auth_user_manager.get(request.session.get('token', None))
     form = DepartmentForm(request.POST)
     info_form = DepartmentInfoForm(request.POST)
     if form.is_valid() and info_form.is_valid():
         check = department_manager.check(info_form.cleaned_data['title'])
         if check is None:
             department = form_to_object(form,
                                         department_manager.Department())
             department_info = form_to_object(
                 info_form, department_info_manager.DepartmentInfo())
             department_id = department_manager.add_and_bind(
                 department, department_info)
             department_manager.bind_departments(
                 department.parent_department_id, department_id)
             return base_views.home(request, text='Department was created')
         else:
             return render(request,
                           "university_system/departments/create.html",
                           context={
                               'form': form,
                               'info_form': info_form,
                               'check': check
                           })
     return render(request,
                   "university_system/departments/create.html",
                   context={
                       'form': form,
                       'info_form': info_form,
                       'auth_user': auth_user
                   })
Exemplo n.º 4
0
 def post(self, request, id):
     auth_user = auth_user_manager.get(request.session.get('token', None))
     if auth_user is not None and auth_user.has_permission(
             permissions.Scope.student, permissions.Crud.delete):
         user_info = user_info_manager.get(id)
         user_info_manager.delete_and_unbind(user_info)
         user_manager.delete(user_info.user_id)
         return base_views.home(request, 'The user was deleted.')
     else:
         raise PermissionDenied
Exemplo n.º 5
0
def home(request, text=None):
    auth_user = auth_user_manager.get(request.session.get('token', None))
    if auth_user is not None:
        department_info = department_info_manager.get(1)
        return render(request,
                      "university_system/home.html",
                      context={
                          'department_info': department_info,
                          'auth_user': auth_user,
                          'text': text
                      })
 def post(self, request, id):
     auth_user = auth_user_manager.get(request.session.get('token', None))
     if auth_user is not None and auth_user.has_permission(
             permissions.Scope.achievement, permissions.Crud.read):
         achievement = achievement_manager.get(id)
         user_info_manager.unbind_from_achievement(achievement.user_info_id,
                                                   id)
         achievement_manager.delete(id)
         return base_views.home(request, 'The achievement was deleted')
     else:
         raise PermissionDenied
Exemplo n.º 7
0
 def post(self, request, id=None):
     auth_user = auth_user_manager.get(request.session.get('token', None))
     form = self.form(request.POST)
     if form.is_valid():
         obj = form_to_object(form, self.model)
         if self.is_nested_object:
             self.manager.fill_attribute(id, self.field, obj)
         object_id = self.manager.add(obj)
         if self.is_bound_object:
             if id is None:
                 id = auth_user_manager.get(
                     request.session.get('token')).info_id
             self.bound_function(id, object_id)
         return home(request, self.text)
     return render(request,
                   self.template,
                   context={
                       'form': form,
                       'id': id,
                       'auth_user': auth_user
                   })
Exemplo n.º 8
0
    def post(self, request, id):
        auth_user = auth_user_manager.get(request.session.get('token', None))
        if auth_user is not None and auth_user.has_permission(
                self.scope, self.crud):
            object = self.manager.get(id)
            if self.is_nested_object:
                object[self.field] = None
                self.manager.update(object)

            return home(request, self.text)
        else:
            raise PermissionDenied
Exemplo n.º 9
0
 def get(self, request, id=None):
     auth_user = auth_user_manager.get(request.session.get('token', None))
     if auth_user is not None and auth_user.has_permission(
             self.scope, self.crud):
         form = self.form
         return render(request,
                       self.template,
                       context={
                           'form': form,
                           'id': id,
                           'auth_user': auth_user
                       })
     else:
         raise PermissionDenied
Exemplo n.º 10
0
 def get(self, request):
     auth_user = auth_user_manager.get(request.session.get('token', None))
     if auth_user is not None and auth_user.has_permission(
             self.scope, permissions.Crud.create):
         self.form_object.helper['type'].wrap(Field, type='hidden')
         self.form_object.helper['role'].wrap(Field, type='hidden')
         return render(request,
                       self.template,
                       context={
                           'form': self.form_object,
                           'info_form': self.info_form_object,
                           'auth_user': auth_user
                       })
     else:
         raise PermissionDenied
Exemplo n.º 11
0
 def get(self, request):
     auth_user = auth_user_manager.get(request.session.get('token', None))
     if auth_user is not None and auth_user.has_permission(
             permissions.Scope.department, permissions.Crud.create):
         form = DepartmentForm()
         template = "university_system/departments/create.html"
         info_form = DepartmentInfoForm()
         return render(request,
                       template,
                       context={
                           'form': form,
                           'info_form': info_form
                       })
     else:
         raise PermissionDenied
def achievement_profile(request, id):
    auth_user = auth_user_manager.get(request.session.get('token', None))
    if auth_user is not None and auth_user.has_permission(
            permissions.Scope.achievement, permissions.Crud.read):
        achievement = form_converter.get_without_enums(
            achievement_manager.get(id))
        user_info = user_info_manager.get(achievement.user_info_id)
        return render(request,
                      "university_system/achievements/profile.html",
                      context={
                          'achievement': achievement,
                          'auth_user': auth_user,
                          'user_info': user_info
                      })
    else:
        raise PermissionDenied
Exemplo n.º 13
0
def department_profile(request,
                       id,
                       template="university_system/departments/profile.html"):
    auth_user = auth_user_manager.get(request.session.get('token', None))
    if auth_user is not None and auth_user.has_permission(
            permissions.Scope.department, permissions.Crud.read):
        department_info = department_info_manager.get(id)
        department = department_manager.get(department_info.department_id)
        return render(
            request, template, {
                'department': department,
                'department_info': department_info,
                'auth_user': auth_user
            })
    else:
        raise PermissionDenied
Exemplo n.º 14
0
def my_profile(request):
    auth_user = auth_user_manager.get(request.session.get('token'))
    if auth_user is not None and auth_user.has_permission(
            permissions.Scope.self, permissions.Crud.read):
        user = form_converter.get_without_enums(
            user_manager.get(auth_user.doc_id))
        user_info = form_converter.get_without_enums(
            user_info_manager.get(auth_user.info_id))
        return render(request,
                      "university_system/users/profile.html",
                      context={
                          "auth_user": auth_user,
                          'user': user,
                          'user_info': user_info
                      })
    else:
        raise PermissionDenied
def achievements_by(request,
                    template,
                    scope=permissions.Scope.achievement,
                    department_info_id=None,
                    user_info_id=None):
    auth_user = auth_user_manager.get(request.session.get('token', None))
    if auth_user is not None and auth_user.has_permission(
            scope, permissions.Crud.read):
        dirty_achievements = []
        clean_achievements = []
        user_info = None
        department_info = None
        if department_info_id is not None:
            department_info = department_info_manager.get(department_info_id)
            department = department_manager.get(department_info.department_id)
            for user_info_id in department.users_info_id:
                user_achievements = achievement_manager.search(
                    'user_info_id', user_info_id)
                if user_achievements is not None:
                    dirty_achievements.extend(
                        achievement_manager.search('user_info_id',
                                                   user_info_id))

        else:
            if user_info_id is None:
                user_info_id = auth_user.info_id
            user_info = user_info_manager.get(user_info_id)
            user_achievements = achievement_manager.search(
                'user_info_id', user_info_id)
            if user_achievements is not None:
                dirty_achievements.extend(user_achievements)

        for achievement in dirty_achievements:
            clean_achievements.append(
                form_converter.get_without_enums(achievement))

        return render(request,
                      template,
                      context={
                          'achievements': clean_achievements,
                          'auth_user': auth_user,
                          'user_info': user_info,
                          'department_info': department_info
                      })
    else:
        raise PermissionDenied
Exemplo n.º 16
0
    def get(self, request, id):
        auth_user = auth_user_manager.get(request.session.get('token', None))
        if auth_user is not None and auth_user.has_permission(
                self.scope, permissions.Crud.update):
            object = self.manager.get(id)
            if self.is_nested_object:
                object = object[self.field]
            form = to_form(object, self.form)

            return render(request,
                          self.template,
                          context={
                              'form': form,
                              'id': id,
                              'auth_user': auth_user
                          })
        else:
            raise PermissionDenied
Exemplo n.º 17
0
def user_profile(request,
                 id,
                 scope=permissions.Scope.student,
                 template="university_system/users/profile.html"):
    auth_user = auth_user_manager.get(request.session.get('token'))
    if auth_user is not None and auth_user.has_permission(
            scope, permissions.Crud.read):
        user_info = form_converter.get_without_enums(user_info_manager.get(id))
        user = form_converter.get_without_enums(
            user_manager.get(user_info.user_id))
        return render(request,
                      template,
                      context={
                          "user": user,
                          'user_info': user_info,
                          'auth_user': auth_user
                      })
    else:
        raise PermissionDenied
Exemplo n.º 18
0
 def post(self, request):
     auth_user = auth_user_manager.get(request.session.get('token', None))
     info_form = UserInfoForm(request.POST)
     form = UserForm(request.POST)
     if info_form.is_valid() and form.is_valid():
         old_user = user_manager.get(auth_user.doc_id)
         new_user = form_to_object(form, old_user)
         user_manager.update(new_user)
         old_user_info = user_info_manager.get(auth_user.info_id)
         new_user_info = form_to_object(info_form, old_user_info)
         user_info_manager.update(new_user_info)
         return base_views.home(request, 'Your profile was updated.')
     return render(request,
                   "university_system/users/profile_update.html",
                   context={
                       'info_form': info_form,
                       'form': form,
                       'auth_user': auth_user
                   })
Exemplo n.º 19
0
    def get(self, request):
        auth_user = auth_user_manager.get(request.session.get('token', None))
        if auth_user is not None and auth_user.has_permission(
                permissions.Scope.self, permissions.Crud.update):
            user_info = user_info_manager.get(auth_user.info_id)
            info_form = to_form(user_info, UserInfoForm)
            user = user_manager.get(auth_user.doc_id)
            form = to_form(user, UserForm)
            form.helper['type'].wrap(Field, type='hidden')
            form.helper['role'].wrap(Field, type='hidden')

            return render(request,
                          "university_system/users/profile_update.html",
                          context={
                              'info_form': info_form,
                              'form': form,
                              'auth_user': auth_user
                          })
        else:
            raise PermissionDenied
Exemplo n.º 20
0
 def post(self, request, id):
     auth_user = auth_user_manager.get(request.session.get('token', None))
     filled_form = self.form(request.POST)
     if filled_form.is_valid():
         old_object = self.manager.get(id)
         if self.is_nested_object:
             new_field = form_to_object(filled_form, self.model)
             old_object[self.field] = new_field
             new_object = old_object
         else:
             new_object = form_to_object(filled_form, old_object)
         self.manager.update(new_object)
         return home(request, self.text)
     return render(request,
                   self.template,
                   context={
                       'form': filled_form,
                       'id': id,
                       'auth_user': auth_user
                   })
Exemplo n.º 21
0
def departments_by(request, level, id=None, template=None):
    auth_user = auth_user_manager.get(request.session.get('token', None))
    if auth_user is not None and auth_user.has_permission(
            permissions.Scope.department, permissions.Crud.read):
        departments = department_manager.search(
            'level', level) if id is None else department_manager.search(
                ['level', 'parent_department_id'], [level, id])
        clean_departments_info = []
        for department in departments:
            clean_departments_info.append(
                department_info_manager.get(department.info_id))
        return render(request,
                      template,
                      context={
                          "departments": departments,
                          'departments_info': clean_departments_info,
                          'auth_user': auth_user
                      })
    else:
        raise PermissionDenied
Exemplo n.º 22
0
def users_by_department(request,
                        department_info_id,
                        template,
                        scope=permissions.Scope.student):
    auth_user = auth_user_manager.get(request.session.get('token'))
    if auth_user is not None and auth_user.has_permission(
            scope, permissions.Crud.read):
        department_info = department_info_manager.get(department_info_id)
        department = department_manager.get(department_info.department_id)
        users_info = []
        for id in department.users_info_id:
            users_info.append(user_info_manager.get(id))

        return render(request,
                      template,
                      context={
                          'users_info': users_info,
                          'auth_user': auth_user
                      })
    else:
        raise PermissionDenied
Exemplo n.º 23
0
def has_permission(token, args):
    user = auth_user_manager.get(token)
    args_list = [arg.strip() for arg in args.split(', ')]
    scope = permissions.from_str(permissions.Scope, args_list[0])
    permission = permissions.from_str(permissions.Crud, args_list[1])
    return user.permissions.has_permission(scope, permission)