Merge pull request #74 from OneUptime/compile-accounts

Compile accounts
This commit is contained in:
Simon Larsen
2022-05-12 21:51:28 +01:00
committed by GitHub
197 changed files with 13839 additions and 2767 deletions

10692
Accounts/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -9,7 +9,7 @@
"@stripe/react-stripe-js": "^1.7.2",
"@stripe/stripe-js": "^1.29.0",
"@types/compression": "^1.7.2",
"@types/react-dom": "^18.0.3",
"@types/react-dom": "^17.0.2",
"@types/react-redux": "^7.1.24",
"@types/react-router-redux": "^5.0.21",
"@types/redux-form": "^8.3.5",
@@ -29,9 +29,9 @@
"prop-types": "^15.8.1",
"puppeteer": "^13.7.0",
"query-string": "^7.1.1",
"react": "^18.1.0",
"react": "^17.0.2",
"react-awesome-reveal": "^3.8.1",
"react-dom": "^18.1.0",
"react-dom": "^17.0.2",
"react-frontload": "^2.0.0",
"react-ga": "^3.3.0",
"react-redux": "^8.0.1",

View File

@@ -1,4 +1,4 @@
import BackendAPI from 'CommonUI/src/utils/api/backend';
import BackendAPI from 'CommonUI/src/Utils/API/Backend';
import { Dispatch } from 'redux';
import Route from 'Common/Types/api/route';
import * as types from '../constants/changePassword';

View File

@@ -1,7 +0,0 @@
export const companySize: $TSFixMe = [
{ name: '1-10', code: '1-10' },
{ name: '11-50', code: '11-50' },
{ name: '51-200', code: '51-200' },
{ name: '200-1000', code: '200-1000' },
{ name: '1000+', code: '1000+' },
];

View File

@@ -1,245 +0,0 @@
export const countries: $TSFixMe = [
{ name: 'Afghanistan', code: 'AF' },
{ name: 'Åland Islands', code: 'AX' },
{ name: 'Albania', code: 'AL' },
{ name: 'Algeria', code: 'DZ' },
{ name: 'American Samoa', code: 'AS' },
{ name: 'Andorra', code: 'AD' },
{ name: 'Angola', code: 'AO' },
{ name: 'Anguilla', code: 'AI' },
{ name: 'Antarctica', code: 'AQ' },
{ name: 'Antigua and Barbuda', code: 'AG' },
{ name: 'Argentina', code: 'AR' },
{ name: 'Armenia', code: 'AM' },
{ name: 'Aruba', code: 'AW' },
{ name: 'Australia', code: 'AU' },
{ name: 'Austria', code: 'AT' },
{ name: 'Azerbaijan', code: 'AZ' },
{ name: 'Bahamas', code: 'BS' },
{ name: 'Bahrain', code: 'BH' },
{ name: 'Bangladesh', code: 'BD' },
{ name: 'Barbados', code: 'BB' },
{ name: 'Belarus', code: 'BY' },
{ name: 'Belgium', code: 'BE' },
{ name: 'Belize', code: 'BZ' },
{ name: 'Benin', code: 'BJ' },
{ name: 'Bermuda', code: 'BM' },
{ name: 'Bhutan', code: 'BT' },
{ name: 'Bolivia', code: 'BO' },
{ name: 'Bosnia and Herzegovina', code: 'BA' },
{ name: 'Botswana', code: 'BW' },
{ name: 'Bouvet Island', code: 'BV' },
{ name: 'Brazil', code: 'BR' },
{ name: 'British Indian Ocean Territory', code: 'IO' },
{ name: 'Brunei Darussalam', code: 'BN' },
{ name: 'Bulgaria', code: 'BG' },
{ name: 'Burkina Faso', code: 'BF' },
{ name: 'Burundi', code: 'BI' },
{ name: 'Cambodia', code: 'KH' },
{ name: 'Cameroon', code: 'CM' },
{ name: 'Canada', code: 'CA' },
{ name: 'Cape Verde', code: 'CV' },
{ name: 'Cayman Islands', code: 'KY' },
{ name: 'Central African Republic', code: 'CF' },
{ name: 'Chad', code: 'TD' },
{ name: 'Chile', code: 'CL' },
{ name: 'China', code: 'CN' },
{ name: 'Christmas Island', code: 'CX' },
{ name: 'Cocos (Keeling) Islands', code: 'CC' },
{ name: 'Colombia', code: 'CO' },
{ name: 'Comoros', code: 'KM' },
{ name: 'Congo', code: 'CG' },
{ name: 'Congo, The Democratic Republic of the', code: 'CD' },
{ name: 'Cook Islands', code: 'CK' },
{ name: 'Costa Rica', code: 'CR' },
{ name: "Cote d'Ivoire", code: 'CI' },
{ name: 'Croatia', code: 'HR' },
{ name: 'Cuba', code: 'CU' },
{ name: 'Cyprus', code: 'CY' },
{ name: 'Czech Republic', code: 'CZ' },
{ name: 'Denmark', code: 'DK' },
{ name: 'Djibouti', code: 'DJ' },
{ name: 'Dominica', code: 'DM' },
{ name: 'Dominican Republic', code: 'DO' },
{ name: 'Ecuador', code: 'EC' },
{ name: 'Egypt', code: 'EG' },
{ name: 'El Salvador', code: 'SV' },
{ name: 'Equatorial Guinea', code: 'GQ' },
{ name: 'Eritrea', code: 'ER' },
{ name: 'Estonia', code: 'EE' },
{ name: 'Ethiopia', code: 'ET' },
{ name: 'Falkland Islands (Malvinas)', code: 'FK' },
{ name: 'Faroe Islands', code: 'FO' },
{ name: 'Fiji', code: 'FJ' },
{ name: 'Finland', code: 'FI' },
{ name: 'France', code: 'FR' },
{ name: 'French Guiana', code: 'GF' },
{ name: 'French Polynesia', code: 'PF' },
{ name: 'French Southern Territories', code: 'TF' },
{ name: 'Gabon', code: 'GA' },
{ name: 'Gambia', code: 'GM' },
{ name: 'Georgia', code: 'GE' },
{ name: 'Germany', code: 'DE' },
{ name: 'Ghana', code: 'GH' },
{ name: 'Gibraltar', code: 'GI' },
{ name: 'Greece', code: 'GR' },
{ name: 'Greenland', code: 'GL' },
{ name: 'Grenada', code: 'GD' },
{ name: 'Guadeloupe', code: 'GP' },
{ name: 'Guam', code: 'GU' },
{ name: 'Guatemala', code: 'GT' },
{ name: 'Guernsey', code: 'GG' },
{ name: 'Guinea', code: 'GN' },
{ name: 'Guinea-Bissau', code: 'GW' },
{ name: 'Guyana', code: 'GY' },
{ name: 'Haiti', code: 'HT' },
{ name: 'Heard Island and Mcdonald Islands', code: 'HM' },
{ name: 'Holy See (Vatican City State)', code: 'VA' },
{ name: 'Honduras', code: 'HN' },
{ name: 'Hong Kong', code: 'HK' },
{ name: 'Hungary', code: 'HU' },
{ name: 'Iceland', code: 'IS' },
{ name: 'India', code: 'IN' },
{ name: 'Indonesia', code: 'ID' },
{ name: 'Iran, Islamic Republic Of', code: 'IR' },
{ name: 'Iraq', code: 'IQ' },
{ name: 'Ireland', code: 'IE' },
{ name: 'Isle of Man', code: 'IM' },
{ name: 'Israel', code: 'IL' },
{ name: 'Italy', code: 'IT' },
{ name: 'Jamaica', code: 'JM' },
{ name: 'Japan', code: 'JP' },
{ name: 'Jersey', code: 'JE' },
{ name: 'Jordan', code: 'JO' },
{ name: 'Kazakhstan', code: 'KZ' },
{ name: 'Kenya', code: 'KE' },
{ name: 'Kiribati', code: 'KI' },
{ name: "Korea, Democratic People's Republic of", code: 'KP' },
{ name: 'Korea, Republic of', code: 'KR' },
{ name: 'Kuwait', code: 'KW' },
{ name: 'Kyrgyzstan', code: 'KG' },
{ name: "Lao People's Democratic Republic", code: 'LA' },
{ name: 'Latvia', code: 'LV' },
{ name: 'Lebanon', code: 'LB' },
{ name: 'Lesotho', code: 'LS' },
{ name: 'Liberia', code: 'LR' },
{ name: 'Libyan Arab Jamahiriya', code: 'LY' },
{ name: 'Liechtenstein', code: 'LI' },
{ name: 'Lithuania', code: 'LT' },
{ name: 'Luxembourg', code: 'LU' },
{ name: 'Macao', code: 'MO' },
{ name: 'Macedonia, The Former Yugoslav Republic of', code: 'MK' },
{ name: 'Madagascar', code: 'MG' },
{ name: 'Malawi', code: 'MW' },
{ name: 'Malaysia', code: 'MY' },
{ name: 'Maldives', code: 'MV' },
{ name: 'Mali', code: 'ML' },
{ name: 'Malta', code: 'MT' },
{ name: 'Marshall Islands', code: 'MH' },
{ name: 'Martinique', code: 'MQ' },
{ name: 'Mauritania', code: 'MR' },
{ name: 'Mauritius', code: 'MU' },
{ name: 'Mayotte', code: 'YT' },
{ name: 'Mexico', code: 'MX' },
{ name: 'Micronesia, Federated States of', code: 'FM' },
{ name: 'Moldova, Republic of', code: 'MD' },
{ name: 'Monaco', code: 'MC' },
{ name: 'Mongolia', code: 'MN' },
{ name: 'Montserrat', code: 'MS' },
{ name: 'Morocco', code: 'MA' },
{ name: 'Mozambique', code: 'MZ' },
{ name: 'Myanmar', code: 'MM' },
{ name: 'Namibia', code: 'NA' },
{ name: 'Nauru', code: 'NR' },
{ name: 'Nepal', code: 'NP' },
{ name: 'Netherlands', code: 'NL' },
{ name: 'Netherlands Antilles', code: 'AN' },
{ name: 'New Caledonia', code: 'NC' },
{ name: 'New Zealand', code: 'NZ' },
{ name: 'Nicaragua', code: 'NI' },
{ name: 'Niger', code: 'NE' },
{ name: 'Nigeria', code: 'NG' },
{ name: 'Niue', code: 'NU' },
{ name: 'Norfolk Island', code: 'NF' },
{ name: 'Northern Mariana Islands', code: 'MP' },
{ name: 'Norway', code: 'NO' },
{ name: 'Oman', code: 'OM' },
{ name: 'Pakistan', code: 'PK' },
{ name: 'Palau', code: 'PW' },
{ name: 'Palestinian Territory, Occupied', code: 'PS' },
{ name: 'Panama', code: 'PA' },
{ name: 'Papua New Guinea', code: 'PG' },
{ name: 'Paraguay', code: 'PY' },
{ name: 'Peru', code: 'PE' },
{ name: 'Philippines', code: 'PH' },
{ name: 'Pitcairn', code: 'PN' },
{ name: 'Poland', code: 'PL' },
{ name: 'Portugal', code: 'PT' },
{ name: 'Puerto Rico', code: 'PR' },
{ name: 'Qatar', code: 'QA' },
{ name: 'Reunion', code: 'RE' },
{ name: 'Romania', code: 'RO' },
{ name: 'Russian Federation', code: 'RU' },
{ name: 'RWANDA', code: 'RW' },
{ name: 'Saint Helena', code: 'SH' },
{ name: 'Saint Kitts and Nevis', code: 'KN' },
{ name: 'Saint Lucia', code: 'LC' },
{ name: 'Saint Pierre and Miquelon', code: 'PM' },
{ name: 'Saint Vincent and the Grenadines', code: 'VC' },
{ name: 'Samoa', code: 'WS' },
{ name: 'San Marino', code: 'SM' },
{ name: 'Sao Tome and Principe', code: 'ST' },
{ name: 'Saudi Arabia', code: 'SA' },
{ name: 'Senegal', code: 'SN' },
{ name: 'Serbia and Montenegro', code: 'CS' },
{ name: 'Seychelles', code: 'SC' },
{ name: 'Sierra Leone', code: 'SL' },
{ name: 'Singapore', code: 'SG' },
{ name: 'Slovakia', code: 'SK' },
{ name: 'Slovenia', code: 'SI' },
{ name: 'Solomon Islands', code: 'SB' },
{ name: 'Somalia', code: 'SO' },
{ name: 'South Africa', code: 'ZA' },
{ name: 'South Georgia and the South Sandwich Islands', code: 'GS' },
{ name: 'Spain', code: 'ES' },
{ name: 'Sri Lanka', code: 'LK' },
{ name: 'Sudan', code: 'SD' },
{ name: 'Suriname', code: 'SR' },
{ name: 'Svalbard and Jan Mayen', code: 'SJ' },
{ name: 'Swaziland', code: 'SZ' },
{ name: 'Sweden', code: 'SE' },
{ name: 'Switzerland', code: 'CH' },
{ name: 'Syrian Arab Republic', code: 'SY' },
{ name: 'Taiwan, Province of China', code: 'TW' },
{ name: 'Tajikistan', code: 'TJ' },
{ name: 'Tanzania, United Republic of', code: 'TZ' },
{ name: 'Thailand', code: 'TH' },
{ name: 'Timor-Leste', code: 'TL' },
{ name: 'Togo', code: 'TG' },
{ name: 'Tokelau', code: 'TK' },
{ name: 'Tonga', code: 'TO' },
{ name: 'Trinidad and Tobago', code: 'TT' },
{ name: 'Tunisia', code: 'TN' },
{ name: 'Turkey', code: 'TR' },
{ name: 'Turkmenistan', code: 'TM' },
{ name: 'Turks and Caicos Islands', code: 'TC' },
{ name: 'Tuvalu', code: 'TV' },
{ name: 'Uganda', code: 'UG' },
{ name: 'Ukraine', code: 'UA' },
{ name: 'United Arab Emirates', code: 'AE' },
{ name: 'United Kingdom', code: 'GB' },
{ name: 'United States', code: 'US' },
{ name: 'United States Minor Outlying Islands', code: 'UM' },
{ name: 'Uruguay', code: 'UY' },
{ name: 'Uzbekistan', code: 'UZ' },
{ name: 'Vanuatu', code: 'VU' },
{ name: 'Venezuela', code: 'VE' },
{ name: 'Viet Nam', code: 'VN' },
{ name: 'Virgin Islands, British', code: 'VG' },
{ name: 'Virgin Islands, U.S.', code: 'VI' },
{ name: 'Wallis and Futuna', code: 'WF' },
{ name: 'Western Sahara', code: 'EH' },
{ name: 'Yemen', code: 'YE' },
{ name: 'Zambia', code: 'ZM' },
{ name: 'Zimbabwe', code: 'ZW' },
];

