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
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 })
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
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
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 })
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
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
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
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
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
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
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
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
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 })
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
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 })
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
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
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)