mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-18 21:48:49 -04:00
ken-use-only-new-service-permissions
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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']
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user