View File

@@ -11,6 +11,7 @@ import './index.css';
if (!isApiServer) {
ReactGA.initialize('UA-115085157-1');
}
const target: $TSFixMe = document.getElementById('root');
render(

View File

@@ -0,0 +1,7 @@
import ApiBase from 'CommonUI/src/Reducers/ApiBase';
export default class ChangePassword extends ApiBase {
public constructor() {
super('ChangePassword');
}
}

25
Accounts/src/Reducers/Index.ts Executable file
View File

@@ -0,0 +1,25 @@
import { combineReducers } from 'redux';
import Action from 'CommonUI/src/Types/Action';
import { routerReducer } from 'react-router-redux';
import Login from './Login';
import Register from './Register';
import { RootState } from '../store';
import Modal from 'CommonUI/src/Reducers/Modal';
import ResetPassword from './ResetPassword';
import ChangePassword from './ChangePassword';
import ResendToken from './ResendVerifyEmail';
export default (state: RootState, action: Action): void => {
if (action.type === 'CLEAR_STORE') {
state = undefined;
}
return combineReducers({
Routing: routerReducer,
Modal: Modal,
Login: new Login().getReducer(),
Register: new Register().getReducer(),
ResetPassword: new ResetPassword().getReducer(),
ChangePassword: new ChangePassword().getReducer(),
ResendToken: new ResendToken().getReducer(),
})(state, action);
};

7
Accounts/src/Reducers/Login.ts Executable file
View File

@@ -0,0 +1,7 @@
import ApiBase from 'CommonUI/src/Reducers/ApiBase';
export default class ChangePassword extends ApiBase {
public constructor() {
super('Login');
}
}

View File

@@ -0,0 +1,7 @@
import ApiBase from 'CommonUI/src/Reducers/ApiBase';
export default class ChangePassword extends ApiBase {
public constructor() {
super('Register');
}
}

View File

@@ -0,0 +1,7 @@
import ApiBase from 'CommonUI/src/Reducers/ApiBase';
export default class ResendVerifyEmail extends ApiBase {
public constructor() {
super('ResendVerifyEmail');
}
}

View File

@@ -0,0 +1,7 @@
import ApiBase from 'CommonUI/src/Reducers/ApiBase';
export default class ResetPassword extends ApiBase {
public constructor() {
super('ResetPassword');
}
}

View File

@@ -1,48 +0,0 @@
import * as types from '../constants/changePassword';
/*
* The auth reducer. The starting state sets authentication
* Based on a token being in local storage. In a real app,
* We would also want a util to check if the token is expired.
*/
import Action from 'CommonUI/src/Types/Action';
const initialState: $TSFixMe = {
requesting: false,
error: null,
success: false,
};
export default function register(
state: $TSFixMe = initialState,
action: Action
): void {
switch (action.type) {
case types.CHANGEPASSWORD_REQUEST:
return Object.assign({}, state, {
requesting: true,
error: null,
});
case types.CHANGEPASSWORD_SUCCESS:
return Object.assign({}, state, {
requesting: false,
success: true,
error: null,
});
case types.CHANGEPASSWORD_FAILED:
return Object.assign({}, state, {
requesting: false,
success: false,
error: action.payload,
});
case types.RESET_CHANGEPASSWORD:
return Object.assign({}, state, initialState);
default:
return state;
}
}

View File

@@ -1,29 +0,0 @@
import { combineReducers } from 'redux';
import Action from 'CommonUI/src/Types/Action';
import { routerReducer } from 'react-router-redux';
import login from './login';
import register from './register';
import { RootState } from '../store';
import { reducer as formReducer } from 'redux-form';
import modal from 'CommonUI/src/reducers/Modal';
import resetPassword from './resetPassword';
import changePassword from './changePassword';
import resendToken from './resendToken';
const appReducer: $TSFixMe = combineReducers({
routing: routerReducer,
login,
register,
form: formReducer,
modal,
resetPassword,
changePassword,
resendToken,
});
export default (state: RootState, action: Action): void => {
if (action.type === 'CLEAR_STORE') {
state = undefined;
}
return appReducer(state, action);
};

View File

@@ -1,211 +0,0 @@
import {
LOGIN_REQUEST,
LOGIN_SUCCESS,
LOGIN_FAILED,
RESET_LOGIN,
SAVE_STATUS_PAGE,
CHANGE_LOGIN,
AUTH_VERIFICATION_FAILED,
AUTH_VERIFICATION_REQUEST,
AUTH_VERIFICATION_SUCCESS,
RESET_AUTH_VERIFICATION,
BACKUP_CODE_VERIFICATION_FAILED,
BACKUP_CODE_VERIFICATION_REQUEST,
BACKUP_CODE_VERIFICATION_SUCCESS,
RESET_BACKUP_CODE_VERIFICATION,
MASTER_ADMIN_EXISTS_REQUEST,
MASTER_ADMIN_EXISTS_FAILED,
MASTER_ADMIN_EXISTS_SUCCESS,
RESET_MASTER_ADMIN_EXISTS,
LOGIN_STATE,
} from '../constants/login';
/*
* The auth reducer. The starting state sets authentication
* Based on a token being in local storage. In a real app,
* We would also want a util to check if the token is expired.
*/
import Action from 'CommonUI/src/Types/Action';
const initialState: $TSFixMe = {
requesting: false,
user: {},
error: null,
success: false,
statusPageLogin: false,
statusPageURL: null,
authToken: {
requesting: false,
error: null,
success: false,
},
backupCode: {
requesting: false,
error: null,
success: false,
},
masterAdmin: {
exists: null,
requesting: false,
error: null,
success: false,
},
loginMethod: 'standard',
};
export default function register(
state: $TSFixMe = initialState,
action: Action
): void {
switch (action.type) {
case CHANGE_LOGIN:
return Object.assign({}, state, {
loginMethod: action.payload,
});
case LOGIN_REQUEST:
return Object.assign({}, state, {
requesting: true,
error: null,
});
case LOGIN_SUCCESS:
return Object.assign({}, state, {
requesting: false,
success: true,
error: null,
user: action.payload,
});
case LOGIN_FAILED:
return Object.assign({}, state, {
requesting: false,
success: false,
error: action.payload,
});
case LOGIN_STATE:
return Object.assign({}, state, {
requesting: false,
success: false,
error: state.error,
user: action.payload,
});
case RESET_LOGIN:
return Object.assign({}, state, initialState);
case MASTER_ADMIN_EXISTS_REQUEST:
return Object.assign({}, state, {
masterAdmin: {
...state.masterAdmin,
requesting: true,
error: null,
},
});
case MASTER_ADMIN_EXISTS_SUCCESS:
return Object.assign({}, state, {
masterAdmin: {
requesting: false,
success: true,
error: null,
exists: action.payload.result,
},
});
case MASTER_ADMIN_EXISTS_FAILED:
return Object.assign({}, state, {
masterAdmin: {
...state.masterAdmin,
requesting: false,
success: false,
error: action.payload,
},
});
case RESET_MASTER_ADMIN_EXISTS:
return Object.assign({}, state, {
masterAdmin: initialState.masterAdmin,
});
case AUTH_VERIFICATION_REQUEST:
return Object.assign({}, state, {
...initialState,
authToken: {
...initialState.authToken,
requesting: true,
error: null,
success: true,
},
user: { ...state.user },
});
case AUTH_VERIFICATION_SUCCESS:
return Object.assign({}, state, {
...initialState,
authToken: {
...initialState.authToken,
requesting: false,
error: null,
success: true,
},
});
case AUTH_VERIFICATION_FAILED:
return Object.assign({}, state, {
...initialState,
authToken: {
...initialState.authToken,
requesting: false,
error: action.payload,
success: false,
},
user: { ...state.user },
});
case RESET_AUTH_VERIFICATION:
return Object.assign({}, state, initialState);
// Use back up code to login a user
case BACKUP_CODE_VERIFICATION_REQUEST:
return Object.assign({}, state, {
...initialState,
backupCode: {
...initialState.backupCode,
requesting: true,
error: null,
success: true,
},
user: { ...state.user },
});
case BACKUP_CODE_VERIFICATION_SUCCESS:
return Object.assign({}, state, {
...initialState,
backupCode: {
...initialState.backupCode,
requesting: false,
error: null,
success: true,
},
});
case BACKUP_CODE_VERIFICATION_FAILED:
return Object.assign({}, state, {
...initialState,
backupCode: {
...initialState.backupCode,
requesting: false,
error: action.payload,
success: false,
},
user: { ...state.user },
});
case RESET_BACKUP_CODE_VERIFICATION:
return Object.assign({}, state, initialState);
case SAVE_STATUS_PAGE:
return Object.assign({}, state, {
statusPageLogin: action.payload.isStatusPageLogin,
statusPageURL: action.payload.statusPageURL,
});
default:
return state;
}
}

View File

@@ -1,205 +0,0 @@
import {
SIGNUP_SUCCESS,
SIGNUP_FAILED,
SIGNUP_STEP_INC,
SIGNUP_STEP_DEC,
SIGNUP_REQUEST,
RESET_SIGNUP,
SAVE_CARD_STATE,
SAVE_USER_STATE,
SAVE_COMPANY_STATE,
IS_USER_INVITED_FAILED,
IS_USER_INVITED_REQUEST,
IS_USER_INVITED_RESET,
IS_USER_INVITED_SUCCESS,
SKIP_CARD_STEP,
ADD_CARD_REQUEST,
ADD_CARD_SUCCESS,
ADD_CARD_FAILED,
SAVE_PLAN_ID,
GET_EMAIL_FROM_TOKEN,
} from '../constants/register.js';
// The register state reducer.
import Action from 'CommonUI/src/Types/Action';
const initialState: $TSFixMe = {
addCard: {
requesting: false,
error: null,
success: false,
card: {},
},
requesting: false,
step: 1,
user: {},
card: {},
company: {},
error: null,
success: false,
planId: null,
isUserInvited: {
requesting: false,
isUserInvited: null,
error: null,
success: false,
},
email: null,
};
export default function register(
state: $TSFixMe = initialState,
action: Action
): void {
let incCount: $TSFixMe, decCount: $TSFixMe, stage: $TSFixMe;
switch (action.type) {
case SIGNUP_REQUEST:
return Object.assign({}, state, {
requesting: true,
error: null,
});
case SIGNUP_SUCCESS:
state.user.cardRegistered = action.payload.cardRegistered;
return Object.assign({}, state, {
requesting: false,
success: true,
error: null,
user: { ...state.user },
});
case SIGNUP_FAILED:
return Object.assign({}, state, {
requesting: false,
isAuthenticated: false,
error: action.payload,
isUserInvited: {
...state.isUserInvited,
requesting: false,
},
});
case SIGNUP_STEP_INC:
incCount = state.step + 1;
return Object.assign({}, state, {
step: incCount,
error: null,
});
case SKIP_CARD_STEP:
stage = 3;
return Object.assign({}, state, {
step: stage,
error: null,
});
case SIGNUP_STEP_DEC:
decCount = state.step - 1;
return Object.assign({}, state, {
step: decCount,
error: null,
});
case SAVE_USER_STATE:
return Object.assign({}, state, {
user: action.payload,
});
case SAVE_CARD_STATE:
return Object.assign({}, state, {
card: action.payload,
});
case SAVE_COMPANY_STATE:
return Object.assign({}, state, {
company: action.payload,
});
case RESET_SIGNUP:
return Object.assign({}, state, initialState);
case IS_USER_INVITED_FAILED:
return Object.assign({}, state, {
isUserInvited: {
requesting: false,
isUserInvited: null,
error: action.payload,
success: false,
},
});
case IS_USER_INVITED_REQUEST:
return Object.assign({}, state, {
isUserInvited: {
requesting: true,
isUserInvited: null,
error: null,
success: false,
},
});
case IS_USER_INVITED_SUCCESS:
return Object.assign({}, state, {
...state,
isUserInvited: {
requesting: false,
isUserInvited: action.payload,
error: null,
success: false,
},
});
case IS_USER_INVITED_RESET:
return Object.assign({}, state, {
...state,
isUserInvited: {
requesting: false,
isUserInvited: null,
error: null,
success: false,
},
});
case ADD_CARD_REQUEST:
return Object.assign({}, state, {
...state,
addCard: {
...state.addCard,
requesting: true,
},
});
case ADD_CARD_SUCCESS:
return Object.assign({}, state, {
...state,
addCard: {
requesting: false,
error: null,
success: true,
card: action.payload,
},
});
case ADD_CARD_FAILED:
return Object.assign({}, state, {
...state,
addCard: {
requesting: false,
success: false,
error: action.payload,
},
});
case SAVE_PLAN_ID:
return Object.assign({}, state, {
planId: action.payload,
});
case GET_EMAIL_FROM_TOKEN:
return Object.assign({}, state, {
...state,
email:
action.payload && action.payload.token
? { email: action.payload.token.userId.email }
: null,
});
default:
return state;
}
}

View File

@@ -1,47 +0,0 @@
import {
RESENDTOKEN_FAILED,
RESENDTOKEN_REQUEST,
RESENDTOKEN_SUCCESS,
RESENDTOKEN_RESET,
} from '../constants/resendToken';
import Action from 'CommonUI/src/Types/Action';
const initialState: $TSFixMe = {
requesting: false,
error: null,
success: false,
};
export default function register(
state: $TSFixMe = initialState,
action: Action
): void {
switch (action.type) {
case RESENDTOKEN_REQUEST:
return Object.assign({}, state, {
...state,
requesting: true,
});
case RESENDTOKEN_SUCCESS:
return Object.assign({}, state, {
requesting: false,
success: true,
error: null,
});
case RESENDTOKEN_FAILED:
return Object.assign({}, state, {
requesting: false,
success: false,
error: action.payload,
});
case RESENDTOKEN_RESET:
return Object.assign({}, state, {
requesting: false,
success: false,
error: null,
});
default:
return state;
}
}

View File

@@ -1,51 +0,0 @@
import {
PASSWORDRESET_REQUEST,
PASSWORDRESET_SUCCESS,
PASSWORDRESET_FAILED,
RESET_PASSWORDRESET,
} from '../constants/resetPassword';
/*
* The auth reducer. The starting state sets authentication
* Based on a token being in local storage. In a real app,
* We would also want a util to check if the token is expired.
*/
import Action from 'CommonUI/src/Types/Action';
const initialState: $TSFixMe = {
requesting: false,
error: null,
success: false,
};
export default function register(
state: $TSFixMe = initialState,
action: Action
): void {
switch (action.type) {
case PASSWORDRESET_REQUEST:
return Object.assign({}, state, {
requesting: true,
error: null,
});
case PASSWORDRESET_SUCCESS:
return Object.assign({}, state, {
requesting: false,
success: true,
error: null,
});
case PASSWORDRESET_FAILED:
return Object.assign({}, state, {
requesting: false,
success: false,
error: action.payload,
});
case RESET_PASSWORDRESET:
return Object.assign({}, state, initialState);
default:
return state;
}
}

View File

@@ -1,5 +1,5 @@
{
"name": "oneuptime-AdminDashboard",
"name": "admin-dashboard",
"version": "3.0.0",
"private": false,
"type": "module",

View File

@@ -1,5 +1,5 @@
{
"name": "oneuptime-ApiDocs",
"name": "api-docs",
"version": "3.0.0",
"description": "oneuptime api refernce",
"main": "Gruntfile.js",

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,64 @@
import { Column, Entity, Index, JoinColumn, ManyToOne } from 'typeorm';
import ColumnType from '../Types/Database/ColumnType';
import ObjectID from '../Types/ObjectID';
import BaseModel from './BaseModel';
import RequiredColumn from '../Types/Database/RequiredColumn';
import UniqueColumn from '../Types/Database/UniqueColumn';
import User from './User';
import ColumnLength from '../Types/Database/ColumnLength';
import Email from '../Types/Email';
@Entity({
name: 'EmailVerificationToken',
})
export default class EmailVerificationToken extends BaseModel {
@RequiredColumn()
@ManyToOne(
(_type: string) => {
return User;
},
{
eager: false,
nullable: false,
onDelete: 'CASCADE',
orphanedRowAction: 'nullify',
}
)
@JoinColumn({ name: 'userId' })
public user!: User;
@Column({
type: ColumnType.ObjectID,
nullable: false,
transformer: ObjectID.getDatabaseTransformer(),
})
public userId!: ObjectID;
@Column({
type: ColumnType.Email,
length: ColumnLength.Email,
nullable: false,
transformer: Email.getDatabaseTransformer(),
})
public email!: Email;
@Index()
@RequiredColumn()
@UniqueColumn()
@Column({
type: ColumnType.ObjectID,
nullable: false,
unique: true,
length: ColumnLength.ObjectID,
transformer: ObjectID.getDatabaseTransformer(),
})
public token!: ObjectID;
@RequiredColumn()
@Column({
nullable: false,
type: ColumnType.Date,
})
public expires!: Date;
}

View File

@@ -1,5 +1,6 @@
import User from './User';
import Probe from './Probe';
import Project from './Project';
import EmailVerificationToken from './EmailVerificationToken';
export default [User, Probe, Project];
export default [User, Probe, Project, EmailVerificationToken];

View File

@@ -5,17 +5,19 @@ import ColumnType from '../Types/Database/ColumnType';
import Project from './Project';
import ObjectID from '../Types/ObjectID';
import Version from '../Types/Version';
import RequiredColumn from '../Types/Database/RequiredColumnDecorator';
import UniqueColumn from '../Types/Database/UniqueColumnDecorator';
import SlugifyColumn from '../Types/Database/SlugifyColumnDecorator';
import RequiredColumn from '../Types/Database/RequiredColumn';
import UniqueColumn from '../Types/Database/UniqueColumn';
import SlugifyColumn from '../Types/Database/SlugifyColumn';
import URL from '../Types/API/URL';
import User from './User';
import TableColumn from '../Types/Database/TableColumn';
@SlugifyColumn('name', 'slug')
@Entity({
name: 'Probe',
})
export default class Probe extends BaseModel {
@TableColumn()
@RequiredColumn()
@UniqueColumn()
@Column({
@@ -27,6 +29,7 @@ export default class Probe extends BaseModel {
})
public key!: ObjectID;
@TableColumn()
@RequiredColumn()
@Column({
nullable: false,
@@ -35,6 +38,7 @@ export default class Probe extends BaseModel {
})
public name!: string;
@TableColumn()
@RequiredColumn()
@UniqueColumn()
@Column({
@@ -44,6 +48,7 @@ export default class Probe extends BaseModel {
})
public slug!: string;
@TableColumn()
@RequiredColumn()
@Column({
nullable: false,
@@ -53,6 +58,7 @@ export default class Probe extends BaseModel {
})
public probeVersion!: Version;
@TableColumn()
@RequiredColumn()
@Column({
nullable: false,
@@ -63,6 +69,7 @@ export default class Probe extends BaseModel {
})
public lastAlive!: Date;
@TableColumn()
@Column({
type: ColumnType.ShortURL,
nullable: true,
@@ -72,6 +79,7 @@ export default class Probe extends BaseModel {
public iconUrl?: URL;
// If this probe is custom to the project and only monitoring reosurces in this project.
@TableColumn()
@ManyToOne(
(_type: string) => {
return Project;
@@ -87,6 +95,7 @@ export default class Probe extends BaseModel {
@JoinColumn({ name: 'projectId' })
public project?: Project;
@TableColumn()
@Column({
type: ColumnType.ObjectID,
nullable: true,
@@ -94,6 +103,7 @@ export default class Probe extends BaseModel {
})
public projectId?: ObjectID;
@TableColumn()
@ManyToOne(
(_type: string) => {
return User;
@@ -109,6 +119,7 @@ export default class Probe extends BaseModel {
@JoinColumn({ name: 'deletedByUserId' })
public deletedByUser?: User;
@TableColumn()
@Column({
type: ColumnType.ObjectID,
nullable: true,
@@ -116,6 +127,7 @@ export default class Probe extends BaseModel {
})
public deletedByUserId?: ObjectID;
@TableColumn()
@ManyToOne(
(_type: string) => {
return User;
@@ -130,6 +142,7 @@ export default class Probe extends BaseModel {
@JoinColumn({ name: 'createdByUserId' })
public createdByUser?: User;
@TableColumn()
@Column({
type: ColumnType.ObjectID,
nullable: true,

View File

@@ -1,19 +1,21 @@
import { Column, Entity, JoinColumn, ManyToOne } from 'typeorm';
import BaseModel from './BaseModel';
import RequiredColumn from '../Types/Database/RequiredColumnDecorator';
import UniqueColumn from '../Types/Database/UniqueColumnDecorator';
import RequiredColumn from '../Types/Database/RequiredColumn';
import UniqueColumn from '../Types/Database/UniqueColumn';
import User from './User';
import Project from './Project';
import ColumnType from '../Types/Database/ColumnType';
import PositiveNumber from '../Types/PositiveNumber';
import ObjectID from '../Types/ObjectID';
import ColumnLength from '../Types/Database/ColumnLength';
import TableColumn from '../Types/Database/TableColumn';
@Entity({
name: 'Project',
})
export default class Model extends BaseModel {
@RequiredColumn()
@TableColumn()
@Column({
nullable: false,
type: ColumnType.Name,
@@ -23,6 +25,7 @@ export default class Model extends BaseModel {
@RequiredColumn()
@UniqueColumn()
@TableColumn()
@Column({
nullable: false,
type: ColumnType.Slug,
@@ -30,6 +33,7 @@ export default class Model extends BaseModel {
})
public slug!: string;
@TableColumn()
@Column({
type: ColumnType.ShortText,
length: ColumnLength.ShortText,
@@ -38,6 +42,7 @@ export default class Model extends BaseModel {
})
public paymentProviderPlanId?: string;
@TableColumn()
@Column({
type: ColumnType.ShortText,
length: ColumnLength.ShortText,
@@ -46,6 +51,7 @@ export default class Model extends BaseModel {
})
public paymentProviderSubscriptionId?: string;
@TableColumn()
@ManyToOne(
(_type: string) => {
return Project;
@@ -61,6 +67,7 @@ export default class Model extends BaseModel {
@JoinColumn({ name: 'parentProjectId' })
public parentProject?: Project;
@TableColumn()
@Column({
type: ColumnType.ObjectID,
nullable: true,
@@ -68,6 +75,7 @@ export default class Model extends BaseModel {
})
public parentProjectId?: ObjectID;
@TableColumn()
@Column({
type: ColumnType.SmallPositiveNumber,
nullable: false,
@@ -76,6 +84,7 @@ export default class Model extends BaseModel {
})
public numberOfLicensesIssued!: PositiveNumber;
@TableColumn()
@ManyToOne(
(_type: string) => {
return User;
@@ -90,6 +99,7 @@ export default class Model extends BaseModel {
@JoinColumn({ name: 'createdByUserId' })
public createdByUser?: User;
@TableColumn()
@Column({
type: ColumnType.ObjectID,
nullable: true,
@@ -97,6 +107,7 @@ export default class Model extends BaseModel {
})
public createdByUserId?: ObjectID;
@TableColumn()
@ManyToOne(
(_type: string) => {
return User;
@@ -112,6 +123,7 @@ export default class Model extends BaseModel {
@JoinColumn({ name: 'deletedByUserId' })
public deletedByUser?: User;
@TableColumn()
@Column({
type: ColumnType.ObjectID,
nullable: false,
@@ -121,6 +133,7 @@ export default class Model extends BaseModel {
public apiKey!: ObjectID;
@RequiredColumn()
@TableColumn()
@Column({
type: ColumnType.Boolean,
nullable: false,
@@ -130,6 +143,7 @@ export default class Model extends BaseModel {
public alertsEnabled!: boolean;
@RequiredColumn()
@TableColumn()
@Column({
type: ColumnType.SmallPositiveNumber,
nullable: false,
@@ -139,6 +153,7 @@ export default class Model extends BaseModel {
public alertAccountBalance!: number;
@RequiredColumn()
@TableColumn()
@Column({
type: ColumnType.Boolean,
nullable: false,
@@ -147,6 +162,7 @@ export default class Model extends BaseModel {
})
public isBlocked!: boolean;
@TableColumn()
@Column({
type: ColumnType.SmallPositiveNumber,
nullable: true,
@@ -154,6 +170,7 @@ export default class Model extends BaseModel {
})
public unpaidSubscriptionNotificationCount!: PositiveNumber;
@TableColumn()
@Column({
type: ColumnType.Date,
nullable: true,
@@ -161,6 +178,7 @@ export default class Model extends BaseModel {
})
public paymentFailedDate?: Date;
@TableColumn()
@Column({
type: ColumnType.Date,
nullable: true,

View File

@@ -1,11 +1,10 @@
import { Column, Entity } from 'typeorm';
import BaseModel from './BaseModel';
import EncryptedColumn from '../Types/Database/EncryptedColumnDecorator';
import ColumnType from '../Types/Database/ColumnType';
import ColumnLength from '../Types/Database/ColumnLength';
import RequiredColumn from '../Types/Database/RequiredColumnDecorator';
import UniqueColumn from '../Types/Database/UniqueColumnDecorator';
import SlugifyColumn from '../Types/Database/SlugifyColumnDecorator';
import RequiredColumn from '../Types/Database/RequiredColumn';
import UniqueColumn from '../Types/Database/UniqueColumn';
import SlugifyColumn from '../Types/Database/SlugifyColumn';
import Phone from '../Types/Phone';
import Email from '../Types/Email';
import Name from '../Types/Name';
@@ -13,20 +12,48 @@ import URL from '../Types/API/URL';
import Timezone from '../Types/Timezone';
import CompanySize from '../Types/Company/CompanySize';
import JobRole from '../Types/Company/JobRole';
import HashedColumn from '../Types/Database/HashedColumn';
import HashedString from '../Types/HashedString';
import PublicRecordPermissions from '../Types/Database/AccessControls/Public/PublicRecordPermissions';
import TableColumn from '../Types/Database/TableColumn';
import PublicColumnPermissions from '../Types/Database/AccessControls/Public/PublicColumnPermissions';
@PublicRecordPermissions({
create: true,
readAsList: false,
readAsItem: false,
update: false,
delete: false,
})
@SlugifyColumn('name', 'slug')
@Entity({
name: 'User',
})
class User extends BaseModel {
@RequiredColumn()
@PublicColumnPermissions({
create: true,
readAsList: false,
readAsItem: false,
update: false,
delete: false,
})
@TableColumn()
@Column({
type: ColumnType.Name,
length: ColumnLength.Name,
nullable: false,
nullable: true,
unique: false,
})
public name!: Name;
@PublicColumnPermissions({
create: true,
readAsList: false,
readAsItem: false,
update: false,
delete: false,
})
@TableColumn()
@UniqueColumn()
@RequiredColumn()
@Column({
@@ -37,6 +64,7 @@ class User extends BaseModel {
})
public email!: Email;
@TableColumn()
@Column({
type: ColumnType.Email,
length: ColumnLength.Email,
@@ -45,48 +73,86 @@ class User extends BaseModel {
})
public newUnverifiedTemporaryEmail?: string;
@EncryptedColumn()
@PublicColumnPermissions({
create: true,
readAsList: false,
readAsItem: false,
update: false,
delete: false,
})
@TableColumn()
@HashedColumn()
@Column({
type: ColumnType.Password,
length: ColumnLength.Password,
type: ColumnType.HashedString,
length: ColumnLength.HashedString,
unique: false,
nullable: true,
})
public password?: string;
public password?: HashedString;
@TableColumn()
@Column({
type: ColumnType.Boolean,
default: false,
})
public isEmailVerified!: boolean;
@RequiredColumn()
@PublicColumnPermissions({
create: true,
readAsList: false,
readAsItem: false,
update: false,
delete: false,
})
@TableColumn()
@Column({
type: ColumnType.Name,
length: ColumnLength.Name,
nullable: false,
nullable: true,
unique: false,
})
public companyName!: string;
@RequiredColumn()
@PublicColumnPermissions({
create: true,
readAsList: false,
readAsItem: false,
update: false,
delete: false,
})
@TableColumn()
@Column({
type: ColumnType.ShortText,
length: ColumnLength.ShortText,
nullable: false,
nullable: true,
unique: false,
})
public jobRole!: JobRole;
@RequiredColumn()
@PublicColumnPermissions({
create: true,
readAsList: false,
readAsItem: false,
update: false,
delete: false,
})
@TableColumn()
@Column({
type: ColumnType.ShortText,
length: ColumnLength.ShortText,
nullable: false,
nullable: true,
unique: false,
})
public companySize!: CompanySize;
@PublicColumnPermissions({
create: true,
readAsList: false,
readAsItem: false,
update: false,
delete: false,
})
@TableColumn()
@Column({
type: ColumnType.ShortText,
length: ColumnLength.ShortText,
@@ -95,16 +161,24 @@ class User extends BaseModel {
})
public referral?: string;
@RequiredColumn()
@PublicColumnPermissions({
create: true,
readAsList: false,
readAsItem: false,
update: false,
delete: false,
})
@TableColumn()
@Column({
type: ColumnType.Phone,
length: ColumnLength.Phone,
nullable: false,
nullable: true,
unique: false,
transformer: Phone.getDatabaseTransformer(),
})
public companyPhoneNumber!: Phone;
@TableColumn()
@Column({
type: ColumnType.ShortURL,
length: ColumnLength.ShortURL,
@@ -115,6 +189,7 @@ class User extends BaseModel {
public profilePicImageUrl?: URL;
@RequiredColumn()
@TableColumn()
@Column({
type: ColumnType.Boolean,
default: false,
@@ -123,6 +198,7 @@ class User extends BaseModel {
})
public twoFactorAuthEnabled!: boolean;
@TableColumn()
@Column({
type: ColumnType.ShortText,
length: ColumnLength.ShortText,
@@ -131,6 +207,7 @@ class User extends BaseModel {
})
public twoFactorSecretCode?: string;
@TableColumn()
@Column({
type: ColumnType.ShortURL,
length: ColumnLength.ShortURL,
@@ -138,8 +215,9 @@ class User extends BaseModel {
unique: false,
transformer: URL.getDatabaseTransformer(),
})
public otpAuthUrl?: URL;
public twoFactorAuthUrl?: URL;
@TableColumn()
@Column({
type: ColumnType.Array,
nullable: true,
@@ -147,6 +225,7 @@ class User extends BaseModel {
})
public backupCodes?: Array<string>;
@TableColumn()
@Column({
type: ColumnType.ShortText,
length: ColumnLength.ShortText,
@@ -155,6 +234,7 @@ class User extends BaseModel {
})
public jwtRefreshToken?: string;
@TableColumn()
@Column({
type: ColumnType.ShortText,
length: ColumnLength.ShortText,
@@ -163,6 +243,7 @@ class User extends BaseModel {
})
public paymentProviderCustomerId?: string;
@TableColumn()
@Column({
type: ColumnType.ShortText,
length: ColumnLength.ShortText,
@@ -171,6 +252,7 @@ class User extends BaseModel {
})
public resetPasswordToken!: string;
@TableColumn()
@Column({
type: ColumnType.Date,
nullable: true,
@@ -178,6 +260,7 @@ class User extends BaseModel {
})
public resetPasswordExpires?: Date;
@TableColumn()
@Column({
type: ColumnType.ShortText,
length: ColumnLength.ShortText,
@@ -186,14 +269,22 @@ class User extends BaseModel {
})
public timezone?: Timezone;
@RequiredColumn()
@TableColumn()
@Column({
type: ColumnType.Date,
nullable: false,
nullable: true,
unique: false,
})
public lastActive!: Date;
@PublicColumnPermissions({
create: true,
readAsList: false,
readAsItem: false,
update: false,
delete: false,
})
@TableColumn()
@Column({
type: ColumnType.ShortText,
length: ColumnLength.ShortText,
@@ -203,6 +294,7 @@ class User extends BaseModel {
public promotionName!: string;
@RequiredColumn()
@TableColumn()
@Column({
type: ColumnType.Boolean,
nullable: false,
@@ -211,6 +303,7 @@ class User extends BaseModel {
})
public isDisabled!: boolean;
@TableColumn()
@Column({
type: ColumnType.Date,
nullable: true,
@@ -219,6 +312,7 @@ class User extends BaseModel {
public paymentFailedDate!: Date;
@RequiredColumn()
@TableColumn()
@Column({
type: ColumnType.Boolean,
nullable: false,
@@ -228,6 +322,7 @@ class User extends BaseModel {
public isMasterAdmin!: boolean;
@RequiredColumn()
@TableColumn()
@Column({
type: ColumnType.Boolean,
nullable: false,
@@ -236,6 +331,7 @@ class User extends BaseModel {
})
public isBlocked!: boolean;
@TableColumn()
@Column({
type: ColumnType.Phone,
length: ColumnLength.Phone,
@@ -244,6 +340,7 @@ class User extends BaseModel {
})
public alertPhoneNumber?: Phone;
@TableColumn()
@Column({
type: ColumnType.OTP,
length: ColumnLength.OTP,
@@ -252,6 +349,7 @@ class User extends BaseModel {
})
public alertPhoneVerificationCode?: string;
@TableColumn()
@Column({
type: ColumnType.Date,
nullable: true,
@@ -259,6 +357,7 @@ class User extends BaseModel {
})
public alertPhoneVerificationCodeRequestTime?: Date;
@TableColumn()
@Column({
type: ColumnType.Phone,
length: ColumnLength.Phone,

View File

@@ -1,19 +0,0 @@
import { Column, Entity, Index } from 'typeorm';
import BaseModel from './BaseModel';
import User from './User';
@Entity({
name: 'UserVerificationToken',
})
export default class UserVerificationToken extends BaseModel {
@Column({ nullable: false })
public user!: User;
@Index()
@Column({ nullable: false })
public token!: string;
@Column({ nullable: false })
public expires!: Date;
}

247
Common/Types/Countries.ts Normal file
View File

@@ -0,0 +1,247 @@
enum Countries {
'Afghanistan' = 'Afghanistan',
'Åland Islands' = 'Åland Islands',
'Albania' = 'Albania',
'Algeria' = 'Algeria',
'American Samoa' = 'American Samoa',
'Andorra' = 'Andorra',
'Angola' = 'Angola',
'Anguilla' = 'Anguilla',
'Antarctica' = 'Antarctica',
'Antigua and Barbuda' = 'Antigua and Barbuda',
'Argentina' = 'Argentina',
'Armenia' = 'Armenia',
'Aruba' = 'Aruba',
'Australia' = 'Australia',
'Austria' = 'Austria',
'Azerbaijan' = 'Azerbaijan',
'Bahamas' = 'Bahamas',
'Bahrain' = 'Bahrain',
'Bangladesh' = 'Bangladesh',
'Barbados' = 'Barbados',
'Belarus' = 'Belarus',
'Belgium' = 'Belgium',
'Belize' = 'Belize',
'Benin' = 'Benin',
'Bermuda' = 'Bermuda',
'Bhutan' = 'Bhutan',
'Bolivia' = 'Bolivia',
'Bosnia and Herzegovina' = 'Bosnia and Herzegovina',
'Botswana' = 'Botswana',
'Bouvet Island' = 'Bouvet Island',
'Brazil' = 'Brazil',
'British Indian Ocean Territory' = 'British Indian Ocean Territory',
'Brunei Darussalam' = 'Brunei Darussalam',
'Bulgaria' = 'Bulgaria',
'Burkina Faso' = 'Burkina Faso',
'Burundi' = 'Burundi',
'Cambodia' = 'Cambodia',
'Cameroon' = 'Cameroon',
'Canada' = 'Canada',
'Cape Verde' = 'Cape Verde',
'Cayman Islands' = 'Cayman Islands',
'Central African Republic' = 'Central African Republic',
'Chad' = 'Chad',
'Chile' = 'Chile',
'China' = 'China',
'Christmas Island' = 'Christmas Island',
'Cocos (Keeling) Islands' = 'Cocos (Keeling) Islands',
'Colombia' = 'Colombia',
'Comoros' = 'Comoros',
'Congo' = 'Congo',
'Congo, The Democratic Republic of the' = 'Congo, The Democratic Republic of the',
'Cook Islands' = 'Cook Islands',
'Costa Rica' = 'Costa Rica',
"Cote d'Ivoire" = "Cote d'Ivoire",
'Croatia' = 'Croatia',
'Cuba' = 'Cuba',
'Cyprus' = 'Cyprus',
'Czech Republic' = 'Czech Republic',
'Denmark' = 'Denmark',
'Djibouti' = 'Djibouti',
'Dominica' = 'Dominica',
'Dominican Republic' = 'Dominican Republic',
'Ecuador' = 'Ecuador',
'Egypt' = 'Egypt',
'El Salvador' = 'El Salvador',
'Equatorial Guinea' = 'Equatorial Guinea',
'Eritrea' = 'Eritrea',
'Estonia' = 'Estonia',
'Ethiopia' = 'Ethiopia',
'Falkland Islands (Malvinas)' = 'Falkland Islands (Malvinas)',
'Faroe Islands' = 'Faroe Islands',
'Fiji' = 'Fiji',
'Finland' = 'Finland',
'France' = 'France',
'French Guiana' = 'French Guiana',
'French Polynesia' = 'French Polynesia',
'French Southern Territories' = 'French Southern Territories',
'Gabon' = 'Gabon',
'Gambia' = 'Gambia',
'Georgia' = 'Georgia',
'Germany' = 'Germany',
'Ghana' = 'Ghana',
'Gibraltar' = 'Gibraltar',
'Greece' = 'Greece',
'Greenland' = 'Greenland',
'Grenada' = 'Grenada',
'Guadeloupe' = 'Guadeloupe',
'Guam' = 'Guam',
'Guatemala' = 'Guatemala',
'Guernsey' = 'Guernsey',
'Guinea' = 'Guinea',
'Guinea-Bissau' = 'Guinea-Bissau',
'Guyana' = 'Guyana',
'Haiti' = 'Haiti',
'Heard Island and Mcdonald Islands' = 'Heard Island and Mcdonald Islands',
'Holy See (Vatican City State)' = 'Holy See (Vatican City State)',
'Honduras' = 'Honduras',
'Hong Kong' = 'Hong Kong',
'Hungary' = 'Hungary',
'Iceland' = 'Iceland',
'India' = 'India',
'Indonesia' = 'Indonesia',
'Iran, Islamic Republic Of' = 'Iran, Islamic Republic Of',
'Iraq' = 'Iraq',
'Ireland' = 'Ireland',
'Isle of Man' = 'Isle of Man',
'Israel' = 'Israel',
'Italy' = 'Italy',
'Jamaica' = 'Jamaica',
'Japan' = 'Japan',
'Jersey' = 'Jersey',
'Jordan' = 'Jordan',
'Kazakhstan' = 'Kazakhstan',
'Kenya' = 'Kenya',
'Kiribati' = 'Kiribati',
"Korea, Democratic People's Republic of" = "Korea, Democratic People's Republic of",
'Korea, Republic of' = 'Korea, Republic of',
'Kuwait' = 'Kuwait',
'Kyrgyzstan' = 'Kyrgyzstan',
"Lao People's Democratic Republic" = "Lao People's Democratic Republic",
'Latvia' = 'Latvia',
'Lebanon' = 'Lebanon',
'Lesotho' = 'Lesotho',
'Liberia' = 'Liberia',
'Libyan Arab Jamahiriya' = 'Libyan Arab Jamahiriya',
'Liechtenstein' = 'Liechtenstein',
'Lithuania' = 'Lithuania',
'Luxembourg' = 'Luxembourg',
'Macao' = 'Macao',
'Macedonia, The Former Yugoslav Republic of' = 'Macedonia, The Former Yugoslav Republic of',
'Madagascar' = 'Madagascar',
'Malawi' = 'Malawi',
'Malaysia' = 'Malaysia',
'Maldives' = 'Maldives',
'Mali' = 'Mali',
'Malta' = 'Malta',
'Marshall Islands' = 'Marshall Islands',
'Martinique' = 'Martinique',
'Mauritania' = 'Mauritania',
'Mauritius' = 'Mauritius',
'Mayotte' = 'Mayotte',
'Mexico' = 'Mexico',
'Micronesia, Federated States of' = 'Micronesia, Federated States of',
'Moldova, Republic of' = 'Moldova, Republic of',
'Monaco' = 'Monaco',
'Mongolia' = 'Mongolia',
'Montserrat' = 'Montserrat',
'Morocco' = 'Morocco',
'Mozambique' = 'Mozambique',
'Myanmar' = 'Myanmar',
'Namibia' = 'Namibia',
'Nauru' = 'Nauru',
'Nepal' = 'Nepal',
'Netherlands' = 'Netherlands',
'Netherlands Antilles' = 'Netherlands Antilles',
'New Caledonia' = 'New Caledonia',
'New Zealand' = 'New Zealand',
'Nicaragua' = 'Nicaragua',
'Niger' = 'Niger',
'Nigeria' = 'Nigeria',
'Niue' = 'Niue',
'Norfolk Island' = 'Norfolk Island',
'Northern Mariana Islands' = 'Northern Mariana Islands',
'Norway' = 'Norway',
'Oman' = 'Oman',
'Pakistan' = 'Pakistan',
'Palau' = 'Palau',
'Palestinian Territory, Occupied' = 'Palestinian Territory, Occupied',
'Panama' = 'Panama',
'Papua New Guinea' = 'Papua New Guinea',
'Paraguay' = 'Paraguay',
'Peru' = 'Peru',
'Philippines' = 'Philippines',
'Pitcairn' = 'Pitcairn',
'Poland' = 'Poland',
'Portugal' = 'Portugal',
'Puerto Rico' = 'Puerto Rico',
'Qatar' = 'Qatar',
'Reunion' = 'Reunion',
'Romania' = 'Romania',
'Russian Federation' = 'Russian Federation',
'RWANDA' = 'RWANDA',
'Saint Helena' = 'Saint Helena',
'Saint Kitts and Nevis' = 'Saint Kitts and Nevis',
'Saint Lucia' = 'Saint Lucia',
'Saint Pierre and Miquelon' = 'Saint Pierre and Miquelon',
'Saint Vincent and the Grenadines' = 'Saint Vincent and the Grenadines',
'Samoa' = 'Samoa',
'San Marino' = 'San Marino',
'Sao Tome and Principe' = 'Sao Tome and Principe',
'Saudi Arabia' = 'Saudi Arabia',
'Senegal' = 'Senegal',
'Serbia and Montenegro' = 'Serbia and Montenegro',
'Seychelles' = 'Seychelles',
'Sierra Leone' = 'Sierra Leone',
'Singapore' = 'Singapore',
'Slovakia' = 'Slovakia',
'Slovenia' = 'Slovenia',
'Solomon Islands' = 'Solomon Islands',
'Somalia' = 'Somalia',
'South Africa' = 'South Africa',
'South Georgia and the South Sandwich Islands' = 'South Georgia and the South Sandwich Islands',
'Spain' = 'Spain',
'Sri Lanka' = 'Sri Lanka',
'Sudan' = 'Sudan',
'Suriname' = 'Suriname',
'Svalbard and Jan Mayen' = 'Svalbard and Jan Mayen',
'Swaziland' = 'Swaziland',
'Sweden' = 'Sweden',
'Switzerland' = 'Switzerland',
'Syrian Arab Republic' = 'Syrian Arab Republic',
'Taiwan, Province of China' = 'Taiwan, Province of China',
'Tajikistan' = 'Tajikistan',
'Tanzania, United Republic of' = 'Tanzania, United Republic of',
'Thailand' = 'Thailand',
'Timor-Leste' = 'Timor-Leste',
'Togo' = 'Togo',
'Tokelau' = 'Tokelau',
'Tonga' = 'Tonga',
'Trinidad and Tobago' = 'Trinidad and Tobago',
'Tunisia' = 'Tunisia',
'Turkey' = 'Turkey',
'Turkmenistan' = 'Turkmenistan',
'Turks and Caicos Islands' = 'Turks and Caicos Islands',
'Tuvalu' = 'Tuvalu',
'Uganda' = 'Uganda',
'Ukraine' = 'Ukraine',
'United Arab Emirates' = 'United Arab Emirates',
'United Kingdom' = 'United Kingdom',
'United States' = 'United States',
'United States Minor Outlying Islands' = 'United States Minor Outlying Islands',
'Uruguay' = 'Uruguay',
'Uzbekistan' = 'Uzbekistan',
'Vanuatu' = 'Vanuatu',
'Venezuela' = 'Venezuela',
'Viet Nam' = 'Viet Nam',
'Virgin Islands, British' = 'Virgin Islands, British',
'Virgin Islands, U.S.' = 'Virgin Islands, U.S.',
'Wallis and Futuna' = 'Wallis and Futuna',
'Western Sahara' = 'Western Sahara',
'Yemen' = 'Yemen',
'Zambia' = 'Zambia',
'Zimbabwe' = 'Zimbabwe',
}
export default Countries;

View File

@@ -0,0 +1,7 @@
export default interface AccessControl {
create: boolean;
readAsItem: boolean;
readAsList: boolean;
update: boolean;
delete: boolean;
}

View File

@@ -0,0 +1,27 @@
import BaseModel from '../../../../Models/BaseModel';
import AccessControl from '../AccessControl';
export default (accessControl: AccessControl) => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
if (accessControl.create) {
baseModel.addAdminCreateableColumn(propertyKey);
}
if (accessControl.delete) {
baseModel.addAdminDeleteableColumn(propertyKey);
}
if (accessControl.readAsItem) {
baseModel.addAdminReadableAsItemColumn(propertyKey);
}
if (accessControl.readAsList) {
baseModel.addAdminReadableAsListColumn(propertyKey);
}
if (accessControl.update) {
baseModel.addAdminUpdateableColumn(propertyKey);
}
};
};

View File

@@ -0,0 +1,25 @@
import AccessControl from '../AccessControl';
export default (accessControl: AccessControl) => {
return (ctr: Function) => {
if (accessControl.create) {
ctr.prototype.canAdminCreateRecord = true;
}
if (accessControl.readAsItem) {
ctr.prototype.canAdminReadItemRecord = true;
}
if (accessControl.readAsList) {
ctr.prototype.canAdminReadListRecord = true;
}
if (accessControl.update) {
ctr.prototype.canAdminUpdateRecord = true;
}
if (accessControl.delete) {
ctr.prototype.canAdminDeleteRecord = true;
}
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addAdminCreateableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addAdminDeleteableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addAdminReadableAsItemColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addAdminReadableAsListColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addAdminUpdateableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canAdminCreateRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canAdminDeleteRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canAdminReadItemRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canAdminReadListRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canAdminUpdateRecord = true;
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addMemberCreateableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addMemberDeleteableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addAdminReadableAsItemColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addAdminReadableAsListColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addMemberUpdateableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canMemberCreateRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canMemberDeleteRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canMemberReadItemRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canMemberReadListRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canMemberUpdateRecord = true;
};
};

View File

@@ -0,0 +1,27 @@
import BaseModel from '../../../../Models/BaseModel';
import AccessControl from '../AccessControl';
export default (accessControl: AccessControl) => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
if (accessControl.create) {
baseModel.addMemberCreateableColumn(propertyKey);
}
if (accessControl.delete) {
baseModel.addMemberDeleteableColumn(propertyKey);
}
if (accessControl.readAsItem) {
baseModel.addMemberReadableAsItemColumn(propertyKey);
}
if (accessControl.readAsList) {
baseModel.addMemberReadableAsListColumn(propertyKey);
}
if (accessControl.update) {
baseModel.addMemberUpdateableColumn(propertyKey);
}
};
};

View File

@@ -0,0 +1,25 @@
import AccessControl from '../AccessControl';
export default (accessControl: AccessControl) => {
return (ctr: Function) => {
if (accessControl.create) {
ctr.prototype.canMemberCreateRecord = true;
}
if (accessControl.readAsItem) {
ctr.prototype.canMemberReadItemRecord = true;
}
if (accessControl.readAsList) {
ctr.prototype.canMemberReadListRecord = true;
}
if (accessControl.update) {
ctr.prototype.canMemberUpdateRecord = true;
}
if (accessControl.delete) {
ctr.prototype.canMemberDeleteRecord = true;
}
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addOwnerCreateableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addOwnerDeleteableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addOwnerReadableAsItemColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addOwnerReadableAsListColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addOwnerUpdateableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canOwnerCreateRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canOwnerDeleteRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canOwnerReadItemRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canOwnerReadListRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canOwnerUpdateRecord = true;
};
};

View File

@@ -0,0 +1,27 @@
import BaseModel from '../../../../Models/BaseModel';
import AccessControl from '../AccessControl';
export default (accessControl: AccessControl) => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
if (accessControl.create) {
baseModel.addOwnerCreateableColumn(propertyKey);
}
if (accessControl.delete) {
baseModel.addOwnerDeleteableColumn(propertyKey);
}
if (accessControl.readAsItem) {
baseModel.addOwnerReadableAsItemColumn(propertyKey);
}
if (accessControl.readAsList) {
baseModel.addOwnerReadableAsListColumn(propertyKey);
}
if (accessControl.update) {
baseModel.addOwnerUpdateableColumn(propertyKey);
}
};
};

View File

@@ -0,0 +1,25 @@
import AccessControl from '../AccessControl';
export default (accessControl: AccessControl) => {
return (ctr: Function) => {
if (accessControl.create) {
ctr.prototype.canOwnerCreateRecord = true;
}
if (accessControl.readAsItem) {
ctr.prototype.canOwnerReadItemRecord = true;
}
if (accessControl.readAsList) {
ctr.prototype.canOwnerReadListRecord = true;
}
if (accessControl.update) {
ctr.prototype.canOwnerUpdateRecord = true;
}
if (accessControl.delete) {
ctr.prototype.canOwnerDeleteRecord = true;
}
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addPublicCreateableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addPublicDeleteableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addPublicReadableAsItemColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addPublicReadableAsListColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addPublicUpdateableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canPublicCreateRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canPublicDeleteRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canPublicReadItemRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canPublicReadListRecord = true;
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canPublicUpdateRecord = true;
};
};

View File

@@ -0,0 +1,27 @@
import BaseModel from '../../../../Models/BaseModel';
import AccessControl from '../AccessControl';
export default (accessControl: AccessControl) => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
if (accessControl.create) {
baseModel.addPublicCreateableColumn(propertyKey);
}
if (accessControl.delete) {
baseModel.addPublicDeleteableColumn(propertyKey);
}
if (accessControl.readAsItem) {
baseModel.addPublicReadableAsItemColumn(propertyKey);
}
if (accessControl.readAsList) {
baseModel.addPublicReadableAsListColumn(propertyKey);
}
if (accessControl.update) {
baseModel.addPublicUpdateableColumn(propertyKey);
}
};
};

View File

@@ -0,0 +1,25 @@
import AccessControl from '../AccessControl';
export default (accessControl: AccessControl) => {
return (ctr: Function) => {
if (accessControl.create) {
ctr.prototype.canPublicCreateRecord = true;
}
if (accessControl.readAsItem) {
ctr.prototype.canPublicReadItemRecord = true;
}
if (accessControl.readAsList) {
ctr.prototype.canPublicReadListRecord = true;
}
if (accessControl.update) {
ctr.prototype.canPublicUpdateRecord = true;
}
if (accessControl.delete) {
ctr.prototype.canPublicDeleteRecord = true;
}
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addUserCreateableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addUserDeleteableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addUserReadableAsItemColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addUserReadableAsListColumn(propertyKey);
};
};

View File

@@ -0,0 +1,8 @@
import BaseModel from '../../../../Models/BaseModel';
export default () => {
return (target: Object, propertyKey: string) => {
const baseModel: BaseModel = target as BaseModel;
baseModel.addUserUpdateableColumn(propertyKey);
};
};

View File

@@ -0,0 +1,5 @@
export default () => {
return (ctr: Function) => {
ctr.prototype.canUserCreateRecord = true;
};
};

Some files were not shown because too many files have changed in this diff Show More