This commit is contained in:
Hillel Coren 2019-10-30 17:32:08 +02:00
parent e71b09816b
commit ed271f6389
6 changed files with 55 additions and 9 deletions

View File

@ -35,14 +35,10 @@ import 'package:invoiceninja_flutter/redux/quote/quote_state.dart';
// STARTER: import - do not remove comment
import 'package:invoiceninja_flutter/data/models/user_model.dart';
import 'package:invoiceninja_flutter/redux/user/user_state.dart';
import 'package:invoiceninja_flutter/redux/tax_rate/tax_rate_state.dart';
import 'package:invoiceninja_flutter/data/models/company_gateway_model.dart';
import 'package:invoiceninja_flutter/redux/company_gateway/company_gateway_state.dart';
import 'package:invoiceninja_flutter/redux/group/group_state.dart';
import 'package:invoiceninja_flutter/redux/document/document_state.dart';
part 'serializers.g.dart';
@ -112,7 +108,8 @@ part 'serializers.g.dart';
TaxRateListResponse,
// STARTER: serializers - do not remove comment
UserEntity,
UserListResponse,
UserItemResponse,
CompanyGatewayEntity,
CompanyGatewayListResponse,
CompanyGatewayItemResponse,

View File

@ -134,6 +134,7 @@ Serializers _$serializers = (new Serializers().toBuilder()
..add(UserCompanyState.serializer)
..add(UserEntity.serializer)
..add(UserItemResponse.serializer)
..add(UserListResponse.serializer)
..add(UserState.serializer)
..add(UserUIState.serializer)
..add(VendorContactEntity.serializer)
@ -314,6 +315,7 @@ Serializers _$serializers = (new Serializers().toBuilder()
const FullType(BuiltList, const [const FullType(TaxRateEntity)]), () => new ListBuilder<TaxRateEntity>())
..addBuilderFactory(const FullType(BuiltList, const [const FullType(TimezoneEntity)]), () => new ListBuilder<TimezoneEntity>())
..addBuilderFactory(const FullType(BuiltList, const [const FullType(UserCompanyEntity)]), () => new ListBuilder<UserCompanyEntity>())
..addBuilderFactory(const FullType(BuiltList, const [const FullType(UserEntity)]), () => new ListBuilder<UserEntity>())
..addBuilderFactory(const FullType(BuiltList, const [const FullType(VendorContactEntity)]), () => new ListBuilder<VendorContactEntity>())
..addBuilderFactory(const FullType(BuiltList, const [const FullType(VendorEntity)]), () => new ListBuilder<VendorEntity>())
..addBuilderFactory(const FullType(BuiltMap, const [const FullType(String), const FullType(ClientEntity)]), () => new MapBuilder<String, ClientEntity>())

View File

@ -56,6 +56,7 @@ abstract class UserEntity extends Object
updatedAt: 0,
archivedAt: 0,
isDeleted: false,
isAdmin: false,
);
}
@ -76,6 +77,10 @@ abstract class UserEntity extends Object
String get phone;
@nullable
@BuiltValueField(wireName: 'is_admin')
bool get isAdmin;
String get fullName => (firstName + ' ' + lastName).trim();
@override

View File

