Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Coscine
backend
apis
Project
Commits
bc1ca9e1
Commit
bc1ca9e1
authored
Aug 14, 2020
by
Marcel Nellesen
Browse files
Merge branch 'Sprint/2020-14' into 'master'
Sprint/2020 14 See merge request coscine/api/project!101
parents
e7dceeb9
65f2b3f4
Changes
1
Pipelines
5
Hide whitespace changes
Inline
Side-by-side
src/Project/Controllers/ProjectRoleController.cs
View file @
bc1ca9e1
...
...
@@ -91,8 +91,9 @@ namespace Coscine.Api.Project.Controllers
return
Json
(
_projectRoleModel
.
GetAllWhere
((
projectRole
)
=>
(
projectRole
.
UserId
==
user
.
Id
&&
projectRole
.
ProjectId
==
projectIdGuid
)
).
Select
((
projectRole
)
=>
{
if
(
projectRole
.
Role
==
null
)
).
Select
((
projectRole
)
=>
{
if
(
projectRole
.
Role
==
null
)
{
projectRole
.
Role
=
roleModel
.
GetById
(
projectRole
.
RoleId
);
}
...
...
@@ -137,12 +138,12 @@ namespace Coscine.Api.Project.Controllers
{
var
projectModel
=
new
ProjectModel
();
var
user
=
_authenticator
.
GetUser
();
var
project
=
projectModel
.
GetById
(
projectId
);
if
(
projectModel
.
HasAccess
(
user
,
project
Model
.
GetById
(
projectId
)
,
UserRoles
.
Owner
))
if
(
projectModel
.
HasAccess
(
user
,
project
,
UserRoles
.
Owner
))
{
_projectRoleModel
.
CheckIfLastOwnerWillBeRemoved
(
roleId
,
projectId
);
var
project
=
projectModel
.
GetById
(
projectId
);
var
userModel
=
new
UserModel
();
var
userToRemove
=
userModel
.
GetById
(
userId
);
...
...
@@ -164,6 +165,36 @@ namespace Coscine.Api.Project.Controllers
return
Unauthorized
(
"The user is not authorized to delete a project role for the given project!"
);
}
}
[
HttpDelete
(
"[controller]/project/{projectId}/user"
)]
public
IActionResult
Delete
(
Guid
projectId
)
{
var
projectModel
=
new
ProjectModel
();
var
user
=
_authenticator
.
GetUser
();
var
project
=
projectModel
.
GetById
(
projectId
);
var
roleId
=
_projectRoleModel
.
GetGetUserRoleForProject
(
projectId
,
user
.
Id
);
if
(
projectModel
.
HasAccess
(
user
,
project
,
UserRoles
.
Owner
,
UserRoles
.
Member
))
{
_projectRoleModel
.
CheckIfLastOwnerWillBeRemoved
((
Guid
)
roleId
,
projectId
);
_emitter
.
EmitUserRemove
(
new
UserEventArgs
(
this
.
_configuration
)
{
Project
=
project
,
User
=
user
});
LogAnalytics
(
"Leave Project"
,
user
,
null
,
project
.
Id
.
ToString
());
return
Json
(
_projectRoleModel
.
Delete
(
_projectRoleModel
.
GetWhere
((
projectRole
)
=>
projectRole
.
ProjectId
==
projectId
&&
projectRole
.
UserId
==
user
.
Id
&&
projectRole
.
RoleId
==
roleId
)));
}
else
{
return
Unauthorized
(
"The user is not authorized to access the given project!"
);
}
}
private
void
LogAnalytics
(
string
operation
,
User
user
,
IEnumerable
<
ProjectRoleObject
>
users
=
null
,
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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