Home | History | Annotate | Download | only in rbac

Lines Matching defs:sessp

154 	rbac_session_t *sessp = op->o_callback->sc_private;
159 ber_dupbv( &sessp->sessdn, &rs->sr_entry->e_name );
167 ber_dupbv( &sessp->sessid, &attr->a_vals[0] );
170 ber_dupbv( &sessp->userdn, &attr->a_vals[0] );
173 ber_bvarray_dup_x( &sessp->roles, attr->a_nvals, NULL );
177 &sessp->role_constraints, attr->a_nvals, NULL );
180 ber_dupbv( &sessp->uid, &attr->a_vals[0] );
183 ber_dupbv( &sessp->tenantid, &attr->a_vals[0] );
197 rbac_is_session_owner( rbac_session_t *sessp, rbac_req_t *reqp )
201 if ( BER_BVISEMPTY( &sessp->uid ) || BER_BVISEMPTY( &reqp->uid ) ) {
207 if ( !ber_bvstrcasecmp( &sessp->uid, &reqp->uid ) ) {
217 rbac_session_add_role( Operation *op, rbac_session_t *sessp, rbac_req_t *reqp )
259 op2.o_req_dn = sessp->sessdn;
260 op2.o_req_ndn = sessp->sessdn;
277 rbac_session_drop_role( Operation *op, rbac_session_t *sessp, rbac_req_t *reqp )
331 op2.o_req_dn = sessp->sessdn;
332 op2.o_req_ndn = sessp->sessdn;
348 rbac_int_delete_session( Operation *op, rbac_session_t *sessp )
358 tenantp = rbac_tid2tenant( &sessp->tenantid );
373 op2.o_req_dn = sessp->sessdn;
374 op2.o_req_ndn = sessp->sessdn;
385 rbac_session_t *sessp = NULL;
387 sessp = ch_malloc( sizeof(rbac_session_t) );
388 sessp->sessid.bv_len =
389 lutil_uuidstr( sessp->uuidbuf, sizeof(sessp->uuidbuf) );
390 sessp->sessid.bv_val = sessp->uuidbuf;
392 sessp->user = NULL;
393 BER_BVZERO( &sessp->tenantid );
394 BER_BVZERO( &sessp->uid );
395 BER_BVZERO( &sessp->userdn );
396 BER_BVZERO( &sessp->sessdn );
397 BER_BVZERO( &sessp->message );
399 sessp->last_access = 0;
400 sessp->timeout = 0;
401 sessp->warning_id = 0;
402 sessp->error_id = 0;
403 sessp->grace_logins = 0;
404 sessp->expiration_secs = 0;
405 sessp->is_authenticated = 0;
407 sessp->roles = NULL;
408 sessp->role_constraints = NULL;
410 return sessp;
414 rbac_register_session( Operation *op, SlapReply *rs, rbac_session_t *sessp )
426 tenant_info_t *tenantp = rbac_tid2tenant( &sessp->tenantid );
433 if ( !sessp ) {
442 strncat( rdnbuf, sessp->sessid.bv_val, sessp->sessid.bv_len );
444 rdn.bv_len = STRLENOF(RBAC_SESSION_RDN_EQ) + sessp->sessid.bv_len;
446 nrdn.bv_len = STRLENOF(RBAC_SESSION_RDN_EQ) + sessp->sessid.bv_len;
454 attr_merge_one( e, slap_rbac_schema.ad_session_id, &sessp->sessid, NULL );
456 if ( !BER_BVISNULL( &sessp->uid ) ) {
457 attr_merge_one( e, slap_schema.si_ad_uid, &sessp->uid, NULL );
461 if ( !BER_BVISNULL( &sessp->tenantid ) ) {
463 e, slap_rbac_schema.ad_tenant_id, &sessp->tenantid, NULL );
467 if ( !BER_BVISNULL( &sessp->userdn ) ) {
469 e, slap_rbac_schema.ad_session_user_dn, &sessp->userdn, NULL );
472 if ( sessp->roles ) {
473 attr_merge( e, slap_rbac_schema.ad_session_roles, sessp->roles, NULL );
477 if ( sessp->role_constraints ) {
479 sessp->role_constraints, NULL );
513 rbac_register_session2( Operation *op, SlapReply *rs, rbac_session_t *sessp )
526 tenant_info_t *tenantp = rbac_tid2tenant( &sessp->tenantid );
534 if ( !sessp ) {
543 strncat( rdnbuf, sessp->sessid.bv_val, sessp->sessid.bv_len );
545 rdn.bv_len = STRLENOF(RBAC_SESSION_RDN_EQ) + sessp->sessid.bv_len;
547 nrdn.bv_len = STRLENOF(RBAC_SESSION_RDN_EQ) + sessp->sessid.bv_len;
555 attr_merge_one( e, slap_rbac_schema.ad_session_id, &sessp->sessid, NULL );
557 if ( !BER_BVISNULL( &sessp->uid ) ) {
558 attr_merge_one( e, slap_schema.si_ad_uid, &sessp->uid, NULL );
562 if ( !BER_BVISNULL( &sessp->tenantid ) ) {
564 e, slap_rbac_schema.ad_tenant_id, &sessp->tenantid, NULL );
568 if ( !BER_BVISNULL( &sessp->userdn ) ) {
570 e, slap_rbac_schema.ad_session_user_dn, &sessp->userdn, NULL );
573 if ( sessp->roles ) {
574 attr_merge( e, slap_rbac_schema.ad_session_roles, sessp->roles, NULL );
578 if ( sessp->role_constraints ) {
580 sessp->role_constraints, NULL );
658 rbac_session_t *sessp = NULL;
676 sessp = rbac_alloc_session();
677 if ( !sessp ) {
694 //cb.sc_private = sessp;
721 rbac_free_session( sessp );
722 sessp = NULL;
725 return sessp;
732 rbac_session_t *sessp = NULL;
749 sessp = rbac_alloc_session();
750 if ( !sessp ) {
767 cb.sc_private = sessp;
792 rbac_free_session( sessp );
793 sessp = NULL;
796 return sessp;
800 rbac_int_session_permissions_filterstr( Operation *op, rbac_session_t *sessp )
809 strcat( filterbuf, sessp->uid.bv_val );
813 for ( i = 0; !BER_BVISEMPTY( &sessp->roles[i] ); i++ ) {
815 strncat( filterbuf, sessp->roles[i].bv_val, sessp->roles[i].bv_len );
827 rbac_session_t *sessp )
853 strncat( permbuf, sessp->sessid.bv_val, sessp->sessid.bv_len );
862 filterstr = rbac_int_session_permissions_filterstr( op, sessp );
905 rbac_audit( op, SessionPermissions, sessp, reqp, rc, (char *)rs->sr_text );
912 rbac_free_session( rbac_session_t *sessp )
914 if ( !sessp ) return;
916 if ( sessp->user ) {
917 rbac_free_user( sessp->user );
920 if ( !BER_BVISNULL( &sessp->uid ) ) {
921 ber_memfree( sessp->uid.bv_val );
924 if ( !BER_BVISNULL( &sessp->tenantid ) ) {
925 ber_memfree( sessp->tenantid.bv_val );
928 if ( !BER_BVISNULL( &sessp->userdn ) ) {
929 ber_memfree( sessp->userdn.bv_val );
932 if ( !BER_BVISNULL( &sessp->sessdn ) ) {
933 ber_memfree( sessp->sessdn.bv_val );
936 if ( !BER_BVISNULL( &sessp->message ) ) {
937 ber_memfree( sessp->message.bv_val );
940 if ( sessp->roles ) {
941 ber_bvarray_free( sessp->roles );
944 if ( sessp->role_constraints ) {
945 ber_bvarray_free( sessp->role_constraints );
948 ch_free( sessp );
959 rbac_session_t *sessp,
964 if ( !sessp || !reqp || !userp ) {
976 ber_bvarray_add( &sessp->roles, &role );
984 ber_bvarray_add( &sessp->role_constraints, &roleconstraint );
995 ber_bvarray_add( &sessp->roles, &role );