Convert isViewer and isAdmin to getters (#6724)
This commit is contained in:
@@ -52,10 +52,7 @@ class User extends ParanoidModel {
|
||||
email: string;
|
||||
|
||||
@observable
|
||||
isAdmin: boolean;
|
||||
|
||||
@observable
|
||||
isViewer: boolean;
|
||||
role: UserRole;
|
||||
|
||||
@observable
|
||||
lastActiveAt: string;
|
||||
@@ -68,11 +65,27 @@ class User extends ParanoidModel {
|
||||
return (this.name ? this.name[0] : "?").toUpperCase();
|
||||
}
|
||||
|
||||
@computed
|
||||
/**
|
||||
* Whether the user has been invited but not yet signed in.
|
||||
*/
|
||||
get isInvited(): boolean {
|
||||
return !this.lastActiveAt;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the user is an admin.
|
||||
*/
|
||||
get isAdmin(): boolean {
|
||||
return this.role === UserRole.Admin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the user is a viewer.
|
||||
*/
|
||||
get isViewer(): boolean {
|
||||
return this.role === UserRole.Viewer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the user has been recently active. Recently is currently defined
|
||||
* as within the last 5 minutes.
|
||||
@@ -84,17 +97,6 @@ class User extends ParanoidModel {
|
||||
return new Date(this.lastActiveAt) > subMinutes(now(10000), 5);
|
||||
}
|
||||
|
||||
@computed
|
||||
get role(): UserRole {
|
||||
if (this.isAdmin) {
|
||||
return UserRole.Admin;
|
||||
} else if (this.isViewer) {
|
||||
return UserRole.Viewer;
|
||||
} else {
|
||||
return UserRole.Member;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this user is using a separate editing mode behind an "Edit"
|
||||
* button rather than seamless always-editing.
|
||||
|
||||
@@ -116,7 +116,12 @@ export default abstract class Model {
|
||||
|
||||
updateData = action((data: Partial<Model>) => {
|
||||
for (const key in data) {
|
||||
this[key] = data[key];
|
||||
try {
|
||||
this[key] = data[key];
|
||||
} catch (error) {
|
||||
// Temporary as isViewer and isAdmin properties changed to getters
|
||||
Logger.warn(`Error setting ${key} on model`, error);
|
||||
}
|
||||
}
|
||||
|
||||
this.isNew = false;
|
||||
|
||||
Reference in New Issue
Block a user