@ -122,6 +122,12 @@ class _$UserEntitySerializer implements StructuredSerializer<UserEntity> {
serializers.serialize(object.phone,
specifiedType: const FullType(String)),
];
if (object.isAdmin != null) {
result
..add('is_admin')
..add(serializers.serialize(object.isAdmin,
specifiedType: const FullType(bool)));
}
if (object.isChanged != null) {
result
..add('isChanged')
@ -194,6 +200,10 @@ class _$UserEntitySerializer implements StructuredSerializer<UserEntity> {
result.phone = serializers.deserialize(value,
specifiedType: const FullType(String)) as String;
break;
case 'is_admin':
result.isAdmin = serializers.deserialize(value,
specifiedType: const FullType(bool)) as bool;
break;
case 'isChanged':
result.isChanged = serializers.deserialize(value,
specifiedType: const FullType(bool)) as bool;
@ -424,6 +434,8 @@ class _$UserEntity extends UserEntity {
@override
final String phone;
@override
final bool isAdmin;
@override
final bool isChanged;
@override
final int createdAt;
@ -446,6 +458,7 @@ class _$UserEntity extends UserEntity {
this.lastName,
this.email,
this.phone,
this.isAdmin,
this.isChanged,
this.createdAt,
this.updatedAt,
@ -483,6 +496,7 @@ class _$UserEntity extends UserEntity {
lastName == other.lastName &&
email == other.email &&
phone == other.phone &&
isAdmin == other.isAdmin &&
isChanged == other.isChanged &&
createdAt == other.createdAt &&
updatedAt == other.updatedAt &&
@ -503,10 +517,12 @@ class _$UserEntity extends UserEntity {
$jc(
$jc(
$jc(
$jc($jc(0, firstName.hashCode),
lastName.hashCode),
email.hashCode),
phone.hashCode),
$jc(
$jc($jc(0, firstName.hashCode),
lastName.hashCode),
email.hashCode),
phone.hashCode),
isAdmin.hashCode),
isChanged.hashCode),
createdAt.hashCode),
updatedAt.hashCode),
@ -523,6 +539,7 @@ class _$UserEntity extends UserEntity {
..add('lastName', lastName)
..add('email', email)
..add('phone', phone)
..add('isAdmin', isAdmin)
..add('isChanged', isChanged)
..add('createdAt', createdAt)
..add('updatedAt', updatedAt)
@ -553,6 +570,10 @@ class UserEntityBuilder implements Builder<UserEntity, UserEntityBuilder> {
String get phone => _$this._phone;
set phone(String phone) => _$this._phone = phone;
bool _isAdmin;
bool get isAdmin => _$this._isAdmin;
set isAdmin(bool isAdmin) => _$this._isAdmin = isAdmin;
bool _isChanged;
bool get isChanged => _$this._isChanged;
set isChanged(bool isChanged) => _$this._isChanged = isChanged;
@ -589,6 +610,7 @@ class UserEntityBuilder implements Builder<UserEntity, UserEntityBuilder> {
_lastName = _$v.lastName;
_email = _$v.email;
_phone = _$v.phone;
_isAdmin = _$v.isAdmin;
_isChanged = _$v.isChanged;
_createdAt = _$v.createdAt;
_updatedAt = _$v.updatedAt;
@ -622,6 +644,7 @@ class UserEntityBuilder implements Builder<UserEntity, UserEntityBuilder> {
lastName: lastName,
email: email,
phone: phone,
isAdmin: isAdmin,
isChanged: isChanged,
createdAt: createdAt,
updatedAt: updatedAt,

View File

@ -151,6 +151,18 @@ class _UserEditState extends State<UserEdit> {
),
],
),
FormCard(
children: <Widget>[
SwitchListTile(
title: Text(localization.administrator),
subtitle: Text(localization.administratorHelp),
value: user.isAdmin ?? false,
onChanged: (value) => viewModel
.onChanged(user.rebuild((b) => b..isAdmin = value)),
activeColor: Theme.of(context).accentColor,
),
],
)
],
),
),

View File

@ -14,6 +14,8 @@ abstract class LocaleCodeAware {
mixin LocalizationsProvider on LocaleCodeAware {
static final Map<String, Map<String, String>> _localizedValues = {
'en': {
'administrator': 'Administrator',
'administrator_help': 'Allow user to manage users, change settings and modify all records',
'user_management': 'User Management',
'users': 'Users',
'new_user': 'New User',
@ -15395,6 +15397,11 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get userManagement => _localizedValues[localeCode]['user_management'];
String get administrator => _localizedValues[localeCode]['administrator'];
String get administratorHelp => _localizedValues[localeCode]['administrator_help'];
String lookup(String key) {
final lookupKey = toSnakeCase(key);
return _localizedValues[localeCode][lookupKey] ??