Commit def3f0c3 authored by John Red Medrano's avatar John Red Medrano

Merge pull request #310 in RMS/api-main-service from RMSv2 to staging

* commit 'b1a541ed':
  fix error on reset password admin level
  added sh files, dockerfile and docker compose for deployment
parents 9d12a275 b1a541ed
......@@ -22,6 +22,7 @@ wheels/
*.egg-info/
.installed.cfg
*.egg
*.sh
# Django stuff:
*.log
......
FROM python:3.6
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ADD . /code
COPY . /code
WORKDIR /code
RUN pip install -r requirements/local.txt
EXPOSE 7020
RUN python manage.py migrate
set password "t!r\$0lut10ns"
cd /var/www/devrms.oneberrysystem.com/api-main-service
spawn git pull "http://administrator@42.61.118.105:7990/scm/rms/api-main-service.git" staging
expect "Password for"
send "$password\n"
interact
echo "================================================================";
echo "======================REMOVING API SERVICES=====================";
docker-compose -f api-main-service/docker-compose.yml down
echo "================================================================";
cd /var/www/devrms.oneberrysystem.com/
echo "================================================================";
echo "======================BUILDING API SERVICES=====================";
docker-compose -f api-main-service/docker-compose.yml up -d --build --remove-orphans
echo "================================================================";
......@@ -233,7 +233,7 @@ class UserViewSet(viewsets.ModelViewSet):
url_path='reset-password',
name="Reset Password of User")
@decorators.error_safe
@rms.user_create
@rms.reset_password
@transaction.atomic
def ResetPassword(self, request, code=None):
......
expect 01-bitbucket-pull-repository.sh
sh /var/www/devrms.oneberrysystem.com/03-full-api-redeploy.sh
......@@ -93,6 +93,31 @@ class rms:
return function(self, request, *args, **kwargs)
return wrapper
@staticmethod
def reset_password(function):
@wraps(function)
def wrapper(self, request, *args, **kwargs):
if rms.user_type(self) == rms.enums_user:
raise ParseError(
rms.access_error
)
elif rms.user_type(self) == rms.enums_department:
if request.user.department.code != rms.user(self).department.code:
raise ParseError(
rms.department_error
)
elif rms.user_type(self) == rms.enums_company:
user_company = rms.user(self).department.company
request_department = Department.objects.filter(
Q(code=request.user.department.code) &
Q(company=user_company)
)
if not request_department:
raise ParseError(rms.company_error)
return function(self, request, *args, **kwargs)
return wrapper
@staticmethod
def company_crate(function):
@wraps(function)
......
version: '3'
services:
rms_main:
web:
image: dev-rmsv2:latest
build: .
command: python manage.py runserver 0.0.0.0:8000
container_name: rms_main-container
volumes:
- .:/code
ports:
- 7010:8000
networks:
rms_main_network:
ipv4_address: 172.169.70.10
networks:
rms_main_network:
driver: bridge
ipam:
config:
- subnet: 172.17.0.0/16
- "7020:8000"
container_name: dev_rmsv2_api_container
restart: always
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment