Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
Database
Manage
Activity
Members
Labels
Plan
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Code review analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
Show more breadcrumbs
Coscine
backend
libraries
Database
Merge requests
!105
Sprint/2020 22
Code
Review changes
Check out branch
Open in Workspace
Download
Patches
Plain diff
Expand sidebar
Merged
Sprint/2020 22
Sprint/2020-22
into
master
Overview
0
Commits
8
Pipelines
4
Changes
19
Merged
Marcel Nellesen
requested to merge
Sprint/2020-22
into
master
4 years ago
Overview
0
Commits
8
Pipelines
4
Changes
19
0
0
Merge request reports
Compare
master
version 2
8fed6c8e
4 years ago
version 1
1e429828
4 years ago
master (base)
and
latest version
latest version
15a9337e
8 commits,
4 years ago
version 2
8fed6c8e
7 commits,
4 years ago
version 1
1e429828
3 commits,
4 years ago
19 files
+
264
−
81
Side-by-side
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Files
19
src/Database/Models/ApiTokenModel.cs
0 → 100644
+
92
−
0
View file @ 15a9337e
Edit in single-file editor
Open in Web IDE
using
Coscine.Database.DataModel
;
using
Coscine.Database.ReturnObjects
;
using
LinqToDB
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq.Expressions
;
using
System.Linq
;
namespace
Coscine.Database.Models
{
public
class
ApiTokenModel
:
DatabaseModel
<
ApiToken
>
{
public
override
Expression
<
Func
<
ApiToken
,
Guid
>>
GetIdFromObject
()
{
return
databaseObject
=>
databaseObject
.
Id
;
}
public
override
ITable
<
ApiToken
>
GetITableFromDatabase
(
CoscineDB
db
)
{
return
db
.
ApiTokens
;
}
public
override
void
SetObjectId
(
ApiToken
databaseObject
,
Guid
id
)
{
databaseObject
.
Id
=
id
;
}
public
IEnumerable
<
ApiTokenObject
>
GetTokens
(
string
userId
)
{
return
GetTokens
(
new
Guid
(
userId
));
}
public
IEnumerable
<
ApiTokenObject
>
GetTokens
(
User
user
)
{
return
GetTokens
(
user
.
Id
);
}
public
IEnumerable
<
ApiTokenObject
>
GetTokens
(
Guid
userId
)
{
return
GetAllWhere
((
tableEntry
)
=>
tableEntry
.
UserId
==
userId
)
.
Select
(
x
=>
new
ApiTokenObject
{
TokenId
=
x
.
Id
,
Created
=
x
.
IssuedAt
,
Expires
=
x
.
Expiration
,
Name
=
x
.
Name
})
.
OrderBy
(
x
=>
x
.
Created
);
}
public
ApiTokenObject
GetToken
(
Guid
userId
,
Guid
tokenId
)
{
var
t
=
GetWhere
(
x
=>
x
.
UserId
==
userId
&&
x
.
Id
==
tokenId
);
if
(
t
==
null
)
{
return
null
;
}
return
new
ApiTokenObject
{
TokenId
=
t
.
Id
,
Created
=
t
.
IssuedAt
,
Expires
=
t
.
Expiration
,
Name
=
t
.
Name
};
}
public
User
GetUser
(
Guid
tokenId
)
{
return
GetUser
(
GetById
(
tokenId
));
}
public
User
GetUser
(
ApiToken
token
)
{
var
userModel
=
new
UserModel
();
return
userModel
.
GetWhere
(
x
=>
x
.
Id
==
token
.
UserId
);
}
public
void
InsertToken
(
Guid
tokenId
,
DateTime
issuedAt
,
DateTime
expires
,
Guid
userId
,
string
name
)
{
Insert
(
new
ApiToken
{
Id
=
tokenId
,
IssuedAt
=
issuedAt
,
Expiration
=
expires
,
UserId
=
userId
,
Name
=
name
});
}
public
int
Revoke
(
Guid
userId
,
Guid
tokenId
)
{
var
apiToken
=
GetById
(
tokenId
);
if
(
apiToken
.
UserId
==
userId
)
{
return
Delete
(
apiToken
);
}
else
{
return
0
;
}
}
}
}
Loading