ken-use-only-new-service-permissions

This commit is contained in:
Ken Tsang
2017-06-23 17:06:09 +01:00
committed by venusbb
parent 42a061cb7b
commit 98cd838510
11 changed files with 16 additions and 120 deletions

View File

@@ -153,17 +153,10 @@ def dao_create_service(service, user, service_id=None, service_permissions=[SMS_
service.active = True
service.research_mode = False
def deprecate_process_service_permissions():
for permission in service_permissions:
service_permission = ServicePermission(service_id=service.id, permission=permission)
service.permissions.append(service_permission)
for permission in service_permissions:
service_permission = ServicePermission(service_id=service.id, permission=permission)
service.permissions.append(service_permission)
if permission == INTERNATIONAL_SMS_TYPE:
service.can_send_international_sms = True
if permission == LETTER_TYPE:
service.can_send_letters = True
deprecate_process_service_permissions()
db.session.add(service)

View File

@@ -187,8 +187,6 @@ class Service(db.Model, Versioned):
backref=db.backref('user_to_service', lazy='dynamic'))
restricted = db.Column(db.Boolean, index=False, unique=False, nullable=False)
research_mode = db.Column(db.Boolean, index=False, unique=False, nullable=False, default=False)
can_send_letters = db.Column(db.Boolean, nullable=False, default=False)
can_send_international_sms = db.Column(db.Boolean, nullable=False, default=False)
email_from = db.Column(db.Text, index=False, unique=True, nullable=False)
created_by = db.relationship('User')
created_by_id = db.Column(UUID(as_uuid=True), db.ForeignKey('users.id'), index=True, nullable=False)
@@ -215,12 +213,6 @@ class Service(db.Model, Versioned):
association_proxy('permissions', 'service_permission_types')
# This is only for backward compatibility and will be dropped when the columns are removed from the data model
def set_permissions(self):
if self.permissions:
self.can_send_letters = LETTER_TYPE in [p.permission for p in self.permissions]
self.can_send_international_sms = INTERNATIONAL_SMS_TYPE in [p.permission for p in self.permissions]
@staticmethod
def free_sms_fragment_limit():
return current_app.config['FREE_SMS_TIER_FRAGMENT_COUNT']

View File

@@ -165,7 +165,7 @@ def get_notification_return_data(notification_id, notification, template):
def _service_can_send_internationally(service, number):
international_phone_info = get_international_phone_info(number)
if international_phone_info.international and not service.can_send_international_sms:
if international_phone_info.international and 'international_sms' not in service.permissions:
raise InvalidRequest(
{'to': ["Cannot send to international mobile numbers"]},
status_code=400

View File

@@ -76,7 +76,7 @@ def validate_and_format_recipient(send_to, key_type, service, notification_type)
if notification_type == SMS_TYPE:
international_phone_info = get_international_phone_info(send_to)
if international_phone_info.international and not service.can_send_international_sms:
if international_phone_info.international and 'international_sms' not in service.permissions:
raise BadRequestError(message="Cannot send to international mobile numbers")
return validate_and_format_phone_number(

View File

@@ -230,32 +230,8 @@ class ServiceSchema(BaseSchema):
permission = ServicePermission(service_id=in_data["id"], permission=p)
permissions.append(permission)
def deprecate_override_flags():
in_data['can_send_letters'] = LETTER_TYPE in str_permissions
in_data['can_send_international_sms'] = INTERNATIONAL_SMS_TYPE in str_permissions
def deprecate_convert_flags_to_permissions():
def convert_flags(flag, notify_type):
if flag and notify_type not in str_permissions:
permission = ServicePermission(service_id=in_data['id'], permission=notify_type)
permissions.append(permission)
elif flag is False and notify_type in str_permissions:
for p in permissions:
if p.permission == notify_type:
permissions.remove(p)
convert_flags(in_data["can_send_international_sms"], INTERNATIONAL_SMS_TYPE)
convert_flags(in_data["can_send_letters"], LETTER_TYPE)
if self.override_flag:
deprecate_override_flags()
else:
deprecate_convert_flags_to_permissions()
in_data['permissions'] = permissions
def set_override_flag(self, flag):
self.override_flag = flag
class DetailedServiceSchema(BaseSchema):
statistics = fields.Dict()