예제 #1
0
        internal AccountPrincipal(string login, IActionRightResolver actionRightResolver)
        {
            // todo1[ak] check args

            _login = login;
            _actionRightResolver = actionRightResolver;
        }
예제 #2
0
        public AccountManager(
            ISecurityProvider securityProvider,
            IAccountRepository accountRepository,
            IAccountValidator accountValidator,
            ITimeSource timeSource,
            int accountSessionCollectionCapacity,
            ISessionRepository sessionRepository,
            IActionRightResolver actionRightResolver/*,
            Func<TBizAccountRegistrationData, TBizAccount> accountRegistrationDataToAccount*/)
        {
            // todo1[ak] check args
            _securityProvider = securityProvider;
            _accountRepository = accountRepository;
            _accountValidator = accountValidator;
            _timeSource = timeSource;

            _sessionManager = new SessionManager(
                _securityProvider,
                _timeSource,
                accountSessionCollectionCapacity,
                sessionRepository);

            _actionRightResolver = actionRightResolver;
            //_accountRegistrationDataToAccount = accountRegistrationDataToAccount;
        }
예제 #3
0
        public static IAppProvider CreateAppProvider(
            IAccountRepository adminRepository,
            ISessionRepository adminSessionRepository,
            int adminAccountSessionCollectionCapacity,
            IActionRightResolver adminActionRightResolver,

            IAccountRepository userRepository,
            ISessionRepository userSessionRepository,
            int userAccountSessionCollectionCapacity,
            IActionRightResolver userActionRightResolver)
        {
            // todo1[ak] check args

            RegisterMappings();

            IAppProvider appProvider = new AppProvider();

            ITimeSource timeSource = CreateTimeSource();

            if (adminAccountSessionCollectionCapacity == 0)
            {
                adminAccountSessionCollectionCapacity = Constants.DEFAULT_ADMIN_ACCOUNT_SESSION_COLLECTION_CAPACITY;
            }

            if (userAccountSessionCollectionCapacity == 0)
            {
                userAccountSessionCollectionCapacity = Constants.DEFAULT_USER_ACCOUNT_SESSION_COLLECTION_CAPACITY;
            }

            IAccountManager adminManager = CreateAdminManager(
                timeSource,
                adminRepository,
                adminSessionRepository,
                adminAccountSessionCollectionCapacity,
                adminActionRightResolver);

            IAccountManager userManager = CreateUserManager(
                timeSource,
                userRepository,
                userSessionRepository,
                userAccountSessionCollectionCapacity,
                userActionRightResolver);

            appProvider.RegisterService<IGuestService>(new GuestService(adminManager, userManager));
            appProvider.RegisterService<IAdminService>(new AdminService(adminManager, userManager));
            appProvider.RegisterService<IUserService>(new UserService(userManager));

            return appProvider;
        }
예제 #4
0
        public static IAccountManager CreateUserManager(
            ITimeSource timeSource,
            IAccountRepository userRepository,
            ISessionRepository sessionRepository,
            int accountSessionCollectionCapacity,
            IActionRightResolver actionRightResolver)
        {
            ISecurityProvider securityProvider = CreateUserSecurityProvider();
            IAccountValidator userValidator = CreateUserValidator();

            IAccountManager userManager = new AccountManager(
                securityProvider,
                userRepository,
                userValidator,
                timeSource,
                accountSessionCollectionCapacity,
                sessionRepository,
                actionRightResolver);

            return userManager;
        }
예제 #5
0
        internal static IAccountManager CreateAdminManager(
            ITimeSource timeSource,
            IAccountRepository adminRepository,
            ISessionRepository sessionRepository,
            int accountSessionCollectionCapacity,
            IActionRightResolver actionRightResolver)
        {
            ISecurityProvider securityProvider = CreateAdminSecurityProvider();
            IAccountValidator adminValidator = CreateAdminValidator();

            IAccountManager adminManager = new AccountManager(
                securityProvider,
                adminRepository,
                adminValidator,
                timeSource,
                accountSessionCollectionCapacity,
                sessionRepository,
                actionRightResolver);

            return adminManager;
        }