initial commit
This commit is contained in:
65
Data/UserData.cs
Normal file
65
Data/UserData.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
|
||||
namespace Library;
|
||||
|
||||
public class UserData
|
||||
{
|
||||
public int ID = 0;
|
||||
public string Name = default!;
|
||||
public string Email = default!;
|
||||
public string SessionID = default!;
|
||||
public bool IsActive = true;
|
||||
public bool IsAdmin = false;
|
||||
|
||||
public static UserData? FromSession( SqlConnection connection , string session_id )
|
||||
{
|
||||
using SqlDataReader reader = new SQLBuilder( connection , "EXEC [usp_user_session_validate] @session_id" )
|
||||
.AddParameter( "@session_id" , session_id )
|
||||
.ExecuteReader( );
|
||||
|
||||
if ( reader == null || !reader.Read( ) )
|
||||
return null;
|
||||
|
||||
int user_id = reader.Int( "id" , 0 );
|
||||
if ( user_id <= 0 )
|
||||
return null;
|
||||
|
||||
return new( )
|
||||
{
|
||||
ID = user_id ,
|
||||
Name = reader.String( "display_name" ) ?? "" ,
|
||||
Email = reader.String( "email" ) ?? "" ,
|
||||
SessionID = session_id ,
|
||||
IsAdmin = reader.Int( "is_admin" , 0 ) == 1 ,
|
||||
IsActive = true
|
||||
};
|
||||
}
|
||||
|
||||
public static UserData? FromID( SqlConnection connection , int id )
|
||||
{
|
||||
using SqlDataReader reader = new SQLBuilder( connection , "SELECT [id],[ime],[user_tip],[mail],[is_active] FROM [dom] WHERE [id]=@id" )
|
||||
.AddParameter( "@id" , id )
|
||||
.ExecuteReader( );
|
||||
|
||||
if ( reader == null || !reader.Read( ) )
|
||||
return null;
|
||||
|
||||
return FromReader( reader );
|
||||
}
|
||||
|
||||
public static UserData? FromReader( SqlDataReader reader )
|
||||
{
|
||||
int user_id = reader.Int( "id" , 0 );
|
||||
if ( user_id <= 0 )
|
||||
return null;
|
||||
|
||||
return new( )
|
||||
{
|
||||
ID = user_id ,
|
||||
Name = reader.String( "ime" ) ?? "" ,
|
||||
Email = reader.String( "mail" ) ?? "" ,
|
||||
IsAdmin = ( reader.String( "user_tip" ) ?? "" ) == "admin" ,
|
||||
IsActive = reader.Int( "is_active" , 0 ) != 0
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user