RSecurityBackend
UserGroupPermissionHandler
HandleRequirementAsync
IUserPermissionChecker instance
IAppUserService instance
constructor
UserGroupPermissionRequirement
job
view
constructor
User login/logout/register/...
login
loginViewModel
LoggedOnUserModel
renew an expired session
user session id
LoggedOnUserModel
Logout user (users need user:delothersession to logout other users)
User Session Id
Check if my session is valid
get logged on user securableitems (permissions)
Paginated Users Information (if user does not have user:view permission list only contains him/her information)
All Users Information
returns user information (if user does not have user:view permission trying to view other users' information fails with a forbidden error)
user id
user information
add a new user (if you are trying to add an admin user you yourself should be admin)
if passsword is sent empty system genrates one for it which could be retrieved from returned record
id/generated password if required could be retrieved from return value
update existing user (if you are trying to update an admin user you yourself should be admin) (if user does not have user:modify permission trying to modify other users' information fails with a forbidden error)
user id
existingUserInfo.id could be passed empty and it is ignored completely, if password is sent empty it does not has effect
true if succeeds
set my password
delete user (only admin users can delete other admin users, a user cannot delete himself/herself)
user id
true if succeeds
start user self delete process (send a verification email to user)
finalize user self delete
Checks if user is admin
View User Sessions (user needs user:sessions permission to view other users sessions)
Set User Image (via FormData, specifying userId as 'id' in formData ) - if Files.count is 0 image would be removed - (users need user:modify to change other users image)
new image id
Get User Image in base 64
Get User Image in base 64
returns user roles (if user does not have user:view permission trying to view other users' information fails with a forbidden error)
user id
user roles
remove user from role
user id
true if succeeds
add user to role
user id
true if succeeds
get a captcha image for signup or forgot password
captchaimageid - display it using api/rimages/captchaimageid.jpg
signup
signUpViewModel
next step: "verify" or "finalize"
verify signup / forgot password / self delete user
associated secret email
finalize signup process
start forgot password process by email
signUpViewModel
result
read only mode
Is Sign-up enabled?
reset password
log user bad behaviuor
get user behaviour logs
kick out a user
IAppUserService instance
for client IP resolution
IUserPermissionChecker instance
IEmailSender instance
Image File Service
Captcha service
Configuration
constructor
Audit Log Controller Base
get all audit logs ordered by time
constructor
Artifact Service
Notifications controller
Get User Notifications
Get User Notifications (Paginated Version)
Get unread user notifications count
Switch Notification Status
Set All User Notifications Status Read
Set All User Notifications Status Unread
Delete Notification
Delete All Read Notifications
Notification Service
constructor
options controller
get user level option
get user level option, Security Warning: every authenticated user could see value of global options, so do not store sensitive data into them
get global option value, Security Warning: every authenticated user could see value of global options, so do not store sensitive data into them
set global option value
constructor
Options Service
IMemoryCache
Generic Image Provider
returns image stream
temporary api for uploading temporary images
constructor
Artifact Service
IMemoryCache
Long Running Jobs
get long running jobs
clean up old jobs
delete a specific job record, this could be used for deleting records which are not cleanable using the "cleanup" method
constructor
Jobs Service
User roles
All Roles Information
All Roles Information
returns role information
role name
role information
add a new role
id if required could be retrieved from return value
update existing role
role name
existingGroupInfo.id could be passed empty and it is ignored completely
true if succeeds
delete role
role name
true if succeeds
lists role permissions
Saves role permissions
role name
Get All SecurableItems
All All SecurableItems
IUserRoleService instance
constructor
base class for controllers needing UserScopeCheck
UserScopeCheck method EntityShortName;
RBillingSecurableItem.TenantEntityShortName
UserScopeCheck method OperationShortName
SecurableItem.ViewOperationShortName
returns user id if user is a guest, and empty if he/she has access to view all users information
can current user read this userId daya
Permission Checker Service
constructor
Security EF DbContext
parameterless constructor
delete db
OnConfiguring
Permissions
User Sessions
Signup Queue Items
General Images
Captcha Images
Audit Logs Events
long running jobs
Notifications
Options
user bad behaviour loigs
banned emails
Audit Event
Id
Event Type
Start Date
Last Updated Date
Duration
User Name
IP Address
Response Code
Requset Url
Jason Data
banned emails (previous users who had been kicked out and their emails are logged to not allow them to signup again)
id
all capital email
cause
Role Permissions (a set of defined permision policies which could be assigned to users)
default constructor
constructor
Description
Permissions
Ganjoor Application User
First Name
Sure Name
User Creation Date
user status
user image
user image id
nick name
biography
web site
user screen name
if user is locked out purposely as some kind of temporary punishment put the message for him or her here
User Status
Inactive
Active
Captcha Image
Id
Captcha Image
Captcha Image Id
Captcha Text
DateTime
Permission line
Id
SecurableItem short name
job
Operation short name
view
Ganjoor User Session (Temporary)
Warning: Instances are supposed to delete when user logs out, so do not link anything serious to it
Session Id
User Id
User
Client IP Address
Client Application Name
Ganjoor Angular Client
Client Language
fa-IR
Login Date
Last Renewal
Expiraton Time
User Token
logs for user bad actions which may due to rule end in him or her being banned from the platform
id
user id
user
datetime
description
User SignUp Queue
Id
queue type
Email
PhoneNumber
DateTime
Secret
client IP address
client app name
Client Language
fa-IR
Verify Queue Type
Sign up by email
Forgot Password by email
delete user by himself/hersef
kick out user
securable itmes: forms and ...
user
role
audit
global options
view
add
modify
delete
sessions
delothersession
view all
administer
list of forms and their permissions
Short Name
user
Descripttion
کاربران
Operations (short name + description + has permission)
[
[view, مشاهده, true],
[add, ایجاد, false]
]
operations (rights/permissions) for SecurableItem s
default constructor
one line constructor
Short Name
view
Descripttion
مشاهده
Prerequisites
Status (has permission)
SecurableItemOperation Prerequisite
Prerequisite SecureItem ShortName
job
Prerequisite Operation ShortName
view
a model suitable for anonymous user sign up by billing users
secret for securing signup process
Logged On User Model
Session Id
Security Token
User Information
Permissions
AppUserController.Login parameter
username
admin@ganjoor.net
password
Test!123
Client App Name
Swashbuckle UI Client
Client Language
fa-IR
user informtaion
a safe subset of RAppUser
Id
User Name
test
User Email
test@ganjoor.net
User Mobile Phone Number
+989121234567
First Name
Hamid Reza
Sure Name
Mohammadi
user status
1
user image
nick name
biography
web site
email verified
a safe subset of RUserSession
Session Id
User
Client IP Address
Client Application Name
Ganjoor Angular Client
Client Language
fa-IR
Login Date
Last Renewal
user infor used for registeration
desired password, if sent empty system generates one
Test!123
is admin
false
reset password view model
Email
admin@ganjoor.net
Secret
4ozHJQN0X6CebX0He0/xaznhIjvubfySFnwdoCYLLo8=
password
Test!123
User Self Delete View Model
user password
Test!123
CallbackUrl
set password model
old password
new password
SignUp View Model
Email
admin@ganjoor.net
Client App Name
Swashbuckle UI Client
Client Language
fa-IR
Captcha Image Id
Captcha Value
CallbackUrl
User/Cause used for logging a user (bad) behaviour or kicking out him or her
User Id
cause
verified sign up view model
Email
admin@ganjoor.net
Secret
4ozHJQN0X6CebX0He0/xaznhIjvubfySFnwdoCYLLo8=
password
Test!123
First Name
Hamid Reza
Sure Name
Mohammadi
Ganjoor Chargable Features
Setup
Active Users
GanjoorDoc View
GanjoorDoc Full
GanjoorRun View
GanjoorRun Full
Features
Chargable Feature For Tenant
Id
Code Name
Feature Name
Description
if it is not optional it cannot be unselected (boolean) or it might be selected at least at minimum value
Feature Type
miniumum amount
suggested amount
has maximum
maximum value
if a module contains features for other modules added their codeNames here (comma separated)
it must be priced according to period or it is a one time cost
is it refundable
is it setup cost
is active
prices
Chargable Feature Price Row
Id
Minimum Amount For This Price To be applicable
base price: (Minimum Amount whole price)
unit price for additional items from (Amount-MinimumAmount)
active
is effective from which date/time (useful for maintaining histotical data)
Chargable Feature For Tenant Type
yes/no
0, ...
cached billing info
code name
db name
personal tenants have limitted unmodifyable features and are not listed in tenant management panel
active
last update (use for caching purposes)
data is valid until this date and should be refreshed after that because of changes of user billing status
auto charge user for tenant validitiy expiration
charged features
charged feature
Id
Code Name
Feature Name
Amount
generic option
id
name
value
user id
user
Long Running Job Status
Id
Name
progress value (percent of custom value)
Start Time
End Time
Current Step
Exception
finished
pagination metadat
total count
page size
current page
total pages
has previous page
has next page
Paging Parameter Model
https://www.c-sharpcorner.com/article/how-to-do-paging-with-asp-net-web-api/
max page size
page number starting from 1
actual page size (-1 == all items)
settable page size (-1 == all items, 1000 maxpagesize)
a generic class containing service method return values + an exception string as a more readable replacement for Tuple
and also a solution for writing async methods which do not permit using out parameters
constructor
Actual result
Exception String
ToString
Image Files
Id
Original File Name
content type
Original Image File Size In Byte
Original Image Width
Original Image Height
پوشه محل ذخیره تصویر
2017-08
نام فایل ذخیره شده با بالاترین کیفیت
85007253-09f2-4434-8b7e-1a23db2cd9c9.png
datetime
Last Modified for caching purposes
smtp config
port
server
username
password
from
use ssl
use tls
Notifaction Status
Unread
Read
Archived
Deleted
User Notification
Id
User Id
User
DateTime
Status
Subject
Text
User Notification
Id
DateTime
Status
Subject
Text
Authentication Service
Login user, if failed return LoggedOnUserModel is null
replace a (probably expired session) with a new one
Logout
Does Session exist?
is user admin?
is user in either of passed roles?
Get User Roles
remove user from role
user id
add user to role
user id
Lists user permissions
Has user specified permission
returns user information
PasswordHash becomes empty
all users informations
all users having a certain permission
add a new user
add user to role
modify existing user
change user password checking old password
delete user
true if succeeds
start leaving
Set User Image
new user image id
Get User Sessions
if null is passed returns all sessions
Get User Session
Get User Image
Start signup process using email
verify signup / forgot password
associated email
finalize signup process using email
Start forgot password process using email
reset password using email
delete tenant
Find User By Email
Sign Up/forget passsword/delete Email Subject
subject
Sign Up/forget passsword/delete Email Html Content
html content
secret used for generating Jwt token
JWT Tokens Expiration Time Out
log user bad behaviuor
get user behaviour logs
lockout a user for a period
before kicking out a bad behving user ban him or her from signing up again
document the cause
get banned email information
Audit Log Service
get all audit logs ordered by time
empty means unfiltered
background task queue
queue new task
get task from que
number of tasks
Captcha Service
Generate Captcha
evaluate captcha
Image File Service
add new picture
pass empty if you want a generic date based folder
store added image
returns image info
returns image file stream
delete image from database and file system
Image Storage Path
Long Running Job Progress Service
new job
Get Job By Id
Get Jobs
update job
delete job
clean up finished jobs
Authentication Service
Login user, if failed return LoggedOnUserModel is null
replace a (probably expired session) with a new one
add user to role
Logout
Does Session exist?
returns user information
PasswordHash becomes empty
all users informations
Get User Sessions
if null is passed returns all sessions
Get User Session
is user admin?
is user in either of passed roles?
Get User Roles
remove user from role
user id
add user to role
user id
Lists user permissions
Has user specified permission
all users having a certain permission
add a new user
modify existing user
change user password checking old password
remove user data
delete user
true if succeeds
start leaving
Set User Image
Get User Image
Start signup process using email
verify signup / forgot password
associated email
finalize signup process using email
Start forgot password process using email
reset password using email
Find User By Email
delete tenant
EnsureDefaultUserExists
secret used for generating Jwt token
JWT Tokens Expiration Time Out
Token Generation
Extract Information From Token
convert identity errors to string
Sign Up/forget passsword/delete Email Subject
subject
Sign Up/forget passsword/delete Email Html Content
html content
log user bad behaviuor
get user behaviour logs
lockout a user for a period
before kicking out a bad behving user ban him or her from signing up again
document the cause
get banned email information
Main Database context
Image File Service
User Role Service
Identity User Manageer
Identity SignIn Manager
Identity Role Manager
secret generator
Configuration
constructor
Audit Log Service Implementation
get all audit logs ordered by time
empty means unfiltered
Database Contetxt
constuctor
IBackgroundTaskQueue implementation
new task
dequeue task
task count
Captcha Service
Generate Captcha
evaluate captcha
Image File Service
Database Contetxt
constructor
Image File Service
Add Image File
store added image
returns image info
delete image (from database and file system)
Get Image Storage Path
Image Storage Path
Database Contetxt
Configuration
constructor
Long Running Job Progress Service
new job
Get Jobs
Get Job By Id
update job
delete job
clean up finished jobs
Database Contetxt
constructor
mail sender using MailKit
constructor
Configuration
options
SmptConfig
send email
Paginator
paginate
BackgroundService implementation
constructor
task queue
execute
Custom Audit Data Provider
Insert
Insert Async
Update
Update Async
Get
Get Async
is disposed
dispose
Protected implementation of Dispose pattern.
Connection
constructor
generic options service
modify an option or add a new one if an option with the requested name does not exist
get option value
Database Contetxt
constructor
Internal messaging system implementation
Add Notification
Switch Notification Status
updated notification object
Set All User Notifications Status
Delete Notification
if empty deletes all read notifications
Get User Notifications
Get User Notifications (paginated version)
Get Unread User Notifications Count
Database Contetxt
constructor
User Roles Service Implementation
Administrator role name
returns all user roles
returns user role information
modify existing user role
delete user role
true if succeeds
adds a new user role
new role info
update user role info (id)
Has role specified permission
roles having specific permission
gets list of SecurableItem, should be reimplemented in end user applications
Lists role permissions
Saves role permissions
Identity Role Manager
constructor
Secret Generator
Generates a secret
Permission checker service implementation
check to see if user has permission to do operation
userId
form
operation
true if has permission
IAppUserService instance
constructor
generic options service
modify an option or add a new one if an option with the requested name does not exist
get option value
Internal messaging system interface
Add Notification
Get User Notifications
Get User Notifications (paginated version)
Get Unread User Notifications Count
Switch Notification Status
updated notification object
Set All User Notifications Status
Delete Notification
if empty deletes all read notifications
Secret Generator
Generates a secret
Permission checker service
check to see if user has permission to do operation
userId
sessionId
form
operation
true if has permission
User Groups Service
Administrator role name
returns all user roles
returns user role information
adds a new user role
new role info
update user role info (id)
modify existing user role
delete user role
true if succeeds
Has role specified permission
roles having specific permission
gets list of SecurableItem, should be reimplemented in end user applications
Lists role permissions
Saves role permissions
Audit.NET Environment Skipping
https://stackoverflow.com/questions/59627835/dont-include-environment-in-serialised-auditevents
instance
create property
PersianIdentityErrorDescriber
Chargable Feature For Tenant Type
yes/no
0, ...
1.222 or large numbers