Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
api
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Merge Requests
0
Merge Requests
0
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
angular-meteor
api
Commits
fe514a05
Commit
fe514a05
authored
Dec 13, 2019
by
GD-A-150752
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update-password
parent
c757f60d
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
31 additions
and
32 deletions
+31
-32
app.seeding.ts
server/app.seeding.ts
+12
-14
main.ts
server/main.ts
+1
-1
users.ts
server/methods/users.ts
+7
-6
role.ts
server/models/role.ts
+3
-3
users.ts
server/publications/users.ts
+1
-1
utils.service.ts
server/services/utils.service.ts
+7
-7
No files found.
server/app.seeding.ts
View file @
fe514a05
...
...
@@ -16,26 +16,26 @@ export const seedDB = async () => {
// Roles
await
Promise
.
all
([
Roles
.
insert
({
T
itle
:
'Admin'
,
P
ermissions
:
allPermissions
,
D
escription
:
''
,
t
itle
:
'Admin'
,
p
ermissions
:
allPermissions
,
d
escription
:
''
,
}).
toPromise
(),
Roles
.
insert
({
T
itle
:
'User'
,
P
ermissions
:
[
PERMISSIONS
.
CAN_LOGIN
,
PERMISSIONS
.
CAN_UPDATE_OWN_USER
],
D
escription
:
''
,
t
itle
:
'User'
,
p
ermissions
:
[
PERMISSIONS
.
CAN_LOGIN
,
PERMISSIONS
.
CAN_UPDATE_OWN_USER
],
d
escription
:
''
,
}).
toPromise
(),
Roles
.
insert
({
T
itle
:
'Blocked'
,
P
ermissions
:
[],
D
escription
:
''
,
t
itle
:
'Blocked'
,
p
ermissions
:
[],
d
escription
:
''
,
}),
]);
}
else
{
// Update Roles Permissions
await
Promise
.
all
([
Roles
.
update
({
Title
:
'Admin'
},
{
$set
:
{
P
ermissions
:
allPermissions
}
})
.
update
({
title
:
'Admin'
},
{
$set
:
{
p
ermissions
:
allPermissions
}
})
.
toPromise
(),
]);
}
...
...
@@ -49,10 +49,8 @@ export const seedDB = async () => {
password
:
'admin'
,
email
:
'ali.arshad@vqode.com'
,
profile
:
{
Role
:
Roles
.
findOne
({
Title
:
'Admin'
}).
_id
,
// admin role id
FirstName
:
'Admin'
,
LastName
:
'User'
,
Status
:
'ACTIVE'
,
name
:
'Admin User'
,
role
:
Roles
.
findOne
({
title
:
'Admin'
}).
_id
,
// admin role id
},
});
}
...
...
server/main.ts
View file @
fe514a05
...
...
@@ -14,7 +14,7 @@ Meteor.startup(() => {
Accounts
.
validateLoginAttempt
((
data
):
boolean
=>
{
const
user
:
Meteor
.
User
=
data
.
user
;
return
user
&&
user
.
profile
.
R
ole
return
user
&&
user
.
profile
.
r
ole
&&
UtilsService
.
hasPermissionOfUser
(
user
,
PERMISSIONS
.
CAN_LOGIN
);
});
...
...
server/methods/users.ts
View file @
fe514a05
...
...
@@ -15,7 +15,7 @@ Meteor.methods({
},
registerUser
(
user
:
any
):
string
{
const
defaultRole
=
Roles
.
findOne
({
T
itle
:
user
.
role
});
const
defaultRole
=
Roles
.
findOne
({
t
itle
:
user
.
role
});
if
(
!
Accounts
.
findUserByEmail
(
user
.
email
))
{
const
userObj
=
{
...
...
@@ -23,8 +23,8 @@ Meteor.methods({
password
:
user
.
password
,
username
:
user
.
username
,
profile
:
{
N
ame
:
user
.
name
,
R
ole
:
defaultRole
.
_id
,
n
ame
:
user
.
name
,
r
ole
:
defaultRole
.
_id
,
},
};
return
Accounts
.
createUser
(
userObj
);
...
...
@@ -36,11 +36,12 @@ Meteor.methods({
if
(
!
UtilsService
.
hasPermission
(
PERMISSIONS
.
CAN_UPDATE_OWN_USER
))
{
throw
new
Meteor
.
Error
(
403
,
'Forbidden.'
);
}
if
(
user
.
_id
)
{
const
updateObj
=
{
$set
:
{
profile
:
user
.
profile
}
};
if
(
user
.
profile
.
Email
)
{
updateObj
.
$set
[
'emails.0.address'
]
=
user
.
profile
.
Email
;
if
(
user
.
password
)
{
Accounts
.
setPassword
(
user
.
_id
,
user
.
password
);
}
const
updateObj
=
{
$set
:
{
profile
:
user
.
profile
}
};
return
Meteor
.
users
.
update
(
user
.
_id
,
updateObj
);
}
...
...
server/models/role.ts
View file @
fe514a05
export
interface
Role
{
_id
?:
string
;
T
itle
:
string
;
P
ermissions
:
string
[];
D
escription
:
string
;
t
itle
:
string
;
p
ermissions
:
string
[];
d
escription
:
string
;
}
server/publications/users.ts
View file @
fe514a05
...
...
@@ -22,7 +22,7 @@ publishComposite('usersList', (filters = {}) => {
children
:
[
{
find
(
user
):
any
{
return
Roles
.
find
({
_id
:
user
.
profile
.
R
ole
});
return
Roles
.
find
({
_id
:
user
.
profile
.
r
ole
});
},
},
],
...
...
server/services/utils.service.ts
View file @
fe514a05
...
...
@@ -8,30 +8,30 @@ export class UtilsService {
static
getLoggedInUserPermissions
():
string
[]
{
const
usr
:
Meteor
.
User
=
Meteor
.
user
();
const
role
=
Roles
.
findOne
(
usr
.
profile
.
R
ole
);
const
role
=
Roles
.
findOne
(
usr
.
profile
.
r
ole
);
return
role
.
P
ermissions
;
return
role
.
p
ermissions
;
}
static
hasPermission
(
permissions
:
string
|
string
[]):
boolean
{
const
usr
:
Meteor
.
User
=
Meteor
.
user
();
if
(
usr
)
{
const
role
=
Roles
.
findOne
(
usr
.
profile
.
R
ole
);
const
role
=
Roles
.
findOne
(
usr
.
profile
.
r
ole
);
if
(
typeof
permissions
===
'string'
)
{
return
role
.
P
ermissions
.
indexOf
(
permissions
)
!==
-
1
;
return
role
.
p
ermissions
.
indexOf
(
permissions
)
!==
-
1
;
}
return
permissions
.
every
(
p
=>
role
.
P
ermissions
.
indexOf
(
p
)
!==
-
1
);
return
permissions
.
every
(
p
=>
role
.
p
ermissions
.
indexOf
(
p
)
!==
-
1
);
}
return
false
;
}
static
hasPermissionOfUser
(
user
:
Meteor
.
User
,
permission
:
string
):
boolean
{
const
role
=
Roles
.
findOne
(
user
.
profile
.
R
ole
);
const
role
=
Roles
.
findOne
(
user
.
profile
.
r
ole
);
return
role
.
P
ermissions
.
indexOf
(
permission
)
!==
-
1
;
return
role
.
p
ermissions
.
indexOf
(
permission
)
!==
-
1
;
}
static
uploadToAWS
(
base64
,
key
):
Observable
<
any
>
